Example usage for com.amazonaws.services.ec2.model InstanceStateName fromValue

List of usage examples for com.amazonaws.services.ec2.model InstanceStateName fromValue

Introduction

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

Prototype

public static InstanceStateName fromValue(String value) 

Source Link

Document

Use this in place of valueOf.

Usage

From source file:com.carrotgarden.maven.aws.ecc.CarrotElasticCompute.java

License:BSD License

private InstanceStateName stateFrom(final String instanceId) {
    final Instance instance = findInstance(instanceId);
    return InstanceStateName.fromValue(instance.getState().getName());
}

From source file:com.carrotgarden.maven.aws.ecc.CarrotElasticCompute.java

License:BSD License

private InstanceStateName stateFrom(final Instance instance) {
    return InstanceStateName.fromValue(instance.getState().getName());
}

From source file:com.cloudera.director.aws.ec2.EC2Provider.java

License:Apache License

/**
 * Returns a map from virtual instance IDs to instance state for the specified batch of virtual
 * instance IDs.//from  w  w w  .  ja  va  2s. c o m
 *
 * @param virtualInstanceIds batch of virtual instance IDs
 * @return the map from instance IDs to instance state for the specified batch of virtual
 * instance IDs
 */
private Map<String, InstanceState> getBatchInstanceState(Collection<String> virtualInstanceIds) {
    Map<String, InstanceState> instanceStateByVirtualInstanceId = Maps
            .newHashMapWithExpectedSize(virtualInstanceIds.size());

    BiMap<String, String> virtualInstanceIdsByEC2InstanceId = getEC2InstanceIdsByVirtualInstanceId(
            virtualInstanceIds).inverse();

    int page = 0;
    LOG.info(">> Fetching page {}", page);

    if (virtualInstanceIdsByEC2InstanceId.isEmpty()) {
        // No EC2 instances are found, which means these id's are already terminated and gone.
        // In practice, this is possible when no instances were provisioned to begin with.
        // For example, when a deployment fails due to tagging error.
        return instanceStateByVirtualInstanceId;
    }

    DescribeInstanceStatusResult result = client.describeInstanceStatus(new DescribeInstanceStatusRequest()
            // Note that sending in an empty set will result in fetching _all_ instance Ids.
            // It requires you to send one or more EC2 Ids
            .withInstanceIds(virtualInstanceIdsByEC2InstanceId.keySet()).withIncludeAllInstances(true));
    LOG.info("<< Result: {}", result);

    while (!result.getInstanceStatuses().isEmpty()) {
        for (InstanceStatus status : result.getInstanceStatuses()) {

            InstanceStateName currentState = InstanceStateName.fromValue(status.getInstanceState().getName());
            String ec2InstanceId = status.getInstanceId();
            String virtualInstanceId = virtualInstanceIdsByEC2InstanceId.get(ec2InstanceId);
            InstanceState instanceState = EC2InstanceState.fromInstanceStateName(currentState);
            instanceStateByVirtualInstanceId.put(virtualInstanceId, instanceState);
        }

        String nextToken = result.getNextToken();
        if (nextToken != null) {
            page++;
            LOG.info(">> Fetching page {} using token {}", page, nextToken);
            result = client
                    .describeInstanceStatus(new DescribeInstanceStatusRequest().withNextToken(nextToken));
            LOG.info("<< Result: {}", result);
        } else {
            break;
        }
    }

    return instanceStateByVirtualInstanceId;
}

From source file:com.cloudera.director.aws.ec2.EC2Provider.java

License:Apache License

/**
 * Waits until the instance has entered a running state.
 *
 * @param ec2InstanceId the EC2 instance id
 * @return true if the instance has entered a running state, false if the instance is shutting down/terminated or
 *         the function has timed out waiting for the instance to enter one of these two states.
 *//*from w  w  w .  j a  v a2  s  .  com*/
private boolean waitUntilInstanceHasStarted(String ec2InstanceId) throws InterruptedException {
    // TODO: Add a timeout to this loop.
    while (true) {
        DescribeInstanceStatusResult result = client.describeInstanceStatus(new DescribeInstanceStatusRequest()
                .withIncludeAllInstances(true).withInstanceIds(ec2InstanceId));

        for (InstanceStatus status : result.getInstanceStatuses()) {
            InstanceStateName currentState = InstanceStateName.fromValue(status.getInstanceState().getName());

            if (ec2InstanceId.equals(status.getInstanceId())) {
                if (currentState.equals(InstanceStateName.Terminated)
                        || currentState.equals(InstanceStateName.ShuttingDown)) {
                    LOG.error("Instance {} has unexpectedly terminated", ec2InstanceId);
                    return false;
                } else if (!currentState.equals(InstanceStateName.Pending)) {
                    return true;
                }
            }
        }

        TimeUnit.SECONDS.sleep(5);
    }
}

From source file:com.lunabeat.dooper.HadoopCluster.java

License:Apache License

public RunInstancesResult launchMaster(String size) throws IOException {
    update();/*from w  w w.j av  a  2s.c o  m*/
    if ((_master != null) && ((InstanceStateName.Running == InstanceStateName
            .fromValue(_master.getInstance().getState().getName()))
            || (InstanceStateName.Pending == InstanceStateName
                    .fromValue(_master.getInstance().getState().getName())))) {
        Reservation masterReservation = _ec2
                .describeInstances(
                        new DescribeInstancesRequest().withInstanceIds(_master.getInstance().getInstanceId()))
                .getReservations().get(0);
        return new RunInstancesResult().withReservation(masterReservation);
    }
    //make the groups
    createSecurityGroups();
    String AMIImage = _config.get("AMI." + size + ".Image", _config.get(ClusterConfig.DEFAULT_AMI_KEY));
    LOGGER.info("AMIImage = [" + AMIImage + "]");
    RunInstancesRequest rir = new RunInstancesRequest().withImageId(AMIImage).withMinCount(1).withMaxCount(1)
            .withInstanceType(size).withSecurityGroups(_masterGroupName)
            .withUserData(Base64.encodeBase64String(getUserData().getBytes()))
            .withKeyName(_config.get(ClusterConfig.KEYPAIR_NAME_KEY));
    return _ec2.runInstances(rir);
}

