Search in sources :

Example 51 with FlowTriggerEventQueue

use of com.sequenceiq.flow.core.chain.config.FlowTriggerEventQueue in project cloudbreak by hortonworks.

the class FlowOperationServiceTest method testGetOperationProgressByResourceCrn.

@Test
public void testGetOperationProgressByResourceCrn() {
    // GIVEN
    ProvisionFlowEventChainFactory provisionFlowEventChainFactory = new ProvisionFlowEventChainFactory();
    FlowTriggerEventQueue eventQueue = provisionFlowEventChainFactory.createFlowTriggerEventQueue(new StackEvent(null, null));
    given(flowService.getLastFlowOperationByResourceCrn(anyString())).willReturn(Optional.of(operationFlowsView));
    given(operationFlowsView.getOperationType()).willReturn(OperationType.PROVISION);
    given(operationDetailsPopulator.createOperationView(operationFlowsView, OperationResource.FREEIPA, EXPECTED_TYPE_LIST)).willReturn(new OperationView());
    // WHEN
    underTest.getOperationProgressByEnvironmentCrn(TEST_ENV_CRN, false);
    // THEN
    verify(operationDetailsPopulator, times(1)).createOperationView(operationFlowsView, OperationResource.FREEIPA, EXPECTED_TYPE_LIST);
    // Checks that the number of provision flows are the same as in the operation check
    assertEquals(EXPECTED_TYPE_LIST.size(), eventQueue.getQueue().size());
}
Also used : FlowTriggerEventQueue(com.sequenceiq.flow.core.chain.config.FlowTriggerEventQueue) StackEvent(com.sequenceiq.freeipa.flow.stack.StackEvent) ProvisionFlowEventChainFactory(com.sequenceiq.freeipa.flow.chain.ProvisionFlowEventChainFactory) OperationView(com.sequenceiq.flow.api.model.operation.OperationView) Test(org.junit.jupiter.api.Test)

Example 52 with FlowTriggerEventQueue

use of com.sequenceiq.flow.core.chain.config.FlowTriggerEventQueue in project cloudbreak by hortonworks.

the class UpgradeFlowEventChainFactoryTest method testFlowChainCreation.

