package com.sequenceiq.cloudbreak.core.flow2.stack.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.TerminateStackResult;
import com.sequenceiq.cloudbreak.reactor.api.event.StackEvent;
@Component("StackTerminationFinishedAction")
public class StackTerminationFinishedAction extends AbstractStackTerminationAction<TerminateStackResult> {
private static final Logger LOGGER = LoggerFactory.getLogger(StackTerminationFinishedAction.class);
@Inject
private StackTerminationService stackTerminationService;
public StackTerminationFinishedAction() {
super(TerminateStackResult.class);
}
@Override
protected void doExecute(StackTerminationContext context, TerminateStackResult payload, Map<Object, Object> variables) {
Boolean deleteDependencies = Boolean.valueOf(String.valueOf(variables.get("DELETEDEPENDENCIES")));
stackTerminationService.finishStackTermination(context, payload, deleteDependencies == null ? false : deleteDependencies);
sendEvent(context);
}
@Override
protected Selectable createRequest(StackTerminationContext context) {
return new StackEvent(StackTerminationEvent.TERMINATION_FINALIZED_EVENT.event(), context.getStack().getId());
}
}