Example usage for com.amazonaws.services.ec2.model RunInstancesRequest getImageId

List of usage examples for com.amazonaws.services.ec2.model RunInstancesRequest getImageId

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model RunInstancesRequest getImageId.

Prototype


public String getImageId() 

Source Link

Document

The ID of the AMI.

Usage

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);
}