Example usage for com.amazonaws.services.ec2 AmazonEC2Client describeRegions

List of usage examples for com.amazonaws.services.ec2 AmazonEC2Client describeRegions

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2 AmazonEC2Client describeRegions.

Prototype

@Override
public DescribeRegionsResult describeRegions(DescribeRegionsRequest request) 

Source Link

Document

Describes the Regions that are enabled for your account, or all Regions.

Usage

From source file:org.elasticdroid.model.EC2InstancesModel.java

License:Open Source License

/**
 * /*from ww w  .j  a v a2s  .c  o  m*/
 * @param filters
 * @return This method can return:
 * <ul>
 * <li>ArrayList<SerializableInstance>: If all goes well</li>
 * <li>AmazonClientException: If there's connectivity problems on the client.</li>
 * <li>AmazonServiceException: If there's AWS service problems.</li>
 * <li>IllegalArgumentException: If the region can't be found.</li>
 * </ul>
 */
public Object getInstances(Filter... filters) {
    ArrayList<SerializableInstance> serInstances = new ArrayList<SerializableInstance>();
    //result passed to Activity
    List<Region> regions;
    List<Reservation> reservations; //restult from EC2

    //create credentials using the BasicAWSCredentials class
    BasicAWSCredentials credentials = new BasicAWSCredentials(connectionData.get("accessKey"),
            connectionData.get("secretAccessKey"));
    //create Amazon EC2 Client object, and set tye end point to the region. params[3]
    //contains endpoint
    AmazonEC2Client amazonEC2Client = new AmazonEC2Client(credentials);

    //1. create a filter for this region name
    Filter regionFilter = new Filter("region-name");
    regionFilter.setValues(new ArrayList<String>(Arrays.asList(new String[] { selectedRegion })));

    //2. query using this filter
    try {
        regions = amazonEC2Client.describeRegions(new DescribeRegionsRequest().withFilters(regionFilter))
                .getRegions();
    } catch (AmazonServiceException exc) {
        return exc;
    } catch (AmazonClientException exc) {
        return exc;
    }

    //3. Make sure the region was found.
    if (regions.size() != 1) {
        return new IllegalArgumentException("Invalid region passed to model.");
    }

    Log.v(TAG + ".doInBackground()",
            "endpoint for region : " + selectedRegion + "=" + regions.get(0).getEndpoint());
    //set the endpoint
    amazonEC2Client.setEndpoint(regions.get(0).getEndpoint());

    //now get the instances

    Log.v(TAG, "Size of filters:" + filters.length);
    DescribeInstancesRequest request = new DescribeInstancesRequest();
    request.setFilters(Arrays.asList(filters));

    //get the list of instances using this filter
    try {
        reservations = amazonEC2Client.describeInstances(request).getReservations();
    } catch (AmazonServiceException amazonServiceException) {
        return amazonServiceException;
    } catch (AmazonClientException amazonClientException) {
        return amazonClientException;
    }

    //add each instance found into the list of instances to return to the view
    for (Reservation reservation : reservations) {
        List<String> securityGroups = reservation.getGroupNames();
        //note to self: List is an interface ArrayList implements.
        //for each reservation, get the list of instances associated
        for (Instance instance : reservation.getInstances()) {
            serInstances.add(new SerializableInstance(instance, securityGroups));
        }
    }

    return serInstances;
}