package core.aws.task.ec2; import core.aws.env.Context; import core.aws.resource.ec2.Instance; import core.aws.resource.ec2.KeyPair; import core.aws.workflow.Action; import core.aws.workflow.Task; /** * @author neo */ @Action("desc-instance") public class DescribeInstanceTask extends Task<Instance> { public DescribeInstanceTask(Instance instance) { super(instance); } @Override public void execute(Context context) throws Exception { String key = "instance/" + resource.id; context.output(key, String.format("status=%s, type=%s, keyFile=%s", resource.status, resource.instanceType, KeyPair.keyFile(resource.keyPair.name, context.env))); int index = 0; for (com.amazonaws.services.ec2.model.Instance remoteInstance : resource.remoteInstances) { context.output(key, String.format("instanceId=%s, i=%s, state=%s, publicDNS=%s, publicIP=%s, privateIP=%s", remoteInstance.getInstanceId(), index++, remoteInstance.getState().getName(), remoteInstance.getPublicDnsName(), remoteInstance.getPublicIpAddress(), remoteInstance.getPrivateIpAddress())); } } }