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

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

Introduction

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

Prototype

DescribeInstancesResult

Source Link

Usage

From source file:com.netflix.edda.EddaEc2Client.java

License:Apache License

public DescribeInstancesResult describeInstances(DescribeInstancesRequest request) {
    validateEmpty("Filter", request.getFilters());

    TypeReference<List<Reservation>> ref = new TypeReference<List<Reservation>>() {
    };/*from  w ww.j  av  a  2 s. c  o  m*/
    String url = config.url() + "/api/v2/aws/instances;_expand";
    try {
        List<Reservation> reservations = parse(ref, doGet(url));

        List<String> ids = request.getInstanceIds();
        if (shouldFilter(ids)) {
            List<Reservation> rs = new ArrayList<Reservation>();
            for (Reservation r : reservations) {
                List<Instance> is = new ArrayList<Instance>();
                for (Instance i : r.getInstances()) {
                    if (matches(ids, i.getInstanceId()))
                        is.add(i);
                }
                if (is.size() > 0)
                    rs.add(r.withInstances(is));
            }
            reservations = rs;
        }
        return new DescribeInstancesResult().withReservations(reservations);
    } catch (IOException e) {
        throw new AmazonClientException("Faled to parse " + url, e);
    }
}

From source file:com.netflix.spinnaker.clouddriver.aws.security.AmazonClientInvocationHandler.java

License:Apache License

public DescribeInstancesResult describeInstances(DescribeInstancesRequest request) {
    return new DescribeInstancesResult().withReservations(new Reservation().withReservationId("1234")
            .withInstances(describe(request, "instanceIds", "../view/instances", Instance.class)));
}

From source file:jp.primecloud.auto.aws.typica.EucaEc2Client.java

License:Open Source License

@Override
public DescribeInstancesResult describeInstances(DescribeInstancesRequest describeInstancesRequest) {
    try {// ww  w .j a v a2 s.  c  om
        List<ReservationDescription> descriptions = jec2
                .describeInstances(describeInstancesRequest.getInstanceIds());
        List<Reservation> reservations = new ReservationConverter().convert(descriptions);
        return new DescribeInstancesResult().withReservations(reservations);
    } catch (EC2Exception e) {
        throw new AmazonClientException(e);
    }
}

From source file:org.elasticsearch.discovery.ec2.AmazonEC2Mock.java

License:Apache License

@Override
public DescribeInstancesResult describeInstances(DescribeInstancesRequest describeInstancesRequest)
        throws AmazonServiceException, AmazonClientException {
    Collection<Instance> filteredInstances = new ArrayList<>();

    logger.debug("--> mocking describeInstances");

    for (Instance instance : instances) {
        boolean tagFiltered = false;
        boolean instanceFound = false;

        Map<String, List<String>> expectedTags = new HashMap<>();
        Map<String, List<String>> instanceTags = new HashMap<>();

        for (Tag tag : instance.getTags()) {
            List<String> tags = instanceTags.get(tag.getKey());
            if (tags == null) {
                tags = new ArrayList<>();
                instanceTags.put(tag.getKey(), tags);
            }/* w  w w  .j  a v a 2  s .co m*/
            tags.add(tag.getValue());
        }

        for (Filter filter : describeInstancesRequest.getFilters()) {
            // If we have the same tag name and one of the values, we add the instance
            if (filter.getName().startsWith("tag:")) {
                tagFiltered = true;
                String tagName = filter.getName().substring(4);
                // if we have more than one value for the same key, then the key is appended with .x
                Pattern p = Pattern.compile("\\.\\d+", Pattern.DOTALL);
                Matcher m = p.matcher(tagName);
                if (m.find()) {
                    int i = tagName.lastIndexOf(".");
                    tagName = tagName.substring(0, i);
                }

                List<String> tags = expectedTags.get(tagName);
                if (tags == null) {
                    tags = new ArrayList<>();
                    expectedTags.put(tagName, tags);
                }
                tags.addAll(filter.getValues());
            }
        }

        if (tagFiltered) {
            logger.debug("--> expected tags: [{}]", expectedTags);
            logger.debug("--> instance tags: [{}]", instanceTags);

            instanceFound = true;
            for (Map.Entry<String, List<String>> expectedTagsEntry : expectedTags.entrySet()) {
                List<String> instanceTagValues = instanceTags.get(expectedTagsEntry.getKey());
                if (instanceTagValues == null) {
                    instanceFound = false;
                    break;
                }

                for (String expectedValue : expectedTagsEntry.getValue()) {
                    boolean valueFound = false;
                    for (String instanceTagValue : instanceTagValues) {
                        if (instanceTagValue.equals(expectedValue)) {
                            valueFound = true;
                        }
                    }
                    if (valueFound == false) {
                        instanceFound = false;
                    }
                }
            }
        }

        if (tagFiltered == false || instanceFound) {
            logger.debug("--> instance added");
            filteredInstances.add(instance);
        } else {
            logger.debug("--> instance filtered");
        }
    }

    return new DescribeInstancesResult().withReservations(new Reservation().withInstances(filteredInstances));
}

From source file:org.jenkinsci.plugins.ec2harness.MockAmazonEC2.java

License:Open Source License

@Override
public DescribeInstancesResult describeInstances(DescribeInstancesRequest describeInstancesRequest)
        throws AmazonServiceException, AmazonClientException {
    printcall();//from w  ww.  ja v  a 2 s  . c  om
    DescribeInstancesResult describeInstancesResult = new DescribeInstancesResult();
    if (instances.size() == 0) {
        return describeInstancesResult;
    }
    Reservation reservation = new Reservation();
    ArrayList<Reservation> reservations = new ArrayList<Reservation>();
    reservations.add(reservation);
    describeInstancesResult.setReservations(reservations);
    reservation.setInstances(instances);

    return describeInstancesResult;
}

From source file:org.jenkinsci.plugins.ec2harness.MockAmazonEC2.java

License:Open Source License

@Override
public DescribeInstancesResult describeInstances() throws AmazonServiceException, AmazonClientException {
    System.out.println("MockAmazonEC2.describeinstances() num instances: " + this.instances.size());
    printcall();// ww  w  .  j a  v a  2 s.co  m
    DescribeInstancesResult describeInstancesResult = new DescribeInstancesResult();
    ArrayList<Reservation> reservations = new ArrayList<Reservation>();
    describeInstancesResult.setReservations(reservations);
    Reservation reservation = new Reservation();
    reservation.setInstances(instances);
    reservations.add(reservation);
    return describeInstancesResult;
}