Example usage for com.amazonaws.services.ec2.model DescribeImagesRequest setFilters

List of usage examples for com.amazonaws.services.ec2.model DescribeImagesRequest setFilters

Introduction

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

Prototype


public void setFilters(java.util.Collection<Filter> filters) 

Source Link

Document

The filters.

Usage

From source file:com.carrotgarden.maven.aws.ecc.CarrotElasticCompute.java

License:BSD License

/** List AMI images matching a given filter and regex. */
public List<Image> imageList(//
        final String imageFilter, //
        final String imageRegex, //
        final String entrySplit, //
        final String keySplit, //
        final String valueSplit //
) throws Exception {

    final String[] entryArray = imageFilter.split(entrySplit);

    final List<Filter> filterList = new ArrayList<Filter>();

    for (final String entry : entryArray) {

        final String[] termArray = entry.split(keySplit);

        final String key = termArray[0];
        final String valuesText = termArray[1];

        final String[] valueArray = valuesText.split(valueSplit);

        final Filter filter = new Filter(key, Arrays.asList(valueArray));

        filterList.add(filter);//from  w  w w  .j  a  v  a2  s. com

    }

    final DescribeImagesRequest request = new DescribeImagesRequest();
    request.setFilters(filterList);

    final DescribeImagesResult result = amazonClient.describeImages(request);

    final List<Image> resultImages = result.getImages();

    final List<Image> imageList = new ArrayList<Image>();

    final Pattern pattern = Pattern.compile(imageRegex);

    for (final Image image : resultImages) {
        final String search = image.toString();
        if (pattern.matcher(search).matches()) {
            imageList.add(image);
        }
    }

    return imageList;

}

From source file:com.liferay.amazontools.AMIBuilder.java

License:Open Source License

protected boolean isImageCreated(String imageId) {
    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest();

    List<Filter> filters = new ArrayList<Filter>();

    Filter filter = new Filter();

    filter.setName("state");

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

    values.add("available");

    filter.setValues(values);/*from  w w  w .  j ava 2 s.c om*/

    filters.add(filter);

    describeImagesRequest.setFilters(filters);

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

    imageIds.add(imageId);

    describeImagesRequest.setImageIds(imageIds);

    DescribeImagesResult describeImagesResult = amazonEC2Client.describeImages(describeImagesRequest);

    List<Image> images = describeImagesResult.getImages();

    return !images.isEmpty();
}

From source file:com.liferay.amazontools.BaseAMIBuilder.java

License:Open Source License

protected String getImageId(String imageName) {
    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest();

    List<Filter> filters = new ArrayList<Filter>();

    Filter filter = new Filter();

    filter.setName("name");

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

    values.add(imageName);/*from w w  w.ja  va 2s .  c o  m*/

    filter.setValues(values);

    filters.add(filter);

    describeImagesRequest.setFilters(filters);

    DescribeImagesResult describeImagesResult = amazonEC2Client.describeImages(describeImagesRequest);

    List<Image> images = describeImagesResult.getImages();

    if (images.isEmpty()) {
        throw new RuntimeException("Image " + imageName + " does not exist");
    }

    Image image = images.get(0);

    return image.getImageId();
}

From source file:com.liferay.amazontools.BaseAMITool.java

License:Open Source License

protected String getImageId(String imageName) {
    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest();

    Image image = null;/*from  ww  w.j  av  a 2  s.  co  m*/

    for (int i = 0; i < 6; i++) {
        List<Filter> filters = new ArrayList<Filter>();

        Filter filter = new Filter();

        filter.setName("name");

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

        values.add(imageName);

        filter.setValues(values);

        filters.add(filter);

        describeImagesRequest.setFilters(filters);

        DescribeImagesResult describeImagesResult = amazonEC2Client.describeImages(describeImagesRequest);

        List<Image> images = describeImagesResult.getImages();

        if (images.isEmpty()) {
            sleep(30);

            continue;
        }

        image = images.get(0);

        break;
    }

    if (image == null) {
        throw new RuntimeException("Image " + imageName + " does not exist");
    }

    return image.getImageId();
}

From source file:com.pinterest.arcee.handler.SpecsHandler.java

License:Apache License

