package core.aws.task.as;
import core.aws.client.AWS;
import core.aws.env.Context;
import core.aws.resource.as.ASGroup;
import core.aws.workflow.Action;
import core.aws.workflow.Task;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author neo
*/
@Action("del-asg")
public class DeleteASGroupTask extends Task<ASGroup> {
public DeleteASGroupTask(ASGroup asGroup) {
super(asGroup);
}
@Override
public void execute(Context context) throws Exception {
String asGroupName = resource.remoteASGroup.getAutoScalingGroupName();
AWS.as.deleteAutoScalingGroup(asGroupName);
String launchConfigurationName = resource.launchConfig.remoteLaunchConfig.getLaunchConfigurationName();
AWS.as.deleteLaunchConfig(launchConfigurationName);
context.output("as/" + resource.id, String.format("deletedASGroup=%s, deletedLaunchConfig=%s", asGroupName, launchConfigurationName));
List<String> instanceIds = resource.remoteASGroup.getInstances()
.stream()
.map(com.amazonaws.services.autoscaling.model.Instance::getInstanceId)
.collect(Collectors.toList());
if (!instanceIds.isEmpty())
AWS.ec2.terminateInstances(instanceIds);
}
}