List of usage examples for com.amazonaws.services.ec2.model SpotInstanceRequest getStatus
public SpotInstanceStatus getStatus()
The status code and status message describing the Spot Instance request.
From source file:com.kpbird.aws.Main.java
private void createEC2SpotInstance() { try {//ww w .ja v a 2 s. co m /// Creating Spot Instance //// // Initializes a Spot Instance Request RequestSpotInstancesRequest requestRequest = new RequestSpotInstancesRequest(); // Request 1 x t1.micro instance with a bid price of $0.03. requestRequest.setSpotPrice(spotPrice); requestRequest.setInstanceCount(Integer.valueOf(1)); LaunchSpecification launchSpecification = new LaunchSpecification(); launchSpecification.setImageId(imageId); launchSpecification.setInstanceType(instanceType); launchSpecification.setMonitoringEnabled(true); // Add the security group to the request. ArrayList<String> securityGroups = new ArrayList<String>(); securityGroups.add(groupName); launchSpecification.setSecurityGroups(securityGroups); launchSpecification.setKeyName(keyName); // Add the launch specifications to the request. requestRequest.setLaunchSpecification(launchSpecification); // Call the RequestSpotInstance API. RequestSpotInstancesResult requestResult = ec2client.requestSpotInstances(requestRequest); List<SpotInstanceRequest> requestResponses = requestResult.getSpotInstanceRequests(); // Setup an arraylist to collect all of the request ids we want to // watch hit the running state. ArrayList<String> spotInstanceRequestIds = new ArrayList<String>(); // Add all of the request ids to the hashset, so we can determine when they hit the // active state. for (SpotInstanceRequest requestResponse : requestResponses) { System.out.println("Created Spot Request: " + requestResponse.getSpotInstanceRequestId()); spotInstanceRequestIds.add(requestResponse.getSpotInstanceRequestId()); log.Info(requestResponse.getInstanceId() + "\t" + requestResponse.getState()); } String instanceId = null; boolean isWaiting = true; while (isWaiting) { log.Info("*** Waiting for Spot Instance Request ***"); Thread.sleep(5000); DescribeSpotInstanceRequestsRequest describeRequest = new DescribeSpotInstanceRequestsRequest(); describeRequest.setSpotInstanceRequestIds(spotInstanceRequestIds); DescribeSpotInstanceRequestsResult describeResult = ec2client .describeSpotInstanceRequests(describeRequest); List<SpotInstanceRequest> describeResponses = describeResult.getSpotInstanceRequests(); for (SpotInstanceRequest describeResponse : describeResponses) { log.Info(describeResponse.getInstanceId() + "\t" + describeResponse.getState() + "\t" + describeResponse.getSpotInstanceRequestId() + "\t" + describeResponse.getStatus().getCode() + "\t" + describeResponse.getStatus().getMessage()); if (describeResponse.getState().equals("active")) { isWaiting = false; instanceId = describeResponse.getInstanceId(); break; } } } isWaiting = true; while (isWaiting) { log.Info("*** Waiting for Instance Running ***"); Thread.sleep(1000); DescribeInstancesResult r = ec2client.describeInstances(); Iterator<Reservation> ir = r.getReservations().iterator(); while (ir.hasNext()) { Reservation rr = ir.next(); List<Instance> instances = rr.getInstances(); for (Instance ii : instances) { log.Info(ii.getImageId() + "\t" + ii.getInstanceId() + "\t" + ii.getState().getName() + "\t" + ii.getPrivateDnsName()); if (ii.getState().getName().equals("running") && ii.getInstanceId().equals(instanceId)) { log.Info(ii.getPublicDnsName()); String publicDNS = ii.getPublicDnsName(); log.Info("Public DNS :" + publicDNS); isWaiting = false; } } } } /// Creating Tag for New Instance //// log.Info("Creating Tags for New Instance"); CreateTagsRequest crt = new CreateTagsRequest(); ArrayList<Tag> arrTag = new ArrayList<Tag>(); arrTag.add(new Tag().withKey("Name").withValue(instanceName)); crt.setTags(arrTag); ArrayList<String> arrInstances = new ArrayList<String>(); arrInstances.add(instanceId); crt.setResources(arrInstances); ec2client.createTags(crt); } catch (Exception e) { e.printStackTrace(); } }
From source file:org.excalibur.service.aws.ec2.EC2.java
License:Open Source License
private List<SpotInstanceOfferResult> toSpotInstanceResults(SpotInstanceOffer request, List<SpotInstanceRequest> spotInstanceRequests) { List<SpotInstanceOfferResult> resultList = new ArrayList<SpotInstanceOfferResult>(); for (SpotInstanceRequest spotInstanceResult : spotInstanceRequests) { SpotInstanceOfferResult result = new SpotInstanceOfferResult().setCreateTime(new Date()) .setOfferRequest(request); result.setState(SpotInstanceOfferStateType.valueOfFrom(spotInstanceResult.getState())); result.setSpotRequestId(spotInstanceResult.getSpotInstanceRequestId()); result.setStatus(new SpotInstanceOfferStatus().setCode(spotInstanceResult.getStatus().getCode()) .setMessage(spotInstanceResult.getStatus().getMessage()) .setUpdateTime(spotInstanceResult.getStatus().getUpdateTime())); resultList.add(result);/* w w w. ja v a 2 s. co m*/ } return resultList; }