List of usage examples for com.amazonaws.services.ec2.model Placement setAvailabilityZone
public void setAvailabilityZone(String availabilityZone)
The Availability Zone of the instance.
From source file:com.liferay.amazontools.AMIBuilder.java
License:Open Source License
protected void start() { RunInstancesRequest runInstancesRequest = new RunInstancesRequest(); String availabilityZone = properties.getProperty("availability.zone"); if (!isZoneAvailable(availabilityZone)) { throw new RuntimeException("Unavailable zone " + availabilityZone); }//from w w w . j a v a2s.c o m String imageId = properties.getProperty("image.id"); if (imageId == null) { imageId = getImageId(properties.getProperty("image.name")); } runInstancesRequest.setImageId(imageId); runInstancesRequest.setInstanceType(properties.getProperty("instance.type")); runInstancesRequest.setKeyName(properties.getProperty("key.name")); runInstancesRequest.setMaxCount(1); runInstancesRequest.setMinCount(1); Placement placement = new Placement(); placement.setAvailabilityZone(availabilityZone); runInstancesRequest.setPlacement(placement); List<String> securityGroupsIds = new ArrayList<String>(); securityGroupsIds.add(properties.getProperty("security.group.id")); runInstancesRequest.setSecurityGroupIds(securityGroupsIds); RunInstancesResult runInstancesResult = amazonEC2Client.runInstances(runInstancesRequest); Reservation reservation = runInstancesResult.getReservation(); List<Instance> instances = reservation.getInstances(); if (instances.isEmpty()) { throw new RuntimeException("Unable to create instances"); } Instance instance = instances.get(0); _instanceId = instance.getInstanceId(); _publicIpAddress = instance.getPublicIpAddress(); StringBuilder sb = new StringBuilder(13); sb.append("{imageId="); sb.append(instance.getImageId()); sb.append(", instanceId="); sb.append(_instanceId); sb.append(", instanceType="); sb.append(instance.getInstanceType()); sb.append(", keyName="); sb.append(instance.getKeyName()); sb.append(", reservationId="); sb.append(reservation.getReservationId()); sb.append(", state="); InstanceState instanceState = instance.getState(); sb.append(instanceState.getName()); sb.append("}"); System.out.println("Starting instance " + sb.toString()); boolean running = false; for (int i = 0; i < 6; i++) { sleep(30); instance = getRunningInstance(_instanceId); if (instance != null) { _publicIpAddress = instance.getPublicIpAddress(); running = true; sb = new StringBuilder(7); sb.append("{instanceId="); sb.append(_instanceId); sb.append(", publicIpAddress="); sb.append(_publicIpAddress); sb.append(", stat="); instanceState = instance.getState(); sb.append(instanceState.getName()); sb.append("}"); System.out.println("Started instance " + sb.toString()); break; } } if (!running) { throw new RuntimeException("Unable to start instance " + _instanceId); } }
From source file:de.fischer.thotti.ec2.EC2Executor.java
License:Apache License
void addPlacementConstraints(RunInstancesRequest request, RegionType region) { Placement placement = new Placement(); if ("default".equals(region.getAvailibleZone()) == false) placement.setAvailabilityZone(region.getAvailibleZone()); if (null == placement.getAvailabilityZone()) return;/*from w w w . j a va 2 s.c o m*/ request.setPlacement(placement); }
From source file:eu.optimis.interopt.provider.aws.AmazonClient.java
License:Apache License
@Override public void deployService(String service_id, List<ServiceComponent> serviceComponents, XmlBeanServiceManifestDocument manifest) throws ServiceInstantiationException { AmazonEC2 ec2 = getAmazonEC2Client(); log.info("Deploying service..."); if (isDeployed(service_id)) { throw new ServiceInstantiationException( "This service is already deployed! " + "Terminate it before deploying it again.", new java.lang.Throwable()); }/*from w w w. j a v a2s .c om*/ // Get the number of VMs to deploy int totalVms = 0; for (ServiceComponent sc : serviceComponents) { totalVms = totalVms + sc.getInstances(); } // If sum < maxvms invoke createVM method as many times as needed if (totalVms > AmazonClient.maxvms) { throw new ServiceInstantiationException("Number of VMs to deploy exceeds the maximum", new java.lang.Throwable()); } for (ServiceComponent sc : serviceComponents) { int numInstances = sc.getInstances(); log.info("Number of vm instances to deploy: " + numInstances); String imageId = sc.getImage(); InstanceType type = selectInstanceType(sc); Placement placement = new Placement(); placement.setAvailabilityZone(availabilityZone.getZoneName()); RunInstancesRequest req = new RunInstancesRequest(imageId, numInstances, numInstances); ArrayList<String> securityGroups = new ArrayList<String>(); securityGroups.add(SECURITY_GROUP); req.setSecurityGroupIds(securityGroups); req.setInstanceType(type); req.setPlacement(placement); //req.setMonitoring(true); try { RunInstancesResult res = ec2.runInstances(req); List<Instance> instances = res.getReservation().getInstances(); log.info("Creating Tags..."); for (Instance inst : instances) { Tag tag = new Tag("serviceid", service_id); List<Tag> tags = new ArrayList<Tag>(); tags.add(tag); List<String> resources = new ArrayList<String>(); resources.add(inst.getInstanceId()); CreateTagsRequest req2 = new CreateTagsRequest(resources, tags); ec2.createTags(req2); } } catch (AmazonServiceException e) { log.error("Service deployment has failed: "); log.error(printServiceException(e)); throw new ServiceInstantiationException("Service deployment has failed: " + e.getMessage(), new java.lang.Throwable()); } log.info("Service Deployed successfully!"); } }
From source file:jp.aws.test.ec2.EC2Instance.java
License:Apache License
/** * EC2//from w ww.j a va 2s. com * * @param imageId * @param min * @param max * @param instanceType * @param keyPairName * @param availabilityZone * @param securityGroups * @return Vector<Instance> * @throws Exception */ public Vector<Instance> launchEC2Instances(String imageId, int min, int max, String instanceType, String keyPairName, String availabilityZone, Collection<String> securityGroups, String additionalInfo, String userData) throws Exception { Vector<Instance> newInstances = new Vector<Instance>(); if (min <= 0 || max <= 0 || min > max) { return newInstances; } RunInstancesRequest request = new RunInstancesRequest(); request.setImageId(imageId); request.setInstanceType(instanceType); request.setMinCount(min); request.setMaxCount(max); Placement p = new Placement(); if (availabilityZone.toLowerCase().equals("any")) availabilityZone = ""; // ?????? p.setAvailabilityZone(availabilityZone); request.setPlacement(p); request.setSecurityGroups(securityGroups); request.setKeyName(keyPairName);// assign Keypair name for this request request.setUserData(userData); request.setAdditionalInfo(additionalInfo); // RunInstancesResult runInstancesRes = clientManager.ec2().runInstances(request); String reservationId = runInstancesRes.getReservation().getReservationId(); List<Instance> instances = runInstancesRes.getReservation().getInstances(); if (runInstancesRes != null) { for (Instance instance : instances) { // EC2InstanceObject newInstanceObject = new // EC2InstanceObject(); // newInstanceObject.setDnsName(i.getPublicDnsName()); // newInstanceObject.setInstanceId(i.getInstanceId()); // instances.add(newInstanceObject); // newInstances.add(newInstanceObject); newInstances.add(instance); } } return newInstances; }
From source file:jp.primecloud.auto.aws.typica.converter.InstanceConverter.java
License:Open Source License
@Override protected Instance convertObject(com.xerox.amazonws.ec2.ReservationDescription.Instance from) { Instance to = new Instance(); to.setInstanceId(from.getInstanceId()); to.setImageId(from.getImageId());/*from w w w. j ava2 s . c om*/ InstanceState state = new InstanceState(); state.setCode(from.getStateCode()); state.setName(from.getState()); to.setState(state); to.setPrivateDnsName(from.getPrivateDnsName()); to.setPublicDnsName(from.getDnsName()); to.setStateTransitionReason(from.getReason()); to.setKeyName(from.getKeyName()); to.setAmiLaunchIndex(null); to.setProductCodes(null); to.setInstanceType(from.getInstanceType().name()); to.setLaunchTime(from.getLaunchTime().getTime()); Placement placement = new Placement(); placement.setAvailabilityZone(from.getAvailabilityZone()); placement.setGroupName(null); // to.setPlacement(placement); to.setKernelId(from.getKernelId()); to.setRamdiskId(from.getRamdiskId()); to.setPlatform(from.getPlatform()); Monitoring monitoring = new Monitoring(); monitoring.setState(Boolean.toString(from.isMonitoring())); to.setMonitoring(monitoring); // to.setSubnetId(null); to.setVpcId(null); to.setPrivateIpAddress(null); to.setPublicIpAddress(null); to.setStateReason(null); //to.setArchitecture(null); to.setRootDeviceName(null); to.setRootDeviceName(null); to.setBlockDeviceMappings(null); //to.setVirtualizationType(null); //to.setInstanceLifecycle(null); to.setSpotInstanceRequestId(null); //to.setLicense(null); to.setClientToken(null); to.setTags(null); return to; }
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());//from w w w.j av a2 s . 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(); }
From source file:n3phele.factory.ec2.VirtualServerResource.java
License:Open Source License
private int addOnDemandInstance(List<VirtualServer> items) { RunInstancesRequest vs = new RunInstancesRequest(); vs.setMinCount(items.size());/*from ww w. jav a 2 s .c o m*/ vs.setMaxCount(items.size()); String token = items.get(0).getIdempotencyKey(); if (token != null && token.length() > 64) { token = token.substring(token.length() - 64); } vs.setClientToken(token); HashMap<String, String> map = items.get(0).getParametersMap(); Injector.inject(vs, 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")); vs.setPlacement(p); } } if (map.containsKey("groupName")) { String groupName = map.get("groupName"); if (groupName != null && !groupName.equals("")) { p.setGroupName(map.get("groupName")); vs.setPlacement(p); } } } if (items.size() == 1 && createWithZombie(items.get(0))) { return 1; } AmazonEC2Client client = getEC2Client(items.get(0).getAccessKey(), items.get(0).getEncryptedKey(), items.get(0).getLocation()); RunInstancesResult result = null; try { result = client.runInstances(vs); } catch (AmazonServiceException e) { log.log(Level.WARNING, "EC2 error " + e.getErrorCode(), e); throw new WebApplicationException(e, Status.BAD_REQUEST); } catch (AmazonClientException e) { log.log(Level.SEVERE, "EC2 AmazonClientException", e); log.severe("Check for orphaned VMs"); try { result = client.runInstances(vs); } catch (Exception e2) { log.log(Level.SEVERE, "EC2 AmazonClientException", e2); throw new WebApplicationException(e, Status.BAD_REQUEST); } } int i = 0; for (Instance ec2Instance : result.getReservation().getInstances()) { log.info("Create VM[" + i + "] has Instance id " + ec2Instance.getInstanceId()); items.get(i).setInstanceId(ec2Instance.getInstanceId()); i++; } return result.getReservation().getInstances().size(); }
From source file:org.occiware.clouddriver.instance.InstanceOperations.java
License:Apache License
/** * Create one ec2 instance with data instance object. * @param instance/*from ww w. j a v a 2s. c o m*/ * @throws InstanceOperationException */ public InstanceDO createInstance(InstanceDO instance) throws InstanceOperationException { // Check instance data object before creation. checkInstanceObjCreation(instance); boolean hasPlacement = false; String keyPairName = instance.getKeyPairName(); String imageId = instance.getImage().getImageId(); String instanceType = instance.getInstanceType(); Boolean monitoring = instance.isMonitoring(); String region = instance.getRegionId(); String zone = instance.getZoneId(); List<GroupIdentifierDO> securityGroups = instance.getSecurityGroups(); String name = instance.getName(); String userData = instance.getUserData(); RunInstancesRequest rRequest = new RunInstancesRequest(imageId, 1, 1); rRequest.setInstanceType(instanceType); rRequest.setMonitoring(monitoring); if (keyPairName != null) { rRequest.setKeyName(keyPairName); } if (userData != null) { rRequest.setUserData(userData); } Placement placement = new Placement(); PlacementDO placementDO = instance.getPlacement(); if (placementDO != null && placementDO.getAvailabilityZone() != null) { placement.setAvailabilityZone(placementDO.getAvailabilityZone()); hasPlacement = true; } else { if (zone != null) { if (!zone.trim().isEmpty()) { placement.setAvailabilityZone(region + zone); hasPlacement = true; } } } if (placementDO != null) { String groupName = placementDO.getGroupName(); String tenancy = placementDO.getTenancy(); if (groupName != null) { placement.setGroupName(groupName); hasPlacement = true; } if (tenancy != null) { placement.setTenancy(tenancy); hasPlacement = true; } } if (hasPlacement) { rRequest.setPlacement(placement); } if (securityGroups != null && !securityGroups.isEmpty()) { List<String> securityGroupNames = new ArrayList<>(); for (GroupIdentifierDO secGroup : securityGroups) { securityGroupNames.add(secGroup.getGroupName()); } rRequest.setSecurityGroups(securityGroupNames); } RunInstancesResult runInstancesResult; List<Instance> instances; try { runInstancesResult = ec2Client.getClientInstance().runInstances(rRequest); instances = runInstancesResult.getReservation().getInstances(); } catch (AmazonServiceException ase) { logger.error("Exception thrown from aws : " + ase.getErrorCode() + " --> " + ase.getErrorMessage()); throw new InstanceOperationException(ase); } catch (AmazonClientException ace) { logger.error("Exception thrown from aws : " + ace.getMessage()); throw new InstanceOperationException(ace); } InstanceDO instanceDOToReturn = null; if (instances != null && !instances.isEmpty()) { instanceDOToReturn = InstanceDataFactory.buildInstanceDataFromModel(instances.get(0)); if (instanceDOToReturn != null && name != null && instanceDOToReturn.getInstanceId() != null) { TagsOperation tagOperation = new TagsOperation(ec2Client); tagOperation.createTag(instanceDOToReturn.getInstanceId(), "Name", name); } } return instanceDOToReturn; }
From source file:org.openinfinity.cloud.service.administrator.EC2Wrapper.java
License:Apache License
public Reservation createInstance(String amiId, Integer amount, String keyName, String zone, String instanceType, List<String> securityGroups) { Reservation reservation = null;//w w w. j a va 2 s . c o m try { Integer minimumAmount = amount; Integer maximumAmount = amount; if (amiId == null) { return null; } String myAmiId = null; myAmiId = amiId; RunInstancesRequest runInstancesRequest = new RunInstancesRequest(myAmiId, minimumAmount, maximumAmount); runInstancesRequest.setKeyName(keyName); Placement placement = new Placement(); placement.setAvailabilityZone(zone); runInstancesRequest.setPlacement(placement); runInstancesRequest.setSecurityGroups(securityGroups); if (instanceType != null) { runInstancesRequest.setInstanceType(instanceType); } RunInstancesResult result = ec2.runInstances(runInstancesRequest); reservation = result.getReservation(); } catch (AmazonServiceException ase) { String message = ase.getMessage(); LOG.error("Caught Exception: " + message); LOG.error("Response Status Code: " + ase.getStatusCode()); LOG.error("Error Code: " + ase.getErrorCode()); LOG.error("Request ID: " + ase.getRequestId()); ExceptionUtil.throwSystemException(message, ase); } catch (AmazonClientException e) { e.printStackTrace(); ExceptionUtil.throwSystemException(e.getMessage(), e); } return reservation; }