package com.sequenceiq.cloudbreak.core.flow2.stack.instance.termination; import java.util.Map; import javax.inject.Inject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.cloud.event.Selectable; import com.sequenceiq.cloudbreak.cloud.event.resource.RemoveInstanceRequest; import com.sequenceiq.cloudbreak.core.flow2.event.InstanceTerminationTriggerEvent; @Component("InstanceTerminationAction") public class InstanceTerminationAction extends AbstractInstanceTerminationAction<InstanceTerminationTriggerEvent> { private static final Logger LOGGER = LoggerFactory.getLogger(InstanceTerminationAction.class); @Inject private InstanceTerminationService instanceTerminationService; public InstanceTerminationAction() { super(InstanceTerminationTriggerEvent.class); } @Override protected void doExecute(InstanceTerminationContext context, InstanceTerminationTriggerEvent payload, Map<Object, Object> variables) throws Exception { instanceTerminationService.instanceTermination(context); sendEvent(context); } @Override protected Selectable createRequest(InstanceTerminationContext context) { return new RemoveInstanceRequest(context.getCloudContext(), context.getCloudCredential(), context.getCloudStack(), context.getCloudResources(), context.getCloudInstances()); } }