Search in sources :

Example 1 with StandardProcessScheduler

use of org.apache.nifi.controller.scheduling.StandardProcessScheduler in project nifi by apache.

the class TestStandardControllerServiceProvider method testEnableDisableWithReference.

@Test(timeout = 10000)
public void testEnableDisableWithReference() {
    final ProcessGroup group = new MockProcessGroup(controller);
    final FlowController controller = Mockito.mock(FlowController.class);
    Mockito.when(controller.getGroup(Mockito.anyString())).thenReturn(group);
    final StandardProcessScheduler scheduler = createScheduler();
    final StandardControllerServiceProvider provider = new StandardControllerServiceProvider(controller, scheduler, null, stateManagerProvider, variableRegistry, niFiProperties);
    final ControllerServiceNode serviceNodeB = provider.createControllerService(ServiceB.class.getName(), "B", systemBundle.getBundleDetails().getCoordinate(), null, false);
    final ControllerServiceNode serviceNodeA = provider.createControllerService(ServiceA.class.getName(), "A", systemBundle.getBundleDetails().getCoordinate(), null, false);
    group.addControllerService(serviceNodeA);
    group.addControllerService(serviceNodeB);
    setProperty(serviceNodeA, ServiceA.OTHER_SERVICE.getName(), "B");
    try {
        provider.enableControllerService(serviceNodeA);
        Assert.fail("Was able to enable Service A but Service B is disabled.");
    } catch (final IllegalStateException expected) {
    }
    provider.enableControllerService(serviceNodeB);
    provider.enableControllerService(serviceNodeA);
    try {
        provider.disableControllerService(serviceNodeB);
        Assert.fail("Was able to disable Service B but Service A is enabled and references B");
    } catch (final IllegalStateException expected) {
    }
    provider.disableControllerService(serviceNodeA);
    waitForServiceState(serviceNodeA, ControllerServiceState.DISABLED);
    provider.disableControllerService(serviceNodeB);
    waitForServiceState(serviceNodeB, ControllerServiceState.DISABLED);
}
Also used : ServiceB(org.apache.nifi.controller.service.mock.ServiceB) ServiceA(org.apache.nifi.controller.service.mock.ServiceA) ProcessGroup(org.apache.nifi.groups.ProcessGroup) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessGroup(org.apache.nifi.groups.StandardProcessGroup) FlowController(org.apache.nifi.controller.FlowController) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessScheduler(org.apache.nifi.controller.scheduling.StandardProcessScheduler) Test(org.junit.Test)

Example 2 with StandardProcessScheduler

use of org.apache.nifi.controller.scheduling.StandardProcessScheduler in project nifi by apache.

the class TestStandardControllerServiceProvider method testDisableControllerService.

@Test
public void testDisableControllerService() {
    final ProcessGroup procGroup = new MockProcessGroup(controller);
    final FlowController controller = Mockito.mock(FlowController.class);
    Mockito.when(controller.getGroup(Mockito.anyString())).thenReturn(procGroup);
    final StandardProcessScheduler scheduler = createScheduler();
    final StandardControllerServiceProvider provider = new StandardControllerServiceProvider(controller, scheduler, null, stateManagerProvider, variableRegistry, niFiProperties);
    final ControllerServiceNode serviceNode = provider.createControllerService(ServiceB.class.getName(), "B", systemBundle.getBundleDetails().getCoordinate(), null, false);
    provider.enableControllerService(serviceNode);
    provider.disableControllerService(serviceNode);
}
Also used : ServiceB(org.apache.nifi.controller.service.mock.ServiceB) ProcessGroup(org.apache.nifi.groups.ProcessGroup) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessGroup(org.apache.nifi.groups.StandardProcessGroup) FlowController(org.apache.nifi.controller.FlowController) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessScheduler(org.apache.nifi.controller.scheduling.StandardProcessScheduler) Test(org.junit.Test)

Example 3 with StandardProcessScheduler

use of org.apache.nifi.controller.scheduling.StandardProcessScheduler in project nifi by apache.

the class TestStandardControllerServiceProvider method testEnableReferencingComponents.

