use of com.sequenceiq.flow.core.AbstractAction in project cloudbreak by hortonworks.
the class UpgradeCcmActionsTest method configureAction.
private Action<?, ?> configureAction(Supplier<Action<?, ?>> actionSupplier) {
Action<?, ?> action = actionSupplier.get();
assertThat(action).isNotNull();
setActionPrivateFields(action);
AbstractAction abstractAction = (AbstractAction) action;
abstractAction.setFailureEvent(failureEvent);
return action;
}
use of com.sequenceiq.flow.core.AbstractAction in project cloudbreak by hortonworks.
the class ClusterUpgradeValidationActions method clusterUpgradeValidationFailed.
@Bean(name = "CLUSTER_UPGRADE_VALIDATION_FAILED_STATE")
public Action<?, ?> clusterUpgradeValidationFailed() {
return new AbstractAction<ClusterUpgradeValidationState, ClusterUpgradeValidationStateSelectors, ClusterUpgradeContext, ClusterUpgradeValidationFailureEvent>(ClusterUpgradeValidationFailureEvent.class) {
@Inject
private CloudbreakMessagesService messagesService;
@Inject
private StackUpdater stackUpdater;
@Override
protected ClusterUpgradeContext createFlowContext(FlowParameters flowParameters, StateContext<ClusterUpgradeValidationState, ClusterUpgradeValidationStateSelectors> stateContext, ClusterUpgradeValidationFailureEvent payload) {
StackView stackView = stackService.getViewByIdWithoutAuth(payload.getResourceId());
MDCBuilder.buildMdcContext(stackView);
Flow flow = getFlow(flowParameters.getFlowId());
flow.setFlowFailed(payload.getException());
return ClusterUpgradeContext.from(flowParameters, payload);
}
@Override
protected void doExecute(ClusterUpgradeContext context, ClusterUpgradeValidationFailureEvent payload, Map<Object, Object> variables) {
String errorMessage = payload.getException().getMessage();
Long resourceId = payload.getResourceId();
LOGGER.debug("Cluster upgrade validation failed with validation error: {}", errorMessage);
ResourceEvent validationFailedResourceEvent = ResourceEvent.CLUSTER_UPGRADE_VALIDATION_FAILED;
cloudbreakEventService.fireCloudbreakEvent(resourceId, UPDATE_FAILED.name(), validationFailedResourceEvent, List.of(errorMessage));
String reason = messagesService.getMessage(validationFailedResourceEvent.getMessage(), List.of(errorMessage));
stackUpdater.updateStackStatus(resourceId, DetailedStackStatus.AVAILABLE, reason);
sendEvent(context, HANDLED_FAILED_CLUSTER_UPGRADE_VALIDATION_EVENT.event(), payload);
}
@Override
protected Object getFailurePayload(ClusterUpgradeValidationFailureEvent payload, Optional<ClusterUpgradeContext> flowContext, Exception ex) {
LOGGER.warn("No failure payload in case of CLUSTER_UPGRADE_VALIDATION_FAILED_STATE. This should not happen.", ex);
return null;
}
@Override
protected void initPayloadConverterMap(List<PayloadConverter<ClusterUpgradeValidationFailureEvent>> payloadConverters) {
payloadConverters.add(new ClusterUpgradeUpdateCheckFailedToClusterUpgradeValidationFailureEvent());
}
};
}
use of com.sequenceiq.flow.core.AbstractAction in project cloudbreak by hortonworks.
the class ExternalDatabaseTerminationActionsTest method configureAction.
private Action<?, ?> configureAction(Supplier<Action<?, ?>> actionSupplier) {
Action<?, ?> action = actionSupplier.get();
assertThat(action).isNotNull();
setActionPrivateFields(action);
AbstractAction abstractAction = (AbstractAction) action;
abstractAction.setFailureEvent(failureEvent);
return action;
}
use of com.sequenceiq.flow.core.AbstractAction in project cloudbreak by hortonworks.
the class ExternalDatabaseStartActionsTest method configureAction.
private Action<?, ?> configureAction(Supplier<Action<?, ?>> actionSupplier) {
Action<?, ?> action = actionSupplier.get();
assertThat(action).isNotNull();
setActionPrivateFields(action);
AbstractAction abstractAction = (AbstractAction) action;
abstractAction.setFailureEvent(failureEvent);
return action;
}
use of com.sequenceiq.flow.core.AbstractAction in project cloudbreak by hortonworks.
the class DatalakeRestoreActionsTest method testGetNewSdxIdForResizeCreateFlowContext.
@Test
public void testGetNewSdxIdForResizeCreateFlowContext() throws Exception {
SdxCluster sdxCluster = genCluster();
FlowParameters flowParameters = new FlowParameters(FLOW_ID, null, null);
when(sdxService.getByNameInAccount(eq(USER_CRN), eq(DATALAKE_NAME))).thenReturn(sdxCluster);
when(flowLogService.getLastFlowLog(anyString())).thenReturn(Optional.of(new FlowLog()));
FlowChainLog flowChainLog = new FlowChainLog();
flowChainLog.setFlowChainType(DatalakeResizeFlowEventChainFactory.class.getSimpleName());
when(flowChainLogService.findFirstByFlowChainIdOrderByCreatedDesc(any())).thenReturn(Optional.of(flowChainLog));
DatalakeTriggerRestoreEvent event = new DatalakeTriggerRestoreEvent(DATALAKE_TRIGGER_RESTORE_EVENT.event(), OLD_SDX_ID, DATALAKE_NAME, USER_CRN, null, BACKUP_LOCATION, null, DatalakeRestoreFailureReason.RESTORE_ON_RESIZE);
AbstractAction action = (AbstractAction) underTest.triggerDatalakeRestore();
initActionPrivateFields(action);
AbstractActionTestSupport testSupport = new AbstractActionTestSupport(action);
SdxContext context = (SdxContext) testSupport.createFlowContext(flowParameters, null, event);
Assert.assertEquals(NEW_SDX_ID, context.getSdxId());
Assert.assertEquals(USER_CRN, context.getUserId());
Assert.assertEquals(FLOW_ID, context.getFlowId());
Assert.assertEquals(NEW_SDX_ID, event.getDrStatus().getSdxClusterId());
flowChainLog.setFlowChainType(DatalakeUpgradeFlowEventChainFactory.class.getSimpleName());
context = (SdxContext) testSupport.createFlowContext(flowParameters, null, event);
Assert.assertEquals(OLD_SDX_ID, context.getSdxId());
}
Aggregations