List of usage examples for com.amazonaws.services.ec2.model InstanceStateName fromValue
public static InstanceStateName fromValue(String value)
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; }