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

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

Introduction

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

Prototype

@Override
public DescribeImagesResult describeImages(DescribeImagesRequest request) 

Source Link

Document

Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.

Usage

From source file:Aws.Images.java

public void DescribeImages(AmazonEC2Client ec2) {
    Filter filtro = new Filter().withName("state").withValues("available");
    DescribeImagesRequest ImageReq = new DescribeImagesRequest().withOwners("self").withFilters(filtro);
    DescribeImagesResult describeImagesRequest = ec2.describeImages(ImageReq);
    List<Image> Images = describeImagesRequest.getImages();
    for (Object Image : Images.toArray()) {
        System.out.println(Image);
    }//from ww  w . j  a  va 2s .  c  om
}

From source file:com.boxupp.dao.AwsProjectDAOManager.java

License:Apache License

public StatusBean validateMachineAmi(JsonNode machineInfo) {
    StatusBean statusBean = new StatusBean();
    String projectID = machineInfo.get("projectID").asText();
    String machineAMI = machineInfo.get("machineAMI").asText();
    String machineRegion = machineInfo.get("machineRegion").asText();
    AwsProjectCredentialsBean awsCredentials = retireveAwsProjectCredentials(projectID);
    BasicAWSCredentials cred = new BasicAWSCredentials(awsCredentials.getAwsAccessKeyId(),
            awsCredentials.getAwsSecretAccessKey());
    AmazonEC2Client ec2Client = new AmazonEC2Client(cred);
    try {//from  w  w w .  j  ava  2s . c om
        DescribeImagesRequest imageRequest = new DescribeImagesRequest();
        Collection<String> imageID = new ArrayList<String>();
        imageID.add(machineAMI);
        imageRequest.withImageIds(imageID);
        ec2Client.setRegion(com.amazonaws.regions.Region.getRegion(Regions.fromName(machineRegion)));
        DescribeImagesResult imagesResult = ec2Client.describeImages(imageRequest);
        statusBean.setData(null);
        statusBean.setStatusCode(0);
        statusBean.setStatusMessage("AMI Id Validated");
    } catch (Exception exception) {
        statusBean.setData(null);
        statusBean.setStatusCode(1);
        statusBean
                .setStatusMessage("Ami Id " + machineAMI + " doesnot exists in " + machineRegion + " region ");
    }

    return statusBean;
}

From source file:com.cloudera.director.aws.ec2.EC2InstanceTemplateConfigurationValidator.java

License:Apache License

/**
 * Validates the configured AMI./*from  www  .  ja  va 2 s  .  co  m*/
 *
 * @param client              the EC2 client
 * @param configuration       the configuration to be validated
 * @param accumulator         the exception condition accumulator
 * @param localizationContext the localization context
 */
