当前位置: 首页>>代码示例>>Java>>正文


Java DescribeSpotInstanceRequestsResult类代码示例

本文整理汇总了Java中com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult的典型用法代码示例。如果您正苦于以下问题:Java DescribeSpotInstanceRequestsResult类的具体用法?Java DescribeSpotInstanceRequestsResult怎么用?Java DescribeSpotInstanceRequestsResult使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DescribeSpotInstanceRequestsResult类属于com.amazonaws.services.ec2.model包,在下文中一共展示了DescribeSpotInstanceRequestsResult类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: spotInstanceRequestExists

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
/**
 * Checks whether the specified Spot instance request is visible, <em>i.e.</em> can
 * be located by a describe Spot instance request call.
 *
 * @param spotInstanceRequestId the Spot instance request ID
 * @return whether the Spot instance request is visible, <em>i.e.</em> can
 * be located by a describe Spot instance request call
 */
@VisibleForTesting
protected boolean spotInstanceRequestExists(String spotInstanceRequestId) {
  DescribeSpotInstanceRequestsResult result;
  try {
    result = client.describeSpotInstanceRequests(
        new DescribeSpotInstanceRequestsRequest()
            .withSpotInstanceRequestIds(spotInstanceRequestId)
    );
  } catch (AmazonServiceException e) {
    if ("InvalidSpotInstanceRequestID.NotFound".equals(e.getErrorCode())) {
      return false;
    }
    throw AWSExceptions.propagate(e);
  }

  for (SpotInstanceRequest spotInstanceRequest : result.getSpotInstanceRequests()) {
    if (spotInstanceRequestId.equals(spotInstanceRequest.getSpotInstanceRequestId())) {
      return true;
    }
  }
  return false;
}
 
开发者ID:cloudera,项目名称:director-aws-plugin,代码行数:31,代码来源:EC2Provider.java

示例2: getSpotStatus

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
public SpotState getSpotStatus() {
	if (spotRequestId == null)
		return SpotState.SPOT_REQUEST_NOT_FOUND;

	com.amazonaws.services.ec2.AmazonEC2 client = AmazonEC2.connect();

	DescribeSpotInstanceRequestsRequest spotInstanceReq = new DescribeSpotInstanceRequestsRequest();
	List<String> spotInstanceRequestIds = new ArrayList<String>();
	spotInstanceRequestIds.add(spotRequestId);
	spotInstanceReq.setSpotInstanceRequestIds(spotInstanceRequestIds);
	DescribeSpotInstanceRequestsResult res = client
			.describeSpotInstanceRequests(spotInstanceReq);

	List<SpotInstanceRequest> reqs = res.getSpotInstanceRequests();
	if (reqs.size() > 0) {
		SpotInstanceRequest req = reqs.get(0);
		id = req.getInstanceId();
		return SpotState.valueFromRequest(req);
	} else {
		return SpotState.SPOT_REQUEST_NOT_FOUND;
	}
}
 
开发者ID:rickdesantis,项目名称:cloud-runner,代码行数:23,代码来源:Instance.java

示例3: checkForSpotRequest

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
private void checkForSpotRequest(Activity activity, AmazonEC2Client amazonEC2Client) {
    if (WAIT_FOR_SPOT_INSTANCES_STATUS_CODE.equals(activity.getStatusCode())) {
        Pattern pattern = Pattern.compile(SPOT_ID_PATTERN);
        Matcher matcher = pattern.matcher(activity.getStatusMessage());
        if (matcher.find()) {
            String spotId = matcher.group(0);
            DescribeSpotInstanceRequestsResult spotResult = amazonEC2Client.describeSpotInstanceRequests(
                    new DescribeSpotInstanceRequestsRequest().withSpotInstanceRequestIds(spotId));
            Optional<SpotInstanceRequest> request = spotResult.getSpotInstanceRequests().stream().findFirst();
            if (request.isPresent()) {
                if (LOW_SPOT_PRICE_STATUS_CODE.equals(request.get().getStatus().getCode())) {
                    throw new CloudConnectorException(request.get().getStatus().getMessage());
                }
            }

        }
    }
}
 
