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

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

Introduction

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

Prototype


public String getInstanceType() 

Source Link

Document

The instance type.

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