/** * Check that the AMI requested is available in the cloud and can be used. */ public FormValidation doValidateAmi( @QueryParameter boolean useInstanceProfileForCredentials, @QueryParameter String credentialsId, @QueryParameter String ec2endpoint, @QueryParameter String region, final @QueryParameter String ami) throws IOException { AWSCredentialsProvider credentialsProvider = EC2Cloud.createCredentialsProvider(useInstanceProfileForCredentials, credentialsId); AmazonEC2 ec2; if (region != null) { ec2 = EC2Cloud.connect(credentialsProvider, AmazonEC2Cloud.getEc2EndpointUrl(region)); } else { ec2 = EC2Cloud.connect(credentialsProvider, new URL(ec2endpoint)); } if (ec2 != null) { try { List<String> images = new LinkedList<String>(); images.add(ami); List<String> owners = new LinkedList<String>(); List<String> users = new LinkedList<String>(); DescribeImagesRequest request = new DescribeImagesRequest(); request.setImageIds(images); request.setOwners(owners); request.setExecutableUsers(users); List<Image> img = ec2.describeImages(request).getImages(); if (img == null || img.isEmpty()) { // de-registered AMI causes an empty list to be // returned. so be defensive // against other possibilities return FormValidation.error("No such AMI, or not usable with this accessId: " + ami); } String ownerAlias = img.get(0).getImageOwnerAlias(); return FormValidation.ok( img.get(0).getImageLocation() + (ownerAlias != null ? " by " + ownerAlias : "")); } catch (AmazonClientException e) { return FormValidation.error(e.getMessage()); } } else return FormValidation.ok(); // can't test }
public Request<DescribeImagesRequest> marshall(DescribeImagesRequest describeImagesRequest) { if (describeImagesRequest == null) { throw new AmazonClientException("Invalid argument passed to marshall(...)"); } Request<DescribeImagesRequest> request = new DefaultRequest<DescribeImagesRequest>(describeImagesRequest, "AmazonEC2"); request.addParameter("Action", "DescribeImages"); request.addParameter("Version", "2016-04-01"); request.setHttpMethod(HttpMethodName.POST); com.amazonaws.internal.SdkInternalList<String> imageIdsList = (com.amazonaws.internal.SdkInternalList<String>) describeImagesRequest.getImageIds(); if (!imageIdsList.isEmpty() || !imageIdsList.isAutoConstruct()) { int imageIdsListIndex = 1; for (String imageIdsListValue : imageIdsList) { if (imageIdsListValue != null) { request.addParameter( "ImageId." + imageIdsListIndex, StringUtils.fromString(imageIdsListValue)); } imageIdsListIndex++; } } com.amazonaws.internal.SdkInternalList<String> ownersList = (com.amazonaws.internal.SdkInternalList<String>) describeImagesRequest.getOwners(); if (!ownersList.isEmpty() || !ownersList.isAutoConstruct()) { int ownersListIndex = 1; for (String ownersListValue : ownersList) { if (ownersListValue != null) { request.addParameter("Owner." + ownersListIndex, StringUtils.fromString(ownersListValue)); } ownersListIndex++; } } com.amazonaws.internal.SdkInternalList<String> executableUsersList = (com.amazonaws.internal.SdkInternalList<String>) describeImagesRequest.getExecutableUsers(); if (!executableUsersList.isEmpty() || !executableUsersList.isAutoConstruct()) { int executableUsersListIndex = 1; for (String executableUsersListValue : executableUsersList) { if (executableUsersListValue != null) { request.addParameter( "ExecutableBy." + executableUsersListIndex, StringUtils.fromString(executableUsersListValue)); } executableUsersListIndex++; } } com.amazonaws.internal.SdkInternalList<Filter> filtersList = (com.amazonaws.internal.SdkInternalList<Filter>) describeImagesRequest.getFilters(); if (!filtersList.isEmpty() || !filtersList.isAutoConstruct()) { int filtersListIndex = 1; for (Filter filtersListValue : filtersList) { if (filtersListValue.getName() != null) { request.addParameter( "Filter." + filtersListIndex + ".Name", StringUtils.fromString(filtersListValue.getName())); } com.amazonaws.internal.SdkInternalList<String> valuesList = (com.amazonaws.internal.SdkInternalList<String>) filtersListValue.getValues(); if (!valuesList.isEmpty() || !valuesList.isAutoConstruct()) { int valuesListIndex = 1; for (String valuesListValue : valuesList) { if (valuesListValue != null) { request.addParameter( "Filter." + filtersListIndex + ".Value." + valuesListIndex, StringUtils.fromString(valuesListValue)); } valuesListIndex++; } } filtersListIndex++; } } return request; }
public Request<DescribeImagesRequest> marshall(DescribeImagesRequest describeImagesRequest) { if (describeImagesRequest == null) { throw new AmazonClientException("Invalid argument passed to marshall(...)"); } Request<DescribeImagesRequest> request = new DefaultRequest<DescribeImagesRequest>(describeImagesRequest, "AmazonEC2"); request.addParameter("Action", "DescribeImages"); request.addParameter("Version", "2012-10-01"); java.util.List<String> imageIdsList = describeImagesRequest.getImageIds(); int imageIdsListIndex = 1; for (String imageIdsListValue : imageIdsList) { if (imageIdsListValue != null) { request.addParameter( "ImageId." + imageIdsListIndex, StringUtils.fromString(imageIdsListValue)); } imageIdsListIndex++; } java.util.List<String> ownersList = describeImagesRequest.getOwners(); int ownersListIndex = 1; for (String ownersListValue : ownersList) { if (ownersListValue != null) { request.addParameter("Owner." + ownersListIndex, StringUtils.fromString(ownersListValue)); } ownersListIndex++; } java.util.List<String> executableUsersList = describeImagesRequest.getExecutableUsers(); int executableUsersListIndex = 1; for (String executableUsersListValue : executableUsersList) { if (executableUsersListValue != null) { request.addParameter( "ExecutableBy." + executableUsersListIndex, StringUtils.fromString(executableUsersListValue)); } executableUsersListIndex++; } java.util.List<Filter> filtersList = describeImagesRequest.getFilters(); int filtersListIndex = 1; for (Filter filtersListValue : filtersList) { Filter filterMember = filtersListValue; if (filterMember != null) { if (filterMember.getName() != null) { request.addParameter( "Filter." + filtersListIndex + ".Name", StringUtils.fromString(filterMember.getName())); } java.util.List<String> valuesList = filterMember.getValues(); int valuesListIndex = 1; for (String valuesListValue : valuesList) { if (valuesListValue != null) { request.addParameter( "Filter." + filtersListIndex + ".Value." + valuesListIndex, StringUtils.fromString(valuesListValue)); } valuesListIndex++; } } filtersListIndex++; } return request; }