开发者ID:hortonworks,项目名称:cloudbreak,代码行数:19,代码来源:ASGroupStatusCheckerTask.java

示例4: execute

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public void execute(AmazonEC2 client, Pool pool, DelegateExecution execution) {
    LOG.info(">> retrieving instance Ids from spot request Ids");

    @SuppressWarnings("unchecked")
    List<String> requestIds =
        (List<String>) execution.getVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS);
    DescribeSpotInstanceRequestsResult result = client.describeSpotInstanceRequests(
        new DescribeSpotInstanceRequestsRequest().withSpotInstanceRequestIds(requestIds));

    List<String> instanceIds = new ArrayList<String>();
    for (SpotInstanceRequest spotRequest : result.getSpotInstanceRequests()) {
        if (spotRequest.getInstanceId() != null) {
            instanceIds.add(spotRequest.getInstanceId());
        }
    }

    execution.setVariable(ProcessVariables.INSTANCE_IDS, instanceIds);
}
 
开发者ID:apache,项目名称:incubator-provisionr,代码行数:20,代码来源:GetInstanceIdsFromSpotRequests.java

示例5: execute

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public void execute(AmazonEC2 client, Pool pool, DelegateExecution execution) {

    LOG.info(">> Checking if all spot requests match predicate {}", predicate);

    @SuppressWarnings("unchecked")
    List<String> requestIds = (List<String>) execution.getVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS);
    checkNotNull(requestIds, "process variable '{}' not found", ProcessVariables.SPOT_INSTANCE_REQUEST_IDS);

    DescribeSpotInstanceRequestsRequest describeRequest = new DescribeSpotInstanceRequestsRequest();
    describeRequest.setSpotInstanceRequestIds(requestIds);

    // Retrieve all of the requests we want to monitor.
    DescribeSpotInstanceRequestsResult describeResult = client.describeSpotInstanceRequests(describeRequest);
    List<SpotInstanceRequest> requests = describeResult.getSpotInstanceRequests();

    if (Iterables.all(requests, predicate)) {
        LOG.info(">> All {} requests match predicate {} ", requests, predicate);
        execution.setVariable(resultVariable, true);
    } else {
        LOG.info("<< Not all requests {} match predicate {}", requests, predicate);
        execution.setVariable(resultVariable, false);
    }
}
 
开发者ID:apache,项目名称:incubator-provisionr,代码行数:25,代码来源:AllSpotRequestsMatchPredicate.java

示例6: shutdownInstances

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
public void shutdownInstances() {
	AmazonEC2 ec2 = new AmazonEC2Client(getAwsCredentials());
	ec2.setEndpoint(getOrCry("ec2endpoint"));

	try {
		// cancel spot request, so no new instances will be launched
		DescribeSpotInstanceRequestsRequest describeRequest = new DescribeSpotInstanceRequestsRequest();
		DescribeSpotInstanceRequestsResult describeResult = ec2
				.describeSpotInstanceRequests(describeRequest);
		List<SpotInstanceRequest> describeResponses = describeResult
				.getSpotInstanceRequests();
		List<String> spotRequestIds = new ArrayList<String>();
		List<String> instanceIds = new ArrayList<String>();

		for (SpotInstanceRequest describeResponse : describeResponses) {
			spotRequestIds.add(describeResponse.getSpotInstanceRequestId());
			if ("active".equals(describeResponse.getState())) {
				instanceIds.add(describeResponse.getInstanceId());
			}
		}
		ec2.cancelSpotInstanceRequests(new CancelSpotInstanceRequestsRequest()
				.withSpotInstanceRequestIds(spotRequestIds));
		log.info("Cancelled spot request");

		if (instanceIds.size() > 0) {
			ec2.terminateInstances(new TerminateInstancesRequest(
					instanceIds));
			log.info("Shut down " + instanceIds.size() + " instances");
		}

	} catch (Exception e) {
		log.warn("Failed to shutdown instances - ", e);
	}
}
 