@VisibleForTesting
@SuppressWarnings("PMD.CollapsibleIfStatements")
void checkImage(AmazonEC2Client client, Configured configuration,
        PluginExceptionConditionAccumulator accumulator, LocalizationContext localizationContext) {

    String imageName = configuration.getConfigurationValue(IMAGE, localizationContext);
    String type = configuration.getConfigurationValue(TYPE, localizationContext);

    int conditionCount = accumulator.getConditionsByKey().size();

    if (!imageName.startsWith("ami-")) {
        addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_NAME_MSG, imageName);
        return;
    }

    LOG.info(">> Describing AMI '{}'", imageName);
    DescribeImagesResult result = null;
    try {
        result = client.describeImages(new DescribeImagesRequest().withImageIds(imageName));
        checkCount(accumulator, IMAGE, localizationContext, imageName, result.getImages());
    } catch (AmazonServiceException e) {
        if (e.getErrorCode().startsWith(INVALID_AMI_ID)) {
            addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_MSG, imageName);
        } else {
            throw Throwables.propagate(e);
        }
    }

    if ((result == null) || (accumulator.getConditionsByKey().size() > conditionCount)) {
        return;
    }

    Image image = Iterables.getOnlyElement(result.getImages());
    if (!SIXTY_FOUR_BIT_ARCHITECTURE.equals(image.getArchitecture())) {
        addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_ARCHITECTURE_MSG, imageName,
                image.getArchitecture());
    }

    AWSFilters imageFilters = templateFilters.getSubfilters(IMAGE.unwrap().getConfigKey());
    boolean useSpotInstances = Boolean
            .parseBoolean(configuration.getConfigurationValue(USE_SPOT_INSTANCES, localizationContext));

    String ownerId = image.getOwnerId();
    if (ownerId != null) {
        String blacklistValue = imageFilters.getBlacklistValue(IMAGE_OWNER_ID_BLACKLIST_KEY,
                ownerId.toLowerCase());
        if (blacklistValue != null) {
            addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_OWNER_MSG, imageName, ownerId,
                    blacklistValue);
        } else {
            if (useSpotInstances) {
                blacklistValue = imageFilters.getBlacklistValue(IMAGE_SPOT_OWNER_ID_BLACKLIST_KEY,
                        ownerId.toLowerCase());
                if (blacklistValue != null) {
                    addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_OWNER_SPOT_MSG,
                            imageName, ownerId, blacklistValue);
                }
            }
        }
    }

    String platform = image.getPlatform();
    if (platform != null) {
        String blacklistValue = imageFilters.getBlacklistValue(IMAGE_PLATFORM_BLACKLIST_KEY,
                platform.toLowerCase());
        if (blacklistValue != null) {
            addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_PLATFORM_MSG, imageName,
                    platform, blacklistValue);
        } else {
            if (useSpotInstances) {
                blacklistValue = imageFilters.getBlacklistValue(IMAGE_SPOT_PLATFORM_BLACKLIST_KEY,
                        platform.toLowerCase());
                if (blacklistValue != null) {
                    addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_PLATFORM_SPOT_MSG,
                            imageName, platform, blacklistValue);
                }
            }
        }
    }

    if (!AVAILABLE_STATE.equals(image.getState())) {
        addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_STATE_MSG, imageName,
                image.getState());
    }

    if (!provider.getVirtualizationMappings().apply(image.getVirtualizationType()).contains(type)) {
        addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_INSTANCE_TYPE_COMPATIBILITY_MSG,
                type, image.getVirtualizationType(), imageName);
    }

    if (!ROOT_DEVICE_TYPE.equals(image.getRootDeviceType())) {
        addError(accumulator, IMAGE, localizationContext, null, INVALID_AMI_ROOT_DEVICE_TYPE_MSG, imageName,
                image.getRootDeviceType());
    }
}

From source file:com.norbl.cbp.ppe.AmiDescription.java

License:Open Source License

/**
 *
 * @param ec2Client/* www.  j ava2s.  co  m*/
 * @param amiID
 * @return null if amiID does not exist.
 */
public static Image getImageInfo(AmazonEC2Client ec2Client, String amiID) {
    List<String> IDs = new ArrayList<String>();
    IDs.add(amiID);
    DescribeImagesRequest req = new DescribeImagesRequest();
    req.setImageIds(IDs);

    List<Image> imgs = ec2Client.describeImages(req).getImages();
    for (Image img : imgs) {
        if (img.getImageId().equals(amiID))
            return (img);
    }
    return (null);
}

From source file:com.norbl.cbp.ppe.AmiDescription.java

License:Open Source License

public static boolean hasAmi(AmazonEC2Client ec2Client, String amiID) {
    try {/*from   w w w.  ja  v  a  2  s.co m*/
        DescribeImagesRequest q = new DescribeImagesRequest();
        List<String> amis = new ArrayList<String>();
        amis.add(amiID);
        q = q.withImageIds(amis);
        DescribeImagesResult r = ec2Client.describeImages(q);
        return (r.getImages().size() > 0);
    } catch (AmazonServiceException xxx) {
        return (false);
    }
}

From source file:io.macgyver.plugin.cloud.aws.scanner.AMIScanner.java

License:Apache License

