List of usage examples for com.amazonaws.services.ec2.model RunInstancesRequest getInstanceType
public String getInstanceType()
The instance type.
From source file:com.rmn.qa.aws.AwsVmManager.java
License:Open Source License
public List<Instance> launchNodes(final String amiId, final String instanceType, final int numberToStart, final String userData, final boolean terminateOnShutdown) throws NodesCouldNotBeStartedException { RunInstancesRequest runRequest = new RunInstancesRequest(); runRequest.withImageId(amiId).withInstanceType(instanceType).withMinCount(numberToStart) .withMaxCount(numberToStart).withUserData(userData); if (terminateOnShutdown) { runRequest.withInstanceInitiatedShutdownBehavior("terminate"); }//w ww.ja va 2 s .com log.info("Setting image id: " + runRequest.getImageId()); log.info("Setting instance type: " + runRequest.getInstanceType()); Properties awsProperties = getAwsProperties(); String subnetKey = awsProperties.getProperty(region + "_subnet_id"); if (subnetKey != null) { log.info("Setting subnet: " + subnetKey); runRequest.withSubnetId(subnetKey); } String securityGroupKey = awsProperties.getProperty(region + "_security_group"); if (securityGroupKey != null) { String[] splitSecurityGroupdIds = securityGroupKey.split(","); List securityGroupIdsAryLst = new ArrayList(); for (int i = 0; i < splitSecurityGroupdIds.length; i++) { log.info("Setting security group(s): " + splitSecurityGroupdIds[i]); securityGroupIdsAryLst.add(splitSecurityGroupdIds[i]); } runRequest.setSecurityGroupIds(securityGroupIdsAryLst); } String keyName = awsProperties.getProperty(region + "_key_name"); if (keyName != null) { log.info("Setting keyname:" + keyName); runRequest.withKeyName(keyName); } log.info("Sending run request to AWS..."); RunInstancesResult runInstancesResult = getResults(runRequest, 0); log.info("Run request result returned. Adding tags"); // Tag the instances with the standard RMN AWS data List<Instance> instances = runInstancesResult.getReservation().getInstances(); if (instances.size() == 0) { throw new NodesCouldNotBeStartedException(String.format( "Error starting up nodes -- count was zero and did not match expected count of %d", numberToStart)); } associateTags(new Date().toString(), instances); return instances; }
From source file:de.fischer.thotti.ec2.EC2Executor.java
License:Apache License
/** * * @return a map with all created instances per region. The instances are * sorted by their availability zone. *//*from w ww . j a va 2s.c o m*/ private Map<String, SortedSet<Instance>> executeRequest(EC2RequestData<RunInstancesRequest> requestData) throws AWSCommunicationException { int requestID = 1; Map<String, SortedSet<Instance>> instances = new HashMap<String, SortedSet<Instance>>(); List<Region> awsRegions = getAWSRegions(); // @todo this should be a separate method for (Region region : awsRegions) { EC2RunnerContext context = new EC2RunnerContext(); context.regionName = region.getRegionName(); context.endPoint = region.getEndpoint(); getRegionContextCache().put(context.regionName, context); } for (String regionName : requestData.getAllRegions()) { EC2RunnerContext ctx = getRegionContextCache().get(regionName); Comparator comparator = new InstaceAvailabilityComparator(); SortedSet<Instance> reservedInstances = new TreeSet<Instance>(comparator); setRegionContext(ctx); switchCommunicationEndPoint(); RegionRequests regionRequests = requestData.getRegion(regionName); List<RunInstancesRequest> runRequests = regionRequests.getRequests(); for (RunInstancesRequest request : runRequests) { int maxRequested = request.getMaxCount(); if (logger.isInfoEnabled()) { logger.info( "Going to request max {} server instance(s) of type {} in " + "region {} ({}). Internal request ID is #{}.", new Object[] { request.getMaxCount(), request.getInstanceType(), regionName, requestID }); } RunInstancesResult result = null; try { result = getClient().runInstances(request); } catch (AmazonServiceException ase) { handleAmazonServiceException(ase); } catch (AmazonClientException ace) { handleAmazonClientException(ace); } for (Instance instance : result.getReservation().getInstances()) { if (logger.isInfoEnabled()) { logger.info("Amazon reserved instance {} with public IP {} and DNS name {}.", new Object[] { instance.getInstanceId(), instance.getPublicIpAddress(), instance.getPublicDnsName() }); } reservedInstances.add(instance); } int reserved = result.getReservation().getInstances().size(); boolean gotAllReverved = reserved == maxRequested; if (gotAllReverved && logger.isInfoEnabled()) logger.info("Amazon reserved all {} requested instances " + "of request #{}.", new Object[] { maxRequested }, requestID); else logger.info("Amazon reserved {} of {} requested instances " + " of request #{}.", new Object[] { reserved, maxRequested, requestID }); requestID++; // For the next request } instances.put(regionName, reservedInstances); } return instances; }
From source file:jp.primecloud.auto.aws.typica.EucaEc2Client.java
License:Open Source License
@Override public RunInstancesResult runInstances(RunInstancesRequest runInstancesRequest) { // InstanceType InstanceType type = InstanceType.getTypeFromString(runInstancesRequest.getInstanceType()); // AvailabilityZone String availabilityZone = null; if (runInstancesRequest.getPlacement() != null) { availabilityZone = runInstancesRequest.getPlacement().getAvailabilityZone(); }//from w ww . ja va 2 s .c o m // UserData String userData = runInstancesRequest.getUserData(); if (userData != null) { userData = new String(Base64.decodeBase64(userData.getBytes())); // ??3??????? int len = userData.getBytes().length; int mod = len % 3; if (mod != 0) { for (int i = 0; i < 3 - mod; i++) { userData += ';'; } } } try { ReservationDescription description = jec2.runInstances(runInstancesRequest.getImageId(), runInstancesRequest.getMinCount(), runInstancesRequest.getMaxCount(), runInstancesRequest.getSecurityGroups(), userData, runInstancesRequest.getKeyName(), true, type, availabilityZone, runInstancesRequest.getKernelId(), runInstancesRequest.getRamdiskId(), null); Reservation reservation = new ReservationConverter().convert(description); return new RunInstancesResult().withReservation(reservation); } catch (EC2Exception e) { throw new AmazonClientException(e); } }
From source file:web.component.impl.aws.AWSEC2Impl.java
@Override public RunInstancesResult runInstances(RunInstancesRequest request) { if (request.getImageId() == null || request.getImageId().isEmpty()) throw new IllegalArgumentException("Image ID not specified."); if (request.getInstanceType() == null || request.getInstanceType().isEmpty()) throw new IllegalArgumentException("Instance type not specified."); if (request.getMinCount() == null) request.setMinCount(1);//from w ww. j a v a 2s .c o m if (request.getMaxCount() == null) request.setMaxCount(1); return awsHttpClient.runInstances(request); }