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

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

Introduction

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

Prototype

DescribeImagesRequest

Source Link

Usage

From source file:com.dowdandassociates.gentoo.bootstrap.DefaultKernelImageProvider.java

License:Apache License

@Override
protected DescribeImagesRequest getRequest() {
    StringBuilder manifestLocation = new StringBuilder();

    manifestLocation.append("*pv-grub-");
    manifestLocation.append(imageInfo.getBootPartition());
    manifestLocation.append("_*");

    return new DescribeImagesRequest().withOwners("amazon").withFilters(
            new Filter().withName("image-type").withValues("kernel"),
            new Filter().withName("architecture").withValues(imageInfo.getArchitecture()),
            new Filter().withName("manifest-location").withValues(manifestLocation.toString()));
}

From source file:com.dowdandassociates.gentoo.bootstrap.DefaultTestImageProvider.java

License:Apache License

public Optional<Image> get() {
    if (!testSnapshot.isPresent()) {
        log.info("test snapshot not present");
        return Optional.absent();
    }//  w w w.j  av  a 2s  . c  o m

    StringBuilder name = new StringBuilder();
    name.append(prefix.get());

    if (StringUtils.isNotBlank(dateFormat.get())) {
        name.append(DateFormatUtils.formatUTC(System.currentTimeMillis(), dateFormat.get()));
    }

    String architecture = imageInformation.getArchitecture();
    String virtualizationType = imageInformation.getVirtualizationType();

    RegisterImageRequest registerImageRequest = new RegisterImageRequest().withArchitecture(architecture)
            .withVirtualizationType(virtualizationType).withDescription(description.get())
            .withName(name.toString()).withRootDeviceName(rootDeviceName.get());

    if ("paravirtual".equals(virtualizationType)) {
        if (!kernelImage.isPresent()) {
            log.info("kernel image not present");
            return Optional.absent();
        }

        registerImageRequest = registerImageRequest.withKernelId(kernelImage.get().getImageId());
    }

    if ("i386".equals(architecture)) {
        registerImageRequest = registerImageRequest.withBlockDeviceMappings(
                new BlockDeviceMapping().withDeviceName(rootDeviceName.get())
                        .withEbs(new EbsBlockDevice().withSnapshotId(testSnapshot.get().getSnapshotId())),
                new BlockDeviceMapping().withDeviceName("/dev/sda2").withVirtualName("ephemeral0"),
                new BlockDeviceMapping().withDeviceName("/dev/sda3").withVirtualName("ephemeral1"));
    } else {
        registerImageRequest = registerImageRequest.withBlockDeviceMappings(
                new BlockDeviceMapping().withDeviceName(rootDeviceName.get())
                        .withEbs(new EbsBlockDevice().withSnapshotId(testSnapshot.get().getSnapshotId())),
                new BlockDeviceMapping().withDeviceName("/dev/sdb").withVirtualName("ephemeral0"),
                new BlockDeviceMapping().withDeviceName("/dev/sdc").withVirtualName("ephemeral1"),
                new BlockDeviceMapping().withDeviceName("/dev/sdd").withVirtualName("ephemeral2"),
                new BlockDeviceMapping().withDeviceName("/dev/sde").withVirtualName("ephemeral3"));
    }

    RegisterImageResult registerImageResult = ec2Client.registerImage(registerImageRequest);

    String imageId = registerImageResult.getImageId();

    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest().withImageIds(imageId);

    try {
        while (true) {
            log.info("Sleeping for " + sleep.get() + " ms");
            Thread.sleep(sleep.get());
            DescribeImagesResult describeImagesResult = ec2Client.describeImages(describeImagesRequest);
            if (describeImagesResult.getImages().isEmpty()) {
                return Optional.absent();
            }
            Image image = describeImagesResult.getImages().get(0);
            String state = image.getState();
            log.info("Image state = " + state);
            if ("pending".equals(state)) {
                continue;
            }
            if (!"available".equals(state)) {
                return Optional.absent();
            }
            return Optional.fromNullable(image);
        }
    } catch (InterruptedException e) {
        return Optional.absent();
    }
}

From source file:com.dowdandassociates.gentoo.bootstrap.SimpleImageProvider.java

License:Apache License

public Optional<Image> get() {
    String imageId = getImageId();

    if (null == imageId) {
        return Optional.absent();
    }/*from   w ww .j  av  a  2  s . co m*/

    DescribeImagesResult result = ec2Client.describeImages(new DescribeImagesRequest().withImageIds(imageId));

    if (result.getImages().isEmpty()) {
        return Optional.absent();
    }

    return Optional.fromNullable(result.getImages().get(0));
}

From source file:com.eqt.ssc.collector.EC2Collector.java

