List of usage examples for com.amazonaws.services.ec2 AmazonEC2Client requestSpotInstances
@Override
public RequestSpotInstancesResult requestSpotInstances(RequestSpotInstancesRequest request)
Creates a Spot Instance request.
From source file:n3phele.factory.ec2.VirtualServerResource.java
License:Open Source License
private int addSpotInstance(List<VirtualServer> items) { RequestSpotInstancesRequest sir = new RequestSpotInstancesRequest(); sir.setInstanceCount(items.size());//w w w . j a v a 2s .c om HashMap<String, String> map = items.get(0).getParametersMap(); Injector.inject(sir, map); LaunchSpecification launchSpec = new LaunchSpecification(); Injector.inject(launchSpec, map); if (map.containsKey("availabilityZone") || map.containsKey("groupName")) { Placement p = new Placement(); if (map.containsKey("availabilityZone")) { String availabilityZone = map.get("availabilityZone"); if (availabilityZone != null && !availabilityZone.equals("")) { p.setAvailabilityZone(map.get("availabilityZone")); launchSpec.setPlacement(p); } } if (map.containsKey("groupName")) { String groupName = map.get("groupName"); if (groupName != null && !groupName.equals("")) { p.setGroupName(map.get("groupName")); launchSpec.setPlacement(p); } } } sir.setLaunchSpecification(launchSpec); AmazonEC2Client client = getEC2Client(items.get(0).getAccessKey(), items.get(0).getEncryptedKey(), items.get(0).getLocation()); RequestSpotInstancesResult result = null; try { result = client.requestSpotInstances(sir); } catch (AmazonServiceException e) { log.log(Level.WARNING, "EC2 error " + e.getErrorCode(), e); throw new WebApplicationException(e, Status.BAD_REQUEST); } int i = 0; for (SpotInstanceRequest spot : result.getSpotInstanceRequests()) { log.warning("Spot Instance[" + i + "] id " + spot.getSpotInstanceRequestId()); items.get(i).setSpotId(spot.getSpotInstanceRequestId()); i++; } return result.getSpotInstanceRequests().size(); }