@Test
public void testEnableReferencingComponents() {
    final ProcessGroup procGroup = new MockProcessGroup(controller);
    final FlowController controller = Mockito.mock(FlowController.class);
    Mockito.when(controller.getGroup(Mockito.anyString())).thenReturn(procGroup);
    final StandardProcessScheduler scheduler = createScheduler();
    final StandardControllerServiceProvider provider = new StandardControllerServiceProvider(controller, null, null, stateManagerProvider, variableRegistry, niFiProperties);
    final ControllerServiceNode serviceNode = provider.createControllerService(ServiceA.class.getName(), "1", systemBundle.getBundleDetails().getCoordinate(), null, false);
    final ProcessorNode procNode = createProcessor(scheduler, provider);
    serviceNode.addReference(procNode);
    // procNode.setScheduledState(ScheduledState.STOPPED);
    provider.unscheduleReferencingComponents(serviceNode);
    assertEquals(ScheduledState.STOPPED, procNode.getScheduledState());
    // procNode.setScheduledState(ScheduledState.RUNNING);
    provider.unscheduleReferencingComponents(serviceNode);
    assertEquals(ScheduledState.STOPPED, procNode.getScheduledState());
}
Also used : ServiceA(org.apache.nifi.controller.service.mock.ServiceA) ProcessorNode(org.apache.nifi.controller.ProcessorNode) StandardProcessorNode(org.apache.nifi.controller.StandardProcessorNode) ProcessGroup(org.apache.nifi.groups.ProcessGroup) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessGroup(org.apache.nifi.groups.StandardProcessGroup) FlowController(org.apache.nifi.controller.FlowController) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessScheduler(org.apache.nifi.controller.scheduling.StandardProcessScheduler) Test(org.junit.Test)

Example 4 with StandardProcessScheduler

use of org.apache.nifi.controller.scheduling.StandardProcessScheduler in project nifi by apache.

the class TestStandardControllerServiceProvider method validateEnableServices.

