List of usage examples for com.amazonaws.services.ec2.model Image getPlatform
public String getPlatform()
This value is set to windows
for Windows AMIs; otherwise, it is blank.
From source file:com.cloudera.director.aws.ec2.EC2InstanceTemplateConfigurationValidator.java
License:Apache License
/** * Validates the configured AMI./*from w ww .j a v a 2 s. c o 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.urbancode.terraform.tasks.aws.InstanceTask.java
License:Apache License
private void updatePlatform() { // update the platform List<String> imageId = new ArrayList<String>(); imageId.add(amiId);//from ww w . j a va 2s. c o m List<Image> images = helper.getImages(null, imageId, ec2Client); if (images != null) { Image image = images.get(0); platform = image.getPlatform(); } if (platform == null || "".equals(platform)) { platform = "linux"; } }
From source file:com.zotoh.cloudapi.aws.AMImage.java
License:Open Source License
private MachineImage toMI(Image i) { MachineImage m = null;/*from w w w . java2s . c o m*/ if (i != null) { m = new MachineImage(); m.setProviderRegionId(_svc.getCloud().getContext().getRegionId()); m.setArchitecture(toArch(i.getArchitecture())); m.setCurrentState(toImageState(i.getState())); m.setProviderMachineImageId(i.getImageId()); m.setName(i.getName()); m.setProviderOwnerId(i.getOwnerId()); m.setSoftware(""); m.setType(toImageType(i.getRootDeviceType())); m.addTag("manifest-location", nsb(i.getImageLocation())); m.addTag("hypervisor", nsb(i.getHypervisor())); m.addTag("alias", nsb(i.getImageOwnerAlias())); m.addTag("kernel", nsb(i.getKernelId())); m.addTag("public", i.getPublic() ? "true" : "false"); m.addTag("ramdisk", nsb(i.getRamdiskId())); m.addTag("root-dev-name", nsb(i.getRootDeviceName())); m.addTag("state-reason", nsb(i.getStateReason())); m.addTag("virtualization-type", nsb(i.getVirtualizationType())); m.setDescription(i.getDescription()); m.setPlatform(nsb(i.getPlatform()).toLowerCase().indexOf("windows") >= 0 ? Platform.WINDOWS : Platform.UBUNTU); } return m; }
From source file:jp.aws.test.ec2.EC2Instance.java
License:Apache License
/** * AMI?// w w w . j a va 2 s . c o 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; }
From source file:org.gridgain.grid.spi.cloud.ec2lite.GridEc2LiteCloudSpi.java
License:GNU General Public License
/** * Gets image resource from EC2 image./*from ww w. ja va 2 s . com*/ * * @param img EC2 image. * @return Image resource. */ private GridCloudSpiResourceAdapter createImageResource(Image img) { assert img != null; Map<String, String> params = new HashMap<String, String>(); params.put(IMG_ARCH, img.getArchitecture()); params.put(IMG_LOC, img.getImageLocation()); params.put(IMG_STATE, img.getState()); params.put(INST_TYPE, img.getImageType()); params.put(IMG_KERNEL_ID, img.getKernelId()); params.put(OWNER_ID, img.getOwnerId()); params.put(INST_PLATFORM, img.getPlatform()); params.put(IMG_RAMDISK_ID, img.getRamdiskId()); params.put(IMG_PUBLIC, String.valueOf(img.isPublic())); params.put(PRODUCT_CODE_IDS, F.concat(F.transform(img.getProductCodes(), new C1<ProductCode, String>() { @Override public String apply(ProductCode e) { return e.getProductCodeId(); } }), VAL_DELIM)); return new GridCloudSpiResourceAdapter(img.getImageId(), CLD_IMAGE, cloudId, params); }