package core.aws.task.s3;
import com.amazonaws.services.s3.model.TagSet;
import core.aws.client.AWS;
import core.aws.env.Context;
import core.aws.resource.s3.Bucket;
import core.aws.util.ToStringHelper;
import core.aws.workflow.Action;
import core.aws.workflow.Task;
/**
* @author neo
*/
@Action("create-s3")
public class CreateBucketTask extends Task<Bucket> {
public CreateBucketTask(Bucket bucket) {
super(bucket);
}
@Override
public void execute(Context context) throws Exception {
resource.remoteBucket = AWS.s3.createBucket(resource.name);
context.output("s3/" + resource.id, "bucketName=" + resource.remoteBucket.getName());
TagSet tagSet = new TagSet();
tagSet.setTag("cloud-manager:env", context.env.name);
tagSet.setTag("cloud-manager:env:" + context.env.name + ":resource-id", resource.id);
AWS.s3.createTags(resource.name, tagSet);
}
@Override
public String toString() {
return new ToStringHelper(this)
.add(resource)
.add("bucket", resource.name)
.toString();
}
}