@Test
public void testFlowChainCreation() {
    ImageSettingsRequest imageSettingsRequest = new ImageSettingsRequest();
    UpgradeEvent event = new UpgradeEvent("selector", STACK_ID, Sets.newHashSet("repl1", "repl2"), "pgw", OPERATION_ID, imageSettingsRequest, false);
    FlowTriggerEventQueue eventQueue = underTest.createFlowTriggerEventQueue(event);
    assertEquals("UpgradeFlowEventChainFactory", eventQueue.getFlowChainName());
    Queue<Selectable> queue = eventQueue.getQueue();
    assertEquals(10, queue.size());
    SaltUpdateTriggerEvent saltUpdateTriggerEvent = (SaltUpdateTriggerEvent) queue.poll();
    assertEquals(OPERATION_ID, saltUpdateTriggerEvent.getOperationId());
    assertEquals(STACK_ID, saltUpdateTriggerEvent.getResourceId());
    assertEquals(SaltUpdateEvent.SALT_UPDATE_EVENT.event(), saltUpdateTriggerEvent.selector());
    assertFalse(saltUpdateTriggerEvent.isFinalChain());
    ImageChangeEvent imageChangeEvent = (ImageChangeEvent) queue.poll();
    assertEquals(OPERATION_ID, imageChangeEvent.getOperationId());
    assertEquals(STACK_ID, imageChangeEvent.getResourceId());
    assertEquals(IMAGE_CHANGE_EVENT.event(), imageChangeEvent.selector());
    assertEquals(imageSettingsRequest, imageChangeEvent.getRequest());
    UpscaleEvent upscaleEvent1 = (UpscaleEvent) queue.poll();
    assertEquals(OPERATION_ID, upscaleEvent1.getOperationId());
    assertEquals(STACK_ID, upscaleEvent1.getResourceId());
    assertTrue(upscaleEvent1.isChained());
    assertFalse(upscaleEvent1.isFinalChain());
    assertFalse(upscaleEvent1.isRepair());
    assertEquals(UpscaleFlowEvent.UPSCALE_EVENT.event(), upscaleEvent1.selector());
    assertEquals(4, upscaleEvent1.getInstanceCountByGroup());
    DownscaleEvent downscaleEvent1 = (DownscaleEvent) queue.poll();
    assertEquals(OPERATION_ID, downscaleEvent1.getOperationId());
    assertEquals(STACK_ID, downscaleEvent1.getResourceId());
    assertTrue(downscaleEvent1.isChained());
    assertFalse(downscaleEvent1.isFinalChain());
    assertFalse(downscaleEvent1.isRepair());
    assertEquals(DownscaleFlowEvent.DOWNSCALE_EVENT.event(), downscaleEvent1.selector());
    assertEquals(3, downscaleEvent1.getInstanceCountByGroup());
    assertEquals(1, downscaleEvent1.getInstanceIds().size());
    String firstInstanceToDownscale = downscaleEvent1.getInstanceIds().get(0);
    assertTrue(firstInstanceToDownscale.startsWith("repl"));
    UpscaleEvent upscaleEvent2 = (UpscaleEvent) queue.poll();
    assertEquals(OPERATION_ID, upscaleEvent2.getOperationId());
    assertEquals(STACK_ID, upscaleEvent2.getResourceId());
    assertTrue(upscaleEvent2.isChained());
    assertFalse(upscaleEvent2.isFinalChain());
    assertFalse(upscaleEvent2.isRepair());
    assertEquals(UpscaleFlowEvent.UPSCALE_EVENT.event(), upscaleEvent2.selector());
    assertEquals(4, upscaleEvent2.getInstanceCountByGroup());
    DownscaleEvent downscaleEvent2 = (DownscaleEvent) queue.poll();
    assertEquals(OPERATION_ID, downscaleEvent2.getOperationId());
    assertEquals(STACK_ID, downscaleEvent2.getResourceId());
    assertTrue(downscaleEvent2.isChained());
    assertFalse(downscaleEvent2.isFinalChain());
    assertFalse(downscaleEvent2.isRepair());
    assertEquals(DownscaleFlowEvent.DOWNSCALE_EVENT.event(), downscaleEvent2.selector());
    assertEquals(3, downscaleEvent2.getInstanceCountByGroup());
    assertEquals(1, downscaleEvent2.getInstanceIds().size());
    String secondInstanceToDownscale = downscaleEvent2.getInstanceIds().get(0);
    assertTrue(secondInstanceToDownscale.startsWith("repl"));
    assertNotEquals(firstInstanceToDownscale, secondInstanceToDownscale);
    UpscaleEvent upscaleEvent3 = (UpscaleEvent) queue.poll();
    assertEquals(OPERATION_ID, upscaleEvent3.getOperationId());
    assertEquals(STACK_ID, upscaleEvent3.getResourceId());
    assertTrue(upscaleEvent3.isChained());
    assertFalse(upscaleEvent3.isFinalChain());
    assertFalse(upscaleEvent3.isRepair());
    assertEquals(UpscaleFlowEvent.UPSCALE_EVENT.event(), upscaleEvent3.selector());
    assertEquals(4, upscaleEvent3.getInstanceCountByGroup());
    ChangePrimaryGatewayEvent changePrimaryGatewayEvent = (ChangePrimaryGatewayEvent) queue.poll();
    assertEquals(OPERATION_ID, changePrimaryGatewayEvent.getOperationId());
    assertEquals(STACK_ID, changePrimaryGatewayEvent.getResourceId());
    assertFalse(changePrimaryGatewayEvent.isFinalChain());
    assertEquals(ChangePrimaryGatewayFlowEvent.CHANGE_PRIMARY_GATEWAY_EVENT.event(), changePrimaryGatewayEvent.selector());
    assertEquals(3, changePrimaryGatewayEvent.getRepairInstaceIds().size());
    assertTrue(List.of("repl1", "repl2", "pgw").containsAll(changePrimaryGatewayEvent.getRepairInstaceIds()));
    DownscaleEvent downscaleEvent3 = (DownscaleEvent) queue.poll();
    assertEquals(OPERATION_ID, downscaleEvent3.getOperationId());
    assertEquals(STACK_ID, downscaleEvent3.getResourceId());
    assertTrue(downscaleEvent3.isChained());
    assertFalse(downscaleEvent3.isFinalChain());
    assertFalse(downscaleEvent3.isRepair());
    assertEquals(DownscaleFlowEvent.DOWNSCALE_EVENT.event(), downscaleEvent3.selector());
    assertEquals(3, downscaleEvent3.getInstanceCountByGroup());
    assertEquals(1, downscaleEvent3.getInstanceIds().size());
    assertEquals("pgw", downscaleEvent3.getInstanceIds().get(0));
    SaltUpdateTriggerEvent saltUpdateTriggerEvent2 = (SaltUpdateTriggerEvent) queue.poll();
    assertEquals(OPERATION_ID, saltUpdateTriggerEvent2.getOperationId());
    assertEquals(STACK_ID, saltUpdateTriggerEvent2.getResourceId());
    assertEquals(SaltUpdateEvent.SALT_UPDATE_EVENT.event(), saltUpdateTriggerEvent2.selector());
    assertTrue(saltUpdateTriggerEvent2.isChained());
    assertTrue(saltUpdateTriggerEvent2.isFinalChain());
}
Also used : UpgradeEvent(com.sequenceiq.freeipa.flow.freeipa.upgrade.UpgradeEvent) ImageSettingsRequest(com.sequenceiq.freeipa.api.v1.freeipa.stack.model.common.image.ImageSettingsRequest) FlowTriggerEventQueue(com.sequenceiq.flow.core.chain.config.FlowTriggerEventQueue) DownscaleEvent(com.sequenceiq.freeipa.flow.freeipa.downscale.event.DownscaleEvent) Selectable(com.sequenceiq.cloudbreak.common.event.Selectable) ImageChangeEvent(com.sequenceiq.freeipa.flow.stack.image.change.event.ImageChangeEvent) UpscaleEvent(com.sequenceiq.freeipa.flow.freeipa.upscale.event.UpscaleEvent) SaltUpdateTriggerEvent(com.sequenceiq.freeipa.flow.freeipa.salt.update.SaltUpdateTriggerEvent) ChangePrimaryGatewayEvent(com.sequenceiq.freeipa.flow.freeipa.repair.changeprimarygw.event.ChangePrimaryGatewayEvent) Test(org.junit.jupiter.api.Test)