开发者ID:JulianEberius,项目名称:dwtc-extractor,代码行数:35,代码来源:Master.java

示例7: getStatusOfSpotInstanceOffers

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
public List<SpotInstanceOfferResult> getStatusOfSpotInstanceOffers(String... spotInstanceOfferIds)
{
    DescribeSpotInstanceRequestsResult describeSpotInstanceResult = ec2_.describeSpotInstanceRequests(new DescribeSpotInstanceRequestsRequest()
            .withSpotInstanceRequestIds(spotInstanceOfferIds));

    return toSpotInstanceResults(null, describeSpotInstanceResult.getSpotInstanceRequests());
}
 
开发者ID:alessandroleite,项目名称:dohko,代码行数:8,代码来源:EC2.java

示例8: getActiveSpotInstanceId

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
public List<String> getActiveSpotInstanceId(
		List<String> spotInstanceRequestIds) {
	DescribeSpotInstanceRequestsRequest describeRequest = new DescribeSpotInstanceRequestsRequest();
	describeRequest.setSpotInstanceRequestIds(spotInstanceRequestIds);

	System.out
			.println("Checking to determine if Spot Bids have reached the active state...");

	List<String> instanceIds = new ArrayList<String>();

	try {
		DescribeSpotInstanceRequestsResult describeResult = ec2
				.describeSpotInstanceRequests(describeRequest);
		List<SpotInstanceRequest> describeResponses = describeResult
				.getSpotInstanceRequests();

		for (SpotInstanceRequest describeResponse : describeResponses) {
			System.out.println(" "
					+ describeResponse.getSpotInstanceRequestId()
					+ " is in the " + describeResponse.getState()
					+ " state.");

			if (describeResponse.getState().equals("open"))
				return null;

			if (describeResponse.getState().equals("active"))
				instanceIds.add(describeResponse.getInstanceId());
		}
	} catch (AmazonServiceException e) {
		System.out.println("Error when calling describeSpotInstances");
		System.out.println("Caught Exception: " + e.getMessage());
		System.out.println("Reponse Status Code: " + e.getStatusCode());
		System.out.println("Error Code: " + e.getErrorCode());
		System.out.println("Request ID: " + e.getRequestId());

		return null;
	}
	return instanceIds;
}
 
开发者ID:cs553-cloud-computing,项目名称:amazon-cloudengine,代码行数:40,代码来源:EC2.java

示例9: call

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public SpotInstanceRequest call() throws AmazonClientException {
    DescribeSpotInstanceRequestsRequest request = new DescribeSpotInstanceRequestsRequest();
    request.withSpotInstanceRequestIds(this.spotInstanceRequestId);
    DescribeSpotInstanceRequestsResult result = getClient().getApi().describeSpotInstanceRequests(request);
    return Iterables.getOnlyElement(result.getSpotInstanceRequests());
}
 
开发者ID:elastisys,项目名称:scale.cloudpool,代码行数:8,代码来源:GetSpotInstanceRequest.java

示例10: call

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public List<SpotInstanceRequest> call() throws AmazonClientException {
    DescribeSpotInstanceRequestsRequest request = new DescribeSpotInstanceRequestsRequest();
    if (this.spotRequestIds != null) {
        request.withSpotInstanceRequestIds(this.spotRequestIds);
    }
    if (this.filters != null) {
        request.withFilters(this.filters);
    }
    DescribeSpotInstanceRequestsResult result = getClient().getApi().describeSpotInstanceRequests(request);
    return result.getSpotInstanceRequests();
}
 
开发者ID:elastisys,项目名称:scale.cloudpool,代码行数:13,代码来源:GetSpotInstanceRequests.java