@Override
public void scan(Region region) {
    AmazonEC2Client c = getAWSServiceClient().createEC2Client(region);

    NeoRxClient neoRx = getNeoRxClient();
    Preconditions.checkNotNull(neoRx);/*from w ww .j  a  va 2  s . c o m*/
    GraphNodeGarbageCollector gc = newGarbageCollector().label("AwsAmi").region(region);
    DescribeImagesRequest req = new DescribeImagesRequest().withOwners("self");
    DescribeImagesResult result = c.describeImages(req);

    result.getImages().forEach(i -> {
        try {
            ObjectNode n = convertAwsObject(i, region);

            String cypher = "merge (x:AwsAmi {aws_arn:{aws_arn}}) set x+={props} set x.updateTs=timestamp()";
            neoRx.execCypher(cypher, "aws_arn", n.path("aws_arn").asText(), "props", n)
                    .forEach(gc.MERGE_ACTION);

        } catch (RuntimeException e) {
            logger.warn("problem scanning AMI", e);
        }
    });
    gc.invoke();
}

From source file:org.lendingclub.mercator.aws.AMIScanner.java

License:Apache License

@Override
protected void doScan() {
    AmazonEC2Client c = getClient();

    NeoRxClient neoRx = getNeoRxClient();
    Preconditions.checkNotNull(neoRx);/*ww w.  j a  va2s. co m*/
    GraphNodeGarbageCollector gc = newGarbageCollector().bindScannerContext();
    DescribeImagesRequest req = new DescribeImagesRequest().withOwners("self");
    DescribeImagesResult result = c.describeImages(req);

    result.getImages().forEach(i -> {
        try {
            ObjectNode n = convertAwsObject(i, getRegion());

            String cypher = "merge (x:AwsAmi {aws_arn:{aws_arn}}) set x+={props} set x.updateTs=timestamp() return x";
            neoRx.execCypher(cypher, "aws_arn", n.path("aws_arn").asText(), "props", n).forEach(r -> {
                gc.MERGE_ACTION.accept(r);
                getShadowAttributeRemover().removeTagAttributes("AwsAmi", n, r);
            });
            incrementEntityCount();
        } catch (RuntimeException e) {
            maybeThrow(e, "problem scanning AMI " + i.getImageId());
        }
    });

}

From source file:org.zalando.stups.fullstop.plugin.AmiPlugin.java

License:Apache License

@Override
public void processEvent(final CloudTrailEvent event) {

    List<String> amis = getAmis(event);

    final List<String> whitelistedAmis = Lists.newArrayList();

    AmazonEC2Client ec2Client = cachingClientProvider.getClient(AmazonEC2Client.class, whitelistedAmiAccount,
            Region.getRegion(Regions.fromName(event.getEventData().getAwsRegion())));

    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest().withOwners(whitelistedAmiAccount);

    DescribeImagesResult describeImagesResult = ec2Client.describeImages(describeImagesRequest);
    List<Image> images = describeImagesResult.getImages();

    whitelistedAmis.addAll(images.stream().filter(image -> image.getName().startsWith(amiNameStartWith))
            .map(Image::getImageId).collect(Collectors.toList()));

    List<String> invalidAmis = Lists.newArrayList();

    for (String ami : amis) {

        boolean valid = false;

        for (String whitelistedAmi : whitelistedAmis) {

            if (ami.equals(whitelistedAmi)) {
                valid = true;/*from   w  w w.j ava  2s  .  co  m*/
            }
        }

        if (!valid) {
            invalidAmis.add(ami);
        }

    }

    if (!CollectionUtils.isEmpty(invalidAmis)) {
        violationStore
                .save(new ViolationBuilder(format("Instances with ids: %s was started with wrong images: %s",
                        getInstanceIds(event), invalidAmis)).withEvent(event).build());
    }
}

From source file:pl.edu.agh.samm.tadapter.eucalyptus.EucalyptusTransportAdapter.java

License:Open Source License

private Image getImageByImageID(AmazonEC2Client client, String imageId) {
    DescribeImagesRequest describeImagesRequest = new DescribeImagesRequest();
    List<String> imageIds = new LinkedList<String>();
    imageIds.add(imageId);/*  w ww  .  j a  v  a 2  s.  c om*/
    describeImagesRequest.setImageIds(imageIds);
    List<Image> images = client.describeImages(describeImagesRequest).getImages();
    if (images.size() != 1) {
        throw new RuntimeException("Found " + images.size() + " images of id: " + imageId);
    }
    return images.get(0);
}