List of usage examples for com.amazonaws.services.ec2 AmazonEC2Client describeImages
@Override
public DescribeImagesResult describeImages(DescribeImagesRequest request)
Describes the specified images (AMIs, AKIs, and ARIs) available to you or all of the images available to you.
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); }