package core.aws.task.as; import com.amazonaws.services.autoscaling.model.Alarm; import core.aws.client.AWS; import core.aws.env.Context; import core.aws.resource.as.AutoScalingPolicy; import core.aws.workflow.Action; import core.aws.workflow.Task; import java.util.List; import java.util.stream.Collectors; /** * @author neo */ @Action("del-policy") public class DeletePolicyTask extends Task<AutoScalingPolicy> { public DeletePolicyTask(AutoScalingPolicy policy) { super(policy); } @Override public void execute(Context context) throws Exception { List<String> alarmNames = resource.remotePolicy.getAlarms().stream() .map(Alarm::getAlarmName) .collect(Collectors.toList()); AWS.cloudWatch.deleteAlarms(alarmNames); AWS.as.deletePolicy(resource.remotePolicy.getAutoScalingGroupName(), resource.remotePolicy.getPolicyName()); } }