示例11: describeSpotInstanceRequests

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public List<AbstractResource<?>> describeSpotInstanceRequests(Account account, Region region, DateTime dt, Ec2Filter... filters) {
    AmazonEC2 ec2 = findClient(account, region);

    DescribeSpotInstanceRequestsRequest req = new DescribeSpotInstanceRequestsRequest();
    for (Ec2Filter filter : filters) {
        Filter f = new Filter().withName(filter.getName()).withValues(filter.getValues());
        req.withFilters(f);
    }

    log.debug("start describing spot instance requests for account:{} in region:{} via api", account.getId() + "=>" + account.getName(), region);
    DescribeSpotInstanceRequestsResult res = ec2.describeSpotInstanceRequests(req);

    return converter.toEc2SpotInstanceRequest(res.getSpotInstanceRequests(), account.getId(), region, dt);
}
 
开发者ID:veyronfei,项目名称:clouck,代码行数:16,代码来源:Ec2WrapperImpl.java

示例12: execute

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public void execute(AmazonEC2 client, Pool pool, DelegateExecution execution) throws IOException {
    /* before sending a new request, we check to see if we already registered
       a launch group with the process ID, if yes, we don't re-send the request */
    final String businessKey = execution.getProcessBusinessKey();

    /* we timeout if requests have already been sent - the activity is being retried. */
    Optional<Object> alreadySent = Optional.fromNullable(
        execution.getVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS));

    if (alreadySent.isPresent()) {
        DescribeSpotInstanceRequestsRequest describeRequest = new DescribeSpotInstanceRequestsRequest()
            .withFilters(new Filter()
                .withName("launch-group").withValues(businessKey)
                .withName("state").withValues("open", "active"));

        Stopwatch stopwatch = new Stopwatch().start();
        while (stopwatch.elapsedTime(TimeUnit.MINUTES) < 2) {
            DescribeSpotInstanceRequestsResult result = client.describeSpotInstanceRequests(describeRequest);
            List<SpotInstanceRequest> pending = result.getSpotInstanceRequests();
            if (pending.size() > 0) {
                LOG.info("Not resending spot instance requests {} for businessKey: {}.", pending, businessKey);
                execution.setVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS,
                    collectSpotInstanceRequestIds(pending));
                return;
            }
            LOG.info("The describe call has not returned anything yet, waiting 20s and retrying.");
            Uninterruptibles.sleepUninterruptibly(20, TimeUnit.SECONDS);
        }
    }

    final RequestSpotInstancesRequest request = createSpotInstancesRequest(pool, execution);
    execution.setVariable(ProcessVariables.SPOT_REQUESTS_SENT, true);
    RequestSpotInstancesResult requestResult = client.requestSpotInstances(request);
    List<String> spotInstanceRequestIds = collectSpotInstanceRequestIds(requestResult.getSpotInstanceRequests());

    execution.setVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS, spotInstanceRequestIds);
}
 
开发者ID:apache,项目名称:incubator-provisionr,代码行数:39,代码来源:RunSpotInstances.java

示例13: testRunSpotInstances

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Test
public void testRunSpotInstances() throws Exception {
    ProcessVariablesCollector collector = new ProcessVariablesCollector();
    collector.install(execution);

    activity.execute(execution);

    @SuppressWarnings("unchecked")
    ArgumentCaptor<List<String>> argument = (ArgumentCaptor<List<String>>) 
            (Object) ArgumentCaptor.forClass(List.class);
    verify(execution).setVariable(eq(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS), argument.capture());
    when(execution.getVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS)).thenReturn(argument.getValue());
    /* The timeout is needed because the describe calls don't return immediately. */
    // TODO: see if we can eliminate this after adding the process variables conditions
    Uninterruptibles.sleepUninterruptibly(1, TimeUnit.MINUTES);

    // shouldn't do anything
    activity.execute(execution);

    Uninterruptibles.sleepUninterruptibly(1, TimeUnit.MINUTES);

    DescribeSpotInstanceRequestsResult result = client.describeSpotInstanceRequests(
            new DescribeSpotInstanceRequestsRequest().withFilters(new Filter()
                .withName("launch-group").withValues(BUSINESS_KEY)));

    assertThat(result.getSpotInstanceRequests()).hasSize(1);
    /* we also need to sleep before the teardown */
    Uninterruptibles.sleepUninterruptibly(1, TimeUnit.MINUTES);
}
 
