Example usage for com.amazonaws.services.ec2.model DescribeSpotPriceHistoryResult DescribeSpotPriceHistoryResult

List of usage examples for com.amazonaws.services.ec2.model DescribeSpotPriceHistoryResult DescribeSpotPriceHistoryResult

Introduction

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

Prototype

DescribeSpotPriceHistoryResult

Source Link

Usage

From source file:org.finra.dm.dao.impl.MockEc2OperationsImpl.java

License:Apache License

@Override
public DescribeSpotPriceHistoryResult describeSpotPriceHistory(AmazonEC2Client ec2Client,
        DescribeSpotPriceHistoryRequest describeSpotPriceHistoryRequest) {
    List<SpotPrice> spotPriceHistories = new ArrayList<>();

    String requestedAvailabilityZone = describeSpotPriceHistoryRequest.getAvailabilityZone();

    // Get availability zones to search for
    Set<MockAvailabilityZone> requestedAvailabilityZones = new HashSet<>();

    // If requested zone is specified, get and add
    if (requestedAvailabilityZone != null) {
        requestedAvailabilityZones.add(mockAvailabilityZones.get(requestedAvailabilityZone));
    }/*from   www.j  av a 2  s .  co  m*/
    // If requested zone is not specified, add all
    else {
        requestedAvailabilityZones.addAll(mockAvailabilityZones.values());
    }

    // Get instance types to search for
    List<String> requestedInstanceTypes = describeSpotPriceHistoryRequest.getInstanceTypes();
    // If not specified, add all instance types
    if (requestedInstanceTypes.isEmpty()) {
        requestedInstanceTypes.addAll(mockInstanceTypes);
    }

    // search for price for all AZ and instance types requested
    for (MockAvailabilityZone mockAvailabilityZone : requestedAvailabilityZones) {
        for (String requestedInstanceType : requestedInstanceTypes) {
            MockSpotPrice mockSpotPrice = mockAvailabilityZone.getSpotPrices().get(requestedInstanceType);
            if (mockSpotPrice != null) {
                spotPriceHistories.add(mockSpotPrice.toAwsObject());
            }
        }
    }

    DescribeSpotPriceHistoryResult describeSpotPriceHistoryResult = new DescribeSpotPriceHistoryResult();
    describeSpotPriceHistoryResult.setSpotPriceHistory(spotPriceHistories);
    return describeSpotPriceHistoryResult;
}