Aggregations

FlowTriggerEventQueue (com.sequenceiq.flow.core.chain.config.FlowTriggerEventQueue)52 Selectable (com.sequenceiq.cloudbreak.common.event.Selectable)35 ConcurrentLinkedQueue (java.util.concurrent.ConcurrentLinkedQueue)26 StackEvent (com.sequenceiq.cloudbreak.reactor.api.event.StackEvent)15 Test (org.junit.Test)10 Test (org.junit.jupiter.api.Test)9 Stack (com.sequenceiq.cloudbreak.domain.stack.Stack)8 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)8 SdxCluster (com.sequenceiq.datalake.entity.SdxCluster)5 StackView (com.sequenceiq.cloudbreak.domain.view.StackView)4 TerminationEvent (com.sequenceiq.cloudbreak.reactor.api.event.stack.TerminationEvent)4 ClusterTerminationEvent (com.sequenceiq.cloudbreak.core.flow2.cluster.termination.ClusterTerminationEvent)3 StackDownscaleTriggerEvent (com.sequenceiq.cloudbreak.core.flow2.event.StackDownscaleTriggerEvent)3 StackSyncTriggerEvent (com.sequenceiq.cloudbreak.core.flow2.event.StackSyncTriggerEvent)3 StackTerminationEvent (com.sequenceiq.cloudbreak.core.flow2.stack.termination.StackTerminationEvent)3 DatalakeResizeRecoveryFlowChainStartEvent (com.sequenceiq.datalake.flow.detach.event.DatalakeResizeRecoveryFlowChainStartEvent)3 CloudPlatformVariant (com.sequenceiq.cloudbreak.cloud.model.CloudPlatformVariant)2 Payload (com.sequenceiq.cloudbreak.common.event.Payload)2 ClusterAndStackDownscaleTriggerEvent (com.sequenceiq.cloudbreak.core.flow2.event.ClusterAndStackDownscaleTriggerEvent)2 ClusterDownscaleTriggerEvent (com.sequenceiq.cloudbreak.core.flow2.event.ClusterDownscaleTriggerEvent)2