开发者ID:apache,项目名称:incubator-provisionr,代码行数:30,代码来源:RunSpotInstancesLiveTest.java

示例14: describeSpotInstanceRequests

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
@Override
public DescribeSpotInstanceRequestsResult describeSpotInstanceRequests(DescribeSpotInstanceRequestsRequest describeSpotInstanceRequestsRequest) throws AmazonServiceException, AmazonClientException {
    throw new UnsupportedOperationException("Not supported in mock");
}
 
开发者ID:justor,项目名称:elasticsearch_my,代码行数:5,代码来源:AmazonEC2Mock.java

示例15: checkForOrphanedSpotInstanceRequests

import com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult; //导入依赖的package包/类
/**
 * Identifies reusable Spot instance requests orphaned by a previous call.
 *
 * @return the reusable Spot instance requests orphaned by a previous call
 */
@VisibleForTesting
protected Set<String> checkForOrphanedSpotInstanceRequests() {

  Set<String> orphanedSpotInstanceRequests = Sets.newHashSet();

  LOG.info(">> Checking for orphaned Spot instance requests");
  String idTagName = ec2TagHelper.getClouderaDirectorIdTagName();
  DescribeSpotInstanceRequestsRequest describeSpotInstanceRequestsRequest =
      new DescribeSpotInstanceRequestsRequest().withFilters(
          new Filter()
              .withName("tag:" + idTagName)
              .withValues(virtualInstanceIds));
  DescribeSpotInstanceRequestsResult describeSpotInstanceRequestsResult =
      client.describeSpotInstanceRequests(describeSpotInstanceRequestsRequest);
  for (SpotInstanceRequest existingSpotInstanceRequest :
      describeSpotInstanceRequestsResult.getSpotInstanceRequests()) {
    String spotInstanceRequestId = existingSpotInstanceRequest.getSpotInstanceRequestId();
    String virtualInstanceId = null;
    for (Tag tag : existingSpotInstanceRequest.getTags()) {
      if (idTagName.equals(tag.getKey())) {
        virtualInstanceId = tag.getValue();
      }
    }
    if (virtualInstanceId == null) {
      LOG.warn(">> Orphaned Spot instance request {} has no virtual instance id",
          spotInstanceRequestId);
    } else {
      SpotAllocationRecord spotAllocationRecord = getSpotAllocationRecord(virtualInstanceId);
      SpotInstanceState spotInstanceState =
          SpotInstanceState.fromValue(existingSpotInstanceRequest.getState());
      switch (spotInstanceState) {
        case Active:
          spotAllocationRecord.spotInstanceRequestId = spotInstanceRequestId;
          String ec2InstanceId = existingSpotInstanceRequest.getInstanceId();
          LOG.info(">> Reusing fulfilled orphaned Spot instance request {} / {} / {}",
              spotInstanceRequestId, virtualInstanceId, ec2InstanceId);
          if (spotAllocationRecord.ec2InstanceId == null) {
            spotAllocationRecord.ec2InstanceId = ec2InstanceId;
          }
          break;
        case Cancelled:
        case Closed:
        case Failed:
          break;
        default:
          if (existingSpotInstanceRequest.getValidUntil().getTime() > System.currentTimeMillis()) {
            LOG.info(">> Reusing pending orphaned Spot instance request {} / {}",
                spotInstanceRequestId, virtualInstanceId);
            spotAllocationRecord.spotInstanceRequestId = spotInstanceRequestId;
          }
          break;
      }
    }
  }

  return orphanedSpotInstanceRequests;
}
 
开发者ID:cloudera,项目名称:director-aws-plugin,代码行数:63,代码来源:EC2Provider.java


注:本文中的com.amazonaws.services.ec2.model.DescribeSpotInstanceRequestsResult类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。