@Test
public void validateEnableServices() {
    StandardProcessScheduler scheduler = createScheduler();
    FlowController controller = Mockito.mock(FlowController.class);
    StandardControllerServiceProvider provider = new StandardControllerServiceProvider(controller, scheduler, null, stateManagerProvider, variableRegistry, niFiProperties);
    ProcessGroup procGroup = new MockProcessGroup(controller);
    Mockito.when(controller.getGroup(Mockito.anyString())).thenReturn(procGroup);
    ControllerServiceNode A = provider.createControllerService(ServiceA.class.getName(), "A", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode B = provider.createControllerService(ServiceA.class.getName(), "B", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode C = provider.createControllerService(ServiceA.class.getName(), "C", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode D = provider.createControllerService(ServiceB.class.getName(), "D", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode E = provider.createControllerService(ServiceA.class.getName(), "E", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode F = provider.createControllerService(ServiceB.class.getName(), "F", systemBundle.getBundleDetails().getCoordinate(), null, false);
    procGroup.addControllerService(A);
    procGroup.addControllerService(B);
    procGroup.addControllerService(C);
    procGroup.addControllerService(D);
    procGroup.addControllerService(E);
    procGroup.addControllerService(F);
    setProperty(A, ServiceA.OTHER_SERVICE.getName(), "B");
    setProperty(B, ServiceA.OTHER_SERVICE.getName(), "D");
    setProperty(C, ServiceA.OTHER_SERVICE.getName(), "B");
    setProperty(C, ServiceA.OTHER_SERVICE_2.getName(), "D");
    setProperty(E, ServiceA.OTHER_SERVICE.getName(), "A");
    setProperty(E, ServiceA.OTHER_SERVICE_2.getName(), "F");
    provider.enableControllerServices(Arrays.asList(A, B, C, D, E, F));
    assertTrue(A.isActive());
    assertTrue(B.isActive());
    assertTrue(C.isActive());
    assertTrue(D.isActive());
    assertTrue(E.isActive());
    assertTrue(F.isActive());
}
Also used : ServiceB(org.apache.nifi.controller.service.mock.ServiceB) ServiceA(org.apache.nifi.controller.service.mock.ServiceA) ProcessGroup(org.apache.nifi.groups.ProcessGroup) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessGroup(org.apache.nifi.groups.StandardProcessGroup) FlowController(org.apache.nifi.controller.FlowController) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessScheduler(org.apache.nifi.controller.scheduling.StandardProcessScheduler) Test(org.junit.Test)

Example 5 with StandardProcessScheduler

use of org.apache.nifi.controller.scheduling.StandardProcessScheduler in project nifi by apache.

the class TestStandardControllerServiceProvider method validateEnableServicesWithDisabledMissingService.

@Test
public void validateEnableServicesWithDisabledMissingService() {
    StandardProcessScheduler scheduler = createScheduler();
    FlowController controller = Mockito.mock(FlowController.class);
    StandardControllerServiceProvider provider = new StandardControllerServiceProvider(controller, scheduler, null, stateManagerProvider, variableRegistry, niFiProperties);
    ProcessGroup procGroup = new MockProcessGroup(controller);
    Mockito.when(controller.getGroup(Mockito.anyString())).thenReturn(procGroup);
    ControllerServiceNode serviceNode1 = provider.createControllerService(ServiceA.class.getName(), "1", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode serviceNode2 = provider.createControllerService(ServiceA.class.getName(), "2", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode serviceNode3 = provider.createControllerService(ServiceA.class.getName(), "3", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode serviceNode4 = provider.createControllerService(ServiceB.class.getName(), "4", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode serviceNode5 = provider.createControllerService(ServiceA.class.getName(), "5", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode serviceNode6 = provider.createControllerService(ServiceB.class.getName(), "6", systemBundle.getBundleDetails().getCoordinate(), null, false);
    ControllerServiceNode serviceNode7 = provider.createControllerService(ServiceC.class.getName(), "7", systemBundle.getBundleDetails().getCoordinate(), null, false);
    procGroup.addControllerService(serviceNode1);
    procGroup.addControllerService(serviceNode2);
    procGroup.addControllerService(serviceNode3);
    procGroup.addControllerService(serviceNode4);
    procGroup.addControllerService(serviceNode5);
    procGroup.addControllerService(serviceNode6);
    procGroup.addControllerService(serviceNode7);
    setProperty(serviceNode1, ServiceA.OTHER_SERVICE.getName(), "2");
    setProperty(serviceNode2, ServiceA.OTHER_SERVICE.getName(), "4");
    setProperty(serviceNode3, ServiceA.OTHER_SERVICE.getName(), "2");
    setProperty(serviceNode3, ServiceA.OTHER_SERVICE_2.getName(), "4");
    setProperty(serviceNode5, ServiceA.OTHER_SERVICE.getName(), "6");
    setProperty(serviceNode7, ServiceC.REQ_SERVICE_1.getName(), "2");
    setProperty(serviceNode7, ServiceC.REQ_SERVICE_2.getName(), "3");
    provider.enableControllerServices(Arrays.asList(serviceNode1, serviceNode2, serviceNode3, serviceNode4, serviceNode5, serviceNode7));
    assertFalse(serviceNode1.isActive());
    assertFalse(serviceNode2.isActive());
    assertFalse(serviceNode3.isActive());
    assertFalse(serviceNode4.isActive());
    assertFalse(serviceNode5.isActive());
    assertFalse(serviceNode6.isActive());
    provider.enableControllerService(serviceNode6);
    provider.enableControllerServices(Arrays.asList(serviceNode1, serviceNode2, serviceNode3, serviceNode4, serviceNode5));
    assertTrue(serviceNode1.isActive());
    assertTrue(serviceNode2.isActive());
    assertTrue(serviceNode3.isActive());
    assertTrue(serviceNode4.isActive());
    assertTrue(serviceNode5.isActive());
    assertTrue(serviceNode6.isActive());
}
Also used : ServiceC(org.apache.nifi.controller.service.mock.ServiceC) ServiceB(org.apache.nifi.controller.service.mock.ServiceB) ServiceA(org.apache.nifi.controller.service.mock.ServiceA) ProcessGroup(org.apache.nifi.groups.ProcessGroup) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessGroup(org.apache.nifi.groups.StandardProcessGroup) FlowController(org.apache.nifi.controller.FlowController) MockProcessGroup(org.apache.nifi.controller.service.mock.MockProcessGroup) StandardProcessScheduler(org.apache.nifi.controller.scheduling.StandardProcessScheduler) Test(org.junit.Test)

Aggregations

FlowController (org.apache.nifi.controller.FlowController)6 StandardProcessScheduler (org.apache.nifi.controller.scheduling.StandardProcessScheduler)6 MockProcessGroup (org.apache.nifi.controller.service.mock.MockProcessGroup)6 ProcessGroup (org.apache.nifi.groups.ProcessGroup)6 StandardProcessGroup (org.apache.nifi.groups.StandardProcessGroup)6 Test (org.junit.Test)6 ServiceA (org.apache.nifi.controller.service.mock.ServiceA)5 ServiceB (org.apache.nifi.controller.service.mock.ServiceB)5 ServiceC (org.apache.nifi.controller.service.mock.ServiceC)2 ProcessorNode (org.apache.nifi.controller.ProcessorNode)1 StandardProcessorNode (org.apache.nifi.controller.StandardProcessorNode)1