public void updateAllImages(Long after) {
    DescribeImagesRequest request = new DescribeImagesRequest();
    request.setOwners(Arrays.asList(OWNER_ID));
    Filter envFilter = new Filter("tag:environment", Arrays.asList("prod"));
    Filter archFilter = new Filter("tag:release", Arrays.asList("precise"));
    Filter vtypeFilter = new Filter("virtualization-type", Arrays.asList("hvm"));
    Filter rootType = new Filter("root-device-type", Arrays.asList("instance-store"));
    Filter archType = new Filter("architecture", Arrays.asList("x86_64"));
    request.setFilters(Arrays.asList(envFilter, archFilter, vtypeFilter, rootType, archType));
    DescribeImagesResult result = client.describeImages(request);
    List<Image> images = result.getImages();
    for (Image image : images) {
        try {//from w  w w  . ja v a 2  s.co  m
            ImageBean imageBean = new ImageBean();
            imageBean.setId(image.getImageId());
            Long createTime = getDateTime(image.getCreationDate());
            if (createTime <= after) {
                continue;
            }
            imageBean.setPublish_date(getDateTime(image.getCreationDate()));
            List<Tag> tags = image.getTags();
            for (Tag tag : tags) {
                if (tag.getKey().equals("application")) {
                    String app = tag.getValue();
                    imageBean.setApp_name(app);
                    break;
                }
            }

            imageDAO.insertOrUpdate(imageBean);
        } catch (Exception ex) {
            LOG.error("Failed to get image info:", ex);
        }
    }
}

From source file:eu.optimis.interopt.provider.aws.AmazonClient.java

License:Apache License

public String describeImage(String imageId) {

    AmazonEC2 ec2 = getAmazonEC2Client();
    DescribeImagesRequest req = new DescribeImagesRequest();
    List<Filter> filters = new ArrayList<Filter>();
    List<String> imgs = new ArrayList<String>();
    imgs.add(imageId);//  w  w  w .  j a va2 s  . co  m
    filters.add(new Filter("image-id", imgs));
    req.setFilters(filters);

    DescribeImagesResult res = ec2.describeImages(req);
    return res.getImages().get(0).getName() + "----" + res.getImages().get(0).getDescription();
}

From source file:jp.aws.test.ec2.EC2Instance.java

License:Apache License

/**
 * AMI?/*from  ww w.j av a  2s .co m*/
 *
 * @param HashMap
 *            <String,String> filterMap : ID: ownerid => self, amazon,
 *            redhat, 00000000  root-device-type => ebs, instance-store
 *            architecture => i386, x86_64 name => amzn-ami*
 * @return
 * @throws Exception
 * @note - ????????
 */
public List<AMIItem> ami_list(HashMap<String, String> filterMap) {

    List<AMIItem> amiItemList = new ArrayList<AMIItem>();

    // 
    this.clientManager.changeRegion();

    // AMI??
    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest();
    List<String> ownersList = new ArrayList<String>();

    // OwnerID?(self, amazon, redhat, 00000000)
    ownersList.add(filterMap.get("ownerid"));
    describeImagesRequest.setOwners(ownersList);

    // AMI????????Filter?
    ArrayList<Filter> filters = new ArrayList<Filter>();

    Filter filter = new Filter();
    filter.setName("image-type");

    // machine
    List<String> valueList = new ArrayList<String>();
    valueList.add("machine");
    filter.setValues(valueList);

    // Filter
    filters.add(filter);

    // 
    for (Iterator<String> it = filterMap.keySet().iterator(); it.hasNext();) {
        String key = it.next();
        Log.d("ami_list", String.format("key:%s, value:%s", key, filterMap.get(key)));
        if (key.toLowerCase().equals("ownerid"))
            continue;
        filters.add(new Filter().withName(key).withValues(filterMap.get(key)));
    }

    // Filter
    describeImagesRequest.setFilters(filters);

    // ????AMI??
    DescribeImagesResult describeImagesResult = this.clientManager.ec2().describeImages(describeImagesRequest);

    // AMI?List?(Image?com.amazonaws.services.ec2.model?Image???)
    List<Image> amiList = describeImagesResult.getImages();

    // ?AMI??
    for (Image image : amiList) {
        // http://docs.amazonwebservices.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/services/ec2/model/Image.html
        AMIItem amiItem = new AMIItem();

        StringBuilder builder = new StringBuilder();

        amiItem.imageId = image.getImageId();
        amiItem.imageType = image.getImageType();
        amiItem.imageLocation = image.getImageLocation();
        amiItem.name = image.getName();
        amiItem.architecture = image.getArchitecture();
        amiItem.platform = image.getPlatform();
        amiItem.state = image.getState();
        amiItem.ownerId = image.getOwnerId();
        amiItem.rootDeviceType = image.getRootDeviceType();
        amiItem.rootDeviceName = image.getRootDeviceName();
        amiItem.description = image.getDescription();
        builder.setLength(0); // ?
        List<Tag> tags = image.getTags(); // tag
        for (Tag tag : tags) {
            builder.append(tag.getValue());
            builder.append(", ");
        }

        // ?
        amiItemList.add(amiItem);
    }

    return amiItemList;
}