package com.ontology2.haruhi.createMachineImage;
import com.amazonaws.services.ec2.AmazonEC2Client;
import com.amazonaws.services.ec2.model.*;
import com.ontology2.centipede.shell.CommandLineApplication;
import org.springframework.beans.factory.annotation.Autowired;
public class CreateMachineImage extends CommandLineApplication {
@Autowired
AmazonEC2Client ec2Client;
@Override
protected void _run(String[] strings) throws Exception {
String instanceId="i-3c9b476f";
String name="Testing "+System.currentTimeMillis();
DescribeInstancesRequest dir= new DescribeInstancesRequest().withInstanceIds(instanceId);
DescribeInstancesResult dir2=ec2Client.describeInstances(dir);
Reservation rs=dir2.getReservations().get(0);
Instance i=rs.getInstances().get(0);
String instanceState=i.getState().getName().intern();
if(instanceState!="stopped") {
System.out.println("You must stop this instance safely before I can image it.");
System.exit(-1);
}
CreateImageRequest request=new CreateImageRequest(instanceId,name).withBlockDeviceMappings(
new BlockDeviceMapping().withVirtualName("ephemeral0").withDeviceName("/dev/xvdb"),
new BlockDeviceMapping().withDeviceName("/dev/sdf").withEbs(new EbsBlockDevice().withDeleteOnTermination(true))
);
CreateImageResult result=ec2Client.createImage(request);
System.out.println(result.getImageId());
}
}