package com.sequenceiq.cloudbreak.core.flow2.stack.instance.termination; import java.util.Map; import javax.inject.Inject; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.cloud.event.Selectable; import com.sequenceiq.cloudbreak.core.flow2.stack.AbstractStackFailureAction; import com.sequenceiq.cloudbreak.core.flow2.stack.StackFailureContext; import com.sequenceiq.cloudbreak.reactor.api.event.StackEvent; import com.sequenceiq.cloudbreak.reactor.api.event.StackFailureEvent; @Component("InstanceTerminationFailureAction") public class InstanceTerminationFailureAction extends AbstractStackFailureAction<InstanceTerminationState, InstanceTerminationEvent> { @Inject private InstanceTerminationService instanceTerminationService; @Override protected void doExecute(StackFailureContext context, StackFailureEvent payload, Map<Object, Object> variables) { instanceTerminationService.handleInstanceTerminationError(context.getStack(), payload); sendEvent(context); } @Override protected Selectable createRequest(StackFailureContext context) { return new StackEvent(InstanceTerminationEvent.TERMINATION_FAIL_HANDLED_EVENT.event(), context.getStack().getId()); } }