本文整理汇总了Java中com.amazonaws.services.ec2.model.InstanceStateName.fromValue方法的典型用法代码示例。如果您正苦于以下问题:Java InstanceStateName.fromValue方法的具体用法?Java InstanceStateName.fromValue怎么用?Java InstanceStateName.fromValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.amazonaws.services.ec2.model.InstanceStateName
的用法示例。
在下文中一共展示了InstanceStateName.fromValue方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: convert
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
/**
* Converts the ec2 instance to a turbine instance.
* @param ec2 EC2 instance.
* @return Turbine instance.
*/
public com.netflix.turbine.discovery.Instance convert(final Instance ec2) {
final boolean state = InstanceStateName.fromValue(
ec2.getState().getName()
) == InstanceStateName.Running;
return new com.netflix.turbine.discovery.Instance(
ec2.getPrivateIpAddress(), this.cluster, state
);
}
示例2: waitUntilInstanceHasStarted
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
/**
* 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.
*/
private boolean waitUntilInstanceHasStarted(String ec2InstanceId) throws InterruptedException {
// TODO: Add a timeout to this loop.
while (true) {
try {
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;
}
}
}
} catch (AmazonServiceException e) {
if (!INVALID_INSTANCE_ID_NOT_FOUND.equals(e.getErrorCode())) {
AWSExceptions.propagate(e);
}
}
TimeUnit.SECONDS.sleep(5);
}
}
示例3: createInstance
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
private Instance createInstance(Cloud cloud, String region, com.amazonaws.services.ec2.model.Instance rawInstance) {
Instance instance = new Instance();
String realId = String.valueOf(rawInstance.getInstanceId());
String instanceId = idGenerator.getInstanceId(cloud, realId);
instance.setId(instanceId);
instance.setRealId(realId);
instance.setName(rawInstance.getInstanceId()); //TODO: check this!
instance.setFqdn(rawInstance.getPublicDnsName());
instance.setCloudId(cloud.getId());
instance.setCloudType(CloudType.AWS);
ZonedDateTime created = ZonedDateTime.ofInstant(
rawInstance.getLaunchTime().toInstant(),
ZoneId.systemDefault()
);
instance.setCreated(created);
InstanceStateName instanceStateName = InstanceStateName.fromValue(rawInstance.getState().getName());
instance.setState(createState(instanceStateName));
instance.setTimestamp(created);
instance.setIsLocked(false);
MetadataMap metadata = new MetadataMap();
metadata.put(MetadataKey.REGION, region);
//TODO: console output for AWS is a screenshot!
// metadata.put(MetadataKey.CONSOLE_URL, getConsoleUrl(instance.getId()));
instance.setMetadata(metadata);
return instance;
}
示例4: countCurrentEC2Slaves
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
/**
* 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>
* 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;
}
示例5: waitInstance
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
public Instance waitInstance(AwsProcessClient awsProcessClient, String instanceId) {
// インスタンスの処理待ち
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;
}
示例6: getBatchInstanceState
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
/**
* Returns a map from virtual instance IDs to instance state for the specified batch of virtual
* instance IDs.
*
* @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;
}
示例7: stateFrom
import com.amazonaws.services.ec2.model.InstanceStateName; //导入方法依赖的package包/类
private InstanceStateName stateFrom(final String instanceId) {
final Instance instance = findInstance(instanceId);
return InstanceStateName.fromValue(instance.getState().getName());
}