List of usage examples for com.amazonaws.services.ec2.model RunInstancesRequest getImageId
public String getImageId()
The ID of the AMI.
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"); }/*from w w w. j av a 2 s .c o m*/ 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: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(); }//ww w . j ava 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:org.gridgain.grid.spi.cloud.ec2lite.GridEc2LiteCloudSpi.java
License:GNU General Public License
/** * Runs Amazon EC2 instances by command. * <p>//from w ww . j a va 2s . c o m * Command may be very complex and contain plenty of parameters. * Refer to class documentation for details. * * @param cmd Cloud command. * @throws GridSpiException Thrown if any exception occurs. */ private void runInstances(GridCloudCommand cmd) throws GridSpiException { assert cmd != null; RunInstancesRequest req = createRunInstancesRequest(cmd); Map<String, String> params = cmd.parameters(); if (params != null && Boolean.parseBoolean(params.get(CMD_DRY_RUN_KEY))) { if (log.isDebugEnabled()) log.debug("Dry run - instances run omitted."); return; } RunInstancesResult res; try { res = ec2.runInstances(req); } catch (AmazonClientException e) { throw new GridSpiException("Failed to perform run instances request.", e); } if (log.isDebugEnabled()) log.debug("Sent run instances request [imgId=" + req.getImageId() + ", minCount=" + req.getMinCount() + ", maxCount=" + req.getMaxCount() + ']'); Collection<String> instIds = new LinkedList<String>(); boolean throwEx = false; for (Instance item : res.getReservation().getInstances()) { String instId = item.getInstanceId(); String imgId = item.getImageId(); instIds.add(instId); if (log.isDebugEnabled()) log.debug("Added (ran) new instance [instId=" + instId + ", imgId=" + imgId + ']'); if (!req.getImageId().equals(imgId)) throwEx = true; } if (!instIds.isEmpty()) { if (req.isMonitoring()) { try { ec2.monitorInstances(new MonitorInstancesRequest().withInstanceIds(instIds)); } catch (AmazonClientException e) { U.error(log, "Failed to start instance monitoring.", e); } if (log.isDebugEnabled()) log.debug("Started instances monitoring: " + instIds); } } if (throwEx || instIds.size() != cmd.number()) throw new GridSpiException("Cloud command has not been successfully executed: " + cmd); }
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 ww w.ja v a 2s .c o m*/ if (request.getMaxCount() == null) request.setMaxCount(1); return awsHttpClient.runInstances(request); }