List of usage examples for com.amazonaws.services.ec2.model DescribeImagesRequest DescribeImagesRequest
DescribeImagesRequest
From source file:de.unibi.cebitec.bibigrid.meta.aws.ValidateIntentAWS.java
private boolean checkImages() { log.info("Checking Images..."); boolean allCheck = true; /*// w w w . jav a2s. com * Checking for Images in Config File */ try { DescribeImagesRequest imageRequest = new DescribeImagesRequest() .withImageIds(Arrays.asList(conf.getMasterImage(), conf.getSlaveImage())); DescribeImagesResult imageResult = ec2.describeImages(imageRequest); boolean slave = false, master = false; boolean masterClusterType = conf.getMasterInstanceType().getSpec().clusterInstance; boolean slaveClusterType = conf.getSlaveInstanceType().getSpec().clusterInstance; /* * Checking if both are hvm or paravirtual types */ if (masterClusterType != slaveClusterType) { log.error("If cluster instances are used please create a homogeneous group."); allCheck = false; } else if (masterClusterType) { /* * If master instance is a cluster instance check if the types are the same */ if (conf.getMasterInstanceType() != conf.getSlaveInstanceType()) { log.error("If cluster instances are used please create a homogeneous group."); allCheck = false; } } for (Image image : imageResult.getImages()) { /* * Checking if Master Image is available. */ if (image.getImageId().equals(conf.getMasterImage())) { master = true; if (image.getVirtualizationType().equals("hvm")) { // Image detected is of HVM Type if (conf.getMasterInstanceType().getSpec().hvm) { log.info(I, "Master instance can use HVM images."); // Instance and Image is HVM type } else if (conf.getMasterInstanceType().getSpec().pvm) { log.error("Master Instance type does not support hardware-assisted virtualization."); // HVM Image but instance type is not correct allCheck = false; } } else { if (conf.getMasterInstanceType().getSpec().pvm) { log.info(I, "Master instance can use paravirtual images."); // Instance and Image fits. } else if (conf.getMasterInstanceType().getSpec().hvm) { log.error("Master Instance type does not support paravirtual images."); // Paravirtual Image but cluster instance type allCheck = false; } } } /* * Checking if Slave Image is available. */ if (image.getImageId().equals(conf.getSlaveImage())) { slave = true; if (image.getVirtualizationType().equals("hvm")) { // Image detected is of HVM Type if (conf.getSlaveInstanceType().getSpec().hvm) { log.info(I, "Slave instance can use HVM images."); // Instance and Image is HVM type } else if (conf.getSlaveInstanceType().getSpec().pvm) { log.error("Slave Instance type does not support hardware-assisted virtualization."); // HVM Image but instance type is not correct allCheck = false; } } else { if (conf.getSlaveInstanceType().getSpec().pvm) { log.info(I, "Slave instance can use paravirtual images."); // Instance and Image fits. } else if (conf.getSlaveInstanceType().getSpec().hvm) { log.error("Slave Instance type does not support paravirtual images."); // Paravirtual Image but cluster instance type allCheck = false; } } } } if (slave && master) { log.info(I, "Master and Slave AMIs have been found."); } else { log.error("Master and Slave AMIs could not be found."); allCheck = false; } return allCheck; } catch (AmazonServiceException e) { log.error("Master and Slave AMIs could not be found. Check if the ID is malformed (ami-XXXXXXXX)."); allCheck = false; return allCheck; } }
From source file:eu.optimis.interopt.provider.aws.AmazonClient.java
License:Apache License
public String describeImage(String imageId) { AmazonEC2 ec2 = getAmazonEC2Client(); DescribeImagesRequest req = new DescribeImagesRequest(); List<Filter> filters = new ArrayList<Filter>(); List<String> imgs = new ArrayList<String>(); imgs.add(imageId);/*from w w w . j ava2s. c o m*/ filters.add(new Filter("image-id", imgs)); req.setFilters(filters); DescribeImagesResult res = ec2.describeImages(req); return res.getImages().get(0).getName() + "----" + res.getImages().get(0).getDescription(); }
From source file:eu.optimis.monitoring.amazoncollector.MeasurementsHelper.java
License:Apache License
private Measurement getOSRelease(String ami_id, String instance_id, String service_id) { AmazonEC2 ec2 = getAmazonEC2Client(); DescribeImagesRequest req = new DescribeImagesRequest(); List<String> ids = new LinkedList<String>(); ids.add(ami_id);/* w ww . ja v a 2 s.co m*/ req.setImageIds(ids); DescribeImagesResult res = ec2.describeImages(req); String platform = res.getImages().get(0).getPlatform(); if (platform == null || platform.isEmpty()) { platform = "linux"; } return new Measurement("os_release", platform, "", new Date(), instance_id, service_id); }
From source file:fr.xebia.demo.amazon.aws.AmazonAwsShutdowner.java
License:Apache License
public void test() { String ownerId = "self"; boolean dryRun = true; // RETRIEVE TAGS Map<String, Map<String, String>> tagsByResourceId = new MapMaker() .makeComputingMap(new Function<String, Map<String, String>>() { @Override/*from w w w .jav a2 s . c o m*/ public Map<String, String> apply(String input) { return Maps.newHashMap(); } }); for (TagDescription tagDescription : ec2.describeTags().getTags()) { tagsByResourceId.get(tagDescription.getResourceId()).put(tagDescription.getKey(), tagDescription.getValue()); } // RDS INSTANCEs for (DBInstance dbInstance : rds.describeDBInstances().getDBInstances()) { Map<String, String> instanceTags = tagsByResourceId.get(dbInstance.getDBInstanceIdentifier()); logger.debug("Tags for " + dbInstance + ": " + instanceTags); } // EC2 INSTANCES List<Instance> instancesAlreadyNotStarted = Lists.newArrayList(); List<Instance> instancesToStop = Lists.newArrayList(); List<Instance> instancesToTerminate = Lists.newArrayList(); List<Instance> instancesToKeepUnchanged = Lists.newArrayList(); for (Reservation reservation : ec2.describeInstances().getReservations()) { for (Instance instance : reservation.getInstances()) { Map<String, String> instanceTags = tagsByResourceId.get(instance.getInstanceId()); logger.debug("Tags for {}: {}", instance, instanceTags); if ("terminated".equals(instance.getState().getName())) { instancesToKeepUnchanged.add(instance); } else if (instanceTags.containsKey(TAG_DO_NOT_STOP)) { instancesToKeepUnchanged.add(instance); } else if (instanceTags.containsKey(TAG_DO_NOT_TERMINATE)) { if ("started".equals(instance.getState().getName())) { instancesToStop.add(instance); } else { instancesAlreadyNotStarted.add(instance); } } else { instancesToTerminate.add(instance); } } } System.out.println("EC2 INSTANCES"); if (dryRun) { System.out.println("DRY RUN Terminate:" + instancesToTerminate); System.out.println("DRY RUN Stop:" + instancesToStop); System.out.println("DRY RUN No need to stop:" + instancesAlreadyNotStarted); System.out.println("DRY RUN Keep unchanged:" + instancesToKeepUnchanged); } else { System.out.println("Terminate:" + instancesToTerminate); if (!instancesToTerminate.isEmpty()) { ec2.terminateInstances(new TerminateInstancesRequest( Lists.transform(instancesToTerminate, TO_INSTANCE_ID_FUNCTION))); } System.out.println("Stop:" + instancesToStop); if (!instancesToStop.isEmpty()) { ec2.stopInstances( new StopInstancesRequest(Lists.transform(instancesToStop, TO_INSTANCE_ID_FUNCTION))); } System.out.println("No need to stop:" + instancesAlreadyNotStarted); System.out.println("Keep unchanged:" + instancesToKeepUnchanged); } // AMIs System.out.println("AMIs"); List<Image> imagesToDeRegister = Lists.newArrayList(); List<Image> imagesToKeep = Lists.newArrayList(); for (Image image : ec2.describeImages(new DescribeImagesRequest().withOwners(ownerId)).getImages()) { Map<String, String> imageTags = tagsByResourceId.get(image.getImageId()); logger.debug("Tags for {}: {}", image, imageTags); if (imageTags.containsKey(TAG_DO_NOT_DEREGISTER)) { imagesToKeep.add(image); } else { imagesToDeRegister.add(image); } } if (dryRun) { System.out.println("DRY RUN Deregister:" + imagesToDeRegister); System.out.println("DRY RUN Keep:" + imagesToKeep); } else { System.out.println("Deregister:" + imagesToDeRegister); for (Image image : imagesToDeRegister) { ec2.deregisterImage(new DeregisterImageRequest(image.getImageId())); } System.out.println("Keep:" + imagesToKeep); } List<String> imageIdsToKeep = Lists.transform(imagesToKeep, TO_IMAGE_ID_FUNCTION); // SNAPSHOTS System.out.println("SNAPSHOTs"); for (Snapshot snapshot : ec2.describeSnapshots(new DescribeSnapshotsRequest().withOwnerIds(ownerId)) .getSnapshots()) { if (snapshot.getDescription().contains("Created by CreateImage")) { boolean associatedWithAnImageToKeep = false; for (String imageIdToKeep : imageIdsToKeep) { if (snapshot.getDescription().contains(imageIdToKeep)) { associatedWithAnImageToKeep = true; break; } } if (associatedWithAnImageToKeep) { System.out.println("Keep: " + snapshot); } else { if (dryRun) { System.out.println("DRY RUN delete: " + snapshot); } else { System.out.println("Delete: " + snapshot); ec2.deleteSnapshot(new DeleteSnapshotRequest(snapshot.getSnapshotId())); } } } } // ELASTIC LOAD BALANCERs // no tags on elb }
From source file:integratedtoolkit.connectors.amazon.EC2.java
License:Apache License
private String classifyMachine(int CPU, float memory, float disk, String diskImage) { DescribeImagesRequest dirq = new DescribeImagesRequest(); LinkedList<String> amiIds = new LinkedList<String>(); amiIds.add(diskImage);/* ww w . ja v a 2s.c om*/ dirq.setImageIds(amiIds); DescribeImagesResult dirt = client.describeImages(dirq); String imageArchitecture = ""; for (Image image : dirt.getImages()) { imageArchitecture = image.getArchitecture(); } if (imageArchitecture.compareTo("i386") == 0) { if (CPU <= smallCPUCount && memory <= smallMemory && disk <= smallDisk) { return smallCode; } return null; } if (CPU <= largeCPUCount && memory <= largeMemory && disk <= largeDisk) { return largeCode; } return xlargeCode; }
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);/* ww w . j a va2 s .c om*/ 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:jp.aws.test.ec2.EC2Instance.java
License:Apache License
/** * AMI?//from w ww. ja 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:jp.primecloud.auto.aws.typica.EucaEc2Client.java
License:Open Source License
@Override public DescribeImagesResult describeImages() { return describeImages(new DescribeImagesRequest()); }
From source file:jp.primecloud.auto.process.aws.AwsCommonProcess.java
License:Open Source License
public Image describeImage(AwsProcessClient awsProcessClient, String imageId) { DescribeImagesRequest request = new DescribeImagesRequest(); request.withImageIds(imageId);//from w w w . j ava2 s .c o m DescribeImagesResult result = awsProcessClient.getEc2Client().describeImages(request); List<Image> images = result.getImages(); if (images.isEmpty()) { return null; } return images.get(0); }
From source file:net.firejack.aws.web.controller.AWSController.java
License:Apache License
@ResponseBody @ExceptionHandler(Exception.class) @RequestMapping(value = "region/{region}", method = RequestMethod.GET) public InstanceDetails changeRegion(@PathVariable("region") String region) { if (amazonEC2 == null) throw new AmazonServiceException("Amazon service can't initialize"); if (region.isEmpty()) throw new AmazonServiceException("Region is empty"); amazonEC2.setRegion(RegionUtils.getRegion(region)); InstanceDetails details = new InstanceDetails(); DescribeImagesRequest request = new DescribeImagesRequest(); request.setOwners(Arrays.asList(owner)); DescribeImagesResult result = amazonEC2.describeImages(request); List<Image> images = result.getImages(); List<Dropdown> amis = new ArrayList<Dropdown>(images.size()); for (Image image : images) amis.add(new Dropdown(image.getImageId(), image.getName())); details.setAmis(amis);//from w w w . j av a2 s. c o m DescribeSecurityGroupsResult securityGroupsResult = amazonEC2.describeSecurityGroups(); List<SecurityGroup> securityGroups = securityGroupsResult.getSecurityGroups(); List<Dropdown> groups = new ArrayList<Dropdown>(securityGroups.size()); for (SecurityGroup group : securityGroups) groups.add(new Dropdown(group.getGroupId(), group.getGroupName())); details.setSecurityGroups(groups); DescribeKeyPairsResult keyPairsResult = amazonEC2.describeKeyPairs(); List<KeyPairInfo> keyPairInfos = keyPairsResult.getKeyPairs(); List<Dropdown> keyPairs = new ArrayList<Dropdown>(keyPairInfos.size()); for (KeyPairInfo keyPairInfo : keyPairInfos) keyPairs.add(new Dropdown(keyPairInfo.getKeyName(), keyPairInfo.getKeyName())); details.setKeys(keyPairs); details.setInstanceTypes(InstanceType.values()); return details; }