@Override
public int collect() {

    //TODO: each aws call can throw RuntimeException, need to catch that.

    compareObjects(ec2.describeAddresses(), "ec2.describeAddresses");

    compareObjects(ec2.describeAvailabilityZones(), "ec2.describeAvailabilityZones");
    compareObjects(ec2.describeBundleTasks(), "ec2.describeBundleTasks");
    compareObjects(ec2.describeConversionTasks(), "ec2.describeConversionTasks");
    compareObjects(ec2.describeCustomerGateways(), "ec2.describeCustomerGateways");
    compareObjects(ec2.describeDhcpOptions(), "ec2.describeDhcpOptions");
    compareObjects(ec2.describeExportTasks(), "ec2.describeExportTasks");

    //appears to allow accessing of individual values found in ec2.describeImages().getImages()
    //      compareObjects(ec2.describeImageAttribute(), "ec2.describeImageAttribute");

    //limit to images built by this account.
    DescribeImagesRequest imageRequest = new DescribeImagesRequest();
    List<String> accounts = new ArrayList<String>();
    accounts.add(getAccountId());// ww  w . j  a  va2s .c  o  m
    imageRequest.setOwners(accounts);
    compareObjects(ec2.describeImages(imageRequest), "ec2.describeImages");

    //appears to allow accessing of individual values found in ec2.describeInstances()
    //compareObjects(ec2.describeInstanceAttribute(), "ec2.describeInstanceAttribute");

    compareObjects(ec2.describeInstanceStatus(), "ec2.describeInstanceStatus");
    compareObjects(ec2.describeInstances(), "ec2.describeInstances");
    compareObjects(ec2.describeInternetGateways(), "ec2.describeInternetGateways");
    compareObjects(ec2.describeKeyPairs(), "ec2.describeKeyPairs");

    //DEPRECATED
    //      compareObjects(ec2.describeLicenses(), "ec2.describeLicenses");

    compareObjects(ec2.describeNetworkAcls(), "ec2.describeNetworkAcls");

    //appears to allow accessing of individual values found in ec2.describeNetworkInterfaces()
    //compareObjects(ec2.describeNetworkInterfaceAttribute(), "ec2.describeNetworkInterfaceAttribute");

    compareObjects(ec2.describeNetworkInterfaces(), "ec2.describeNetworkInterfaces");
    compareObjects(ec2.describePlacementGroups(), "ec2.describePlacementGroups");
    compareObjects(ec2.describeRegions(), "ec2.describeRegions");
    DescribeReservedInstancesResult describeReservedInstances = ec2.describeReservedInstances();
    compareJson(describeReservedInstances, "ec2.describeReservedInstances");

    //not pertinent to state capture..
    //      compareObjects(ec2.describeReservedInstancesOfferings(), "ec2.describeReservedInstancesOfferings");

    compareObjects(ec2.describeRouteTables(), "ec2.describeRouteTables");
    compareObjects(ec2.describeSecurityGroups(), "ec2.describeSecurityGroups");

    //appears to allow accessing of individual values found in ec2.describeSnapshots()
    //compareObjects(ec2.describeSnapshotAttribute(), "ec2.describeSnapshotAttribute");

    DescribeSnapshotsRequest snapRequest = new DescribeSnapshotsRequest();
    snapRequest.setOwnerIds(accounts);
    compareObjects(ec2.describeSnapshots(snapRequest), "ec2.describeSnapshots");

    //creates error: Status Code: 400, AWS Service: AmazonEC2, 
    //AWS Request ID: 22534b6a-9091-4566-b8c7-c10e0dabfe58, AWS Error Code: InvalidSpotDatafeed.NotFound,
    //AWS Error Message: Spot datafeed subscription does not exist.
    //      compareObjects(ec2.describeSpotDatafeedSubscription(), "ec2.describeSpotDatafeedSubscription");
    compareObjects(ec2.describeSpotInstanceRequests(), "ec2.describeSpotInstanceRequests");

    //not useful to log.
    //      compareObjects(ec2.describeSpotPriceHistory(), "ec2.describeSpotPriceHistory");

    compareObjects(ec2.describeSubnets(), "ec2.describeSubnets");
    compareObjects(ec2.describeTags(), "ec2.describeTags");

    //appears to allow accessing of individual values found in ec2.describeVolumes()
    //compareObjects(ec2.describeVolumeAttribute(), "ec2.describeVolumeAttribute");
    compareObjects(ec2.describeVolumeStatus(), "ec2.describeVolumeStatus");
    compareJson(ec2.describeVolumes(), "ec2.describeVolumes");

    //unknown call
    //      compareObjects(ec2.describeVpcPeeringConnection(), "ec2.describeVpcPeeringConnection");

    compareObjects(ec2.describeVpcs(), "ec2.describeVpcs");
    compareObjects(ec2.describeVpnConnections(), "ec2.describeVpnConnections");
    compareObjects(ec2.describeVpnGateways(), "ec2.describeVpnGateways");

    return stateChanges;
}

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  a  v a 2  s. com*/

    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  . j  av a2  s . com*/

    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 w ww. ja  va 2 s  .  c  o  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.liferay.amazontools.S3Cleaner.java

License:Open Source License

protected List<String> getImageNames(List<String> imageIds) {
    List<String> imageNames = new ArrayList<>();

    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest();

    describeImagesRequest.setImageIds(imageIds);

    DescribeImagesResult describeImagesResult = amazonEC2Client.describeImages(describeImagesRequest);

    for (Image image : describeImagesResult.getImages()) {
        imageNames.add(image.getName());
    }/*from   w ww  .  j  av  a  2s  .  co  m*/

    return imageNames;
}

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

License:Apache License

public DescribeImagesResult describeImages() {
    return describeImages(new DescribeImagesRequest());
}

From source file:com.netflix.simianarmy.client.aws.AWSClient.java

License:Apache License

/**
 * Describe a set of specific images.//w  w  w  . j a va  2  s.  c  o m
 *
 * @param imageIds the image ids
 * @return the images
 */
public List<Image> describeImages(String... imageIds) {
    if (imageIds == null || imageIds.length == 0) {
        LOGGER.info(String.format("Getting all AMIs in region %s.", region));
    } else {
        LOGGER.info(String.format("Getting AMIs for %d ids in region %s.", imageIds.length, region));
    }

    AmazonEC2 ec2Client = ec2Client();
    DescribeImagesRequest request = new DescribeImagesRequest();
    if (imageIds != null) {
        request.setImageIds(Arrays.asList(imageIds));
    }
    DescribeImagesResult result = ec2Client.describeImages(request);
    List<Image> images = result.getImages();

    LOGGER.info(String.format("Got %d AMIs in region %s.", images.size(), region));
    return images;
}