From source file:com.lunabeat.dooper.HadoopCluster.java

License:Apache License

public RunInstancesResult launchSlaves(int howMany, String size) throws IOException, MasterTimeoutException {
    update();//w  w  w.  java 2 s.  c om
    if (_master == null) {
        return null;
    }
    InstanceStateName masterState = InstanceStateName.fromValue(_master.getInstance().getState().getName());
    if ((InstanceStateName.Terminated == masterState) || (InstanceStateName.ShuttingDown == masterState)) {
        return null;
    }

    //wait for master to get internal ip field to pass in userinfo
    boolean success = false;
    if (InstanceStateName.Pending == InstanceStateName.fromValue(_master.getInstance().getState().getName())) {
        int attempts = 0;
        while ((attempts < WAIT_FOR_MASTER_MAX_TIMES) && !success) {
            update();
            String pDns = _master.getInstance().getPrivateDnsName();
            if (pDns == null || pDns.length() < 6) {
                try {
                    Thread.sleep(WAIT_FOR_MASTER_INTERVAL_SECONDS * 1000);
                } catch (InterruptedException ie) {
                    return null;
                }
                attempts++;
            } else {
                success = true;
            }
        }
        if (!success) {
            throw new MasterTimeoutException(_groupName, howMany, size, _master.getInstance().getInstanceId());
        }
    }

    String AMIImage = _config.get("AMI." + size + ".Image", _config.get(ClusterConfig.DEFAULT_AMI_KEY));
    RunInstancesRequest rir = new RunInstancesRequest().withImageId(AMIImage).withMinCount(howMany)
            .withMaxCount(howMany).withInstanceType(size).withSecurityGroups(_groupName)
            .withUserData(Base64.encodeBase64String(getUserData().getBytes()))
            .withKeyName(_config.get(ClusterConfig.KEYPAIR_NAME_KEY));
    return _ec2.runInstances(rir);
}

From source file:com.lunabeat.dooper.HadoopCluster.java

License:Apache License

/**
 *
 * @param howMany/*from  w ww  .  j  av  a2  s .c  om*/
 * @return result of aws call to terminate
 */
public TerminateInstancesResult terminateSlaves(int howMany) {
    update();
    int terminated = 0;
    ArrayList<String> iids = new ArrayList<String>();
    for (ClusterInstance slave : _slaves) {
        InstanceStateName state = InstanceStateName.fromValue(slave.getInstance().getState().getName());
        if (terminated < howMany
                && (state == InstanceStateName.Running || state == InstanceStateName.Pending)) {
            iids.add(slave.getInstance().getInstanceId());
            terminated++;
        }

    }
    if (iids.size() < 1) {
        return null;
    }
    TerminateInstancesRequest tir = new TerminateInstancesRequest().withInstanceIds(iids);
    return _ec2.terminateInstances(tir);
}

From source file:hudson.plugins.ec2.EC2Cloud.java

License:Open Source License

/**
 * Counts the number of instances in EC2 currently running that are using the specifed image.
 *
 * @param ami If AMI is left null, then all instances are counted.
 * <p>/* w ww . j  a  v  a 2 s.  c  om*/
 * This includes those instances that may be started outside Hudson.
 */
public int countCurrentEC2Slaves(String ami) throws AmazonClientException {
    int n = 0;
    for (Reservation r : connect().describeInstances().getReservations()) {
        for (Instance i : r.getInstances()) {
            if (isEc2ProvisionedSlave(i, ami)) {
                InstanceStateName stateName = InstanceStateName.fromValue(i.getState().getName());
                if (stateName == InstanceStateName.Pending || stateName == InstanceStateName.Running) {
                    n++;
                }
            }
        }
    }
    return n;
}

From source file:jenkins.plugins.ec2slave.EC2ImageLaunchWrapper.java

License:Open Source License

protected InstanceStateName getInstanceState(String instanceId) {
    DescribeInstancesRequest descReq = new DescribeInstancesRequest().withInstanceIds(instanceId);
    Instance instance = ec2.describeInstances(descReq).getReservations().get(0).getInstances().get(0);
    return InstanceStateName.fromValue(instance.getState().getName());
}

From source file:jp.primecloud.auto.process.aws.AwsCommonProcess.java

License:Open Source License

public Instance waitInstance(AwsProcessClient awsProcessClient, String instanceId) {
    // ???/*  www  . jav a2  s.co  m*/
    Instance instance;
    while (true) {
        try {
            Thread.sleep(1000L * awsProcessClient.getDescribeInterval());
        } catch (InterruptedException ignore) {
        }

        instance = describeInstance(awsProcessClient, instanceId);
        InstanceStateName state;
        try {
            state = InstanceStateName.fromValue(instance.getState().getName());
        } catch (IllegalArgumentException e) {
            // ???
            AutoException exception = new AutoException("EPROCESS-000104", instanceId,
                    instance.getState().getName());
            exception.addDetailInfo("result=" + ReflectionToStringBuilder.toString(instance));
            throw exception;
        }

        // ?????
        if (state == InstanceStateName.Running || state == InstanceStateName.Terminated
                || state == InstanceStateName.Stopped) {
            break;
        }
    }

    return instance;
}