List of usage examples for com.amazonaws.services.ec2.model Filter Filter
public Filter()
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); }//ww w .j a va 2 s.c o m }
From source file:com.amazon.kinesis.streaming.agent.processing.processors.AddEC2MetadataConverter.java
License:Open Source License
private void refreshEC2Metadata() { LOGGER.info("Refreshing EC2 metadata"); metadataTimestamp = System.currentTimeMillis(); try {/*from ww w.j a v a2 s .c om*/ EC2MetadataUtils.InstanceInfo info = EC2MetadataUtils.getInstanceInfo(); metadata = new LinkedHashMap<String, Object>(); metadata.put("privateIp", info.getPrivateIp()); metadata.put("availabilityZone", info.getAvailabilityZone()); metadata.put("instanceId", info.getInstanceId()); metadata.put("instanceType", info.getInstanceType()); metadata.put("accountId", info.getAccountId()); metadata.put("amiId", info.getImageId()); metadata.put("region", info.getRegion()); metadata.put("metadataTimestamp", new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").format(new Date(metadataTimestamp))); final AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient(); DescribeTagsResult result = ec2.describeTags(new DescribeTagsRequest() .withFilters(new Filter().withName("resource-id").withValues(info.getInstanceId()))); List<TagDescription> tags = result.getTags(); Map<String, Object> metadataTags = new LinkedHashMap<String, Object>(); for (TagDescription tag : tags) { metadataTags.put(tag.getKey().toLowerCase(), tag.getValue()); } metadata.put("tags", metadataTags); } catch (Exception ex) { LOGGER.warn("Error while updating EC2 metadata - " + ex.getMessage() + ", ignoring"); } }
From source file:com.axemblr.provisionr.amazon.activities.RunSpotInstances.java
License:Apache License
@Override public void execute(AmazonEC2 client, Pool pool, DelegateExecution execution) throws Exception { /* before sending a new request, we check to see if we already registered a launch group with the process ID, if yes, we don't re-send the request */ final String businessKey = execution.getProcessBusinessKey(); /* we timeout if requests have already been sent - the activity is being retried. */ Optional<Object> alreadySent = Optional .fromNullable(execution.getVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS)); if (alreadySent.isPresent()) { DescribeSpotInstanceRequestsRequest describeRequest = new DescribeSpotInstanceRequestsRequest() .withFilters(new Filter().withName("launch-group").withValues(businessKey).withName("state") .withValues("open", "active")); Stopwatch stopwatch = new Stopwatch().start(); while (stopwatch.elapsedTime(TimeUnit.MINUTES) < 2) { DescribeSpotInstanceRequestsResult result = client.describeSpotInstanceRequests(describeRequest); List<SpotInstanceRequest> pending = result.getSpotInstanceRequests(); if (pending.size() > 0) { LOG.info("Not resending spot instance requests {} for businessKey: {}.", pending, businessKey); execution.setVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS, collectSpotInstanceRequestIds(pending)); return; }//ww w. j av a 2 s .com LOG.info("The describe call has not returned anything yet, waiting 20s and retrying."); Uninterruptibles.sleepUninterruptibly(20, TimeUnit.SECONDS); } } final RequestSpotInstancesRequest request = createSpotInstancesRequest(pool, execution); execution.setVariable(ProcessVariables.SPOT_REQUESTS_SENT, true); RequestSpotInstancesResult requestResult = client.requestSpotInstances(request); List<String> spotInstanceRequestIds = collectSpotInstanceRequestIds( requestResult.getSpotInstanceRequests()); execution.setVariable(ProcessVariables.SPOT_INSTANCE_REQUEST_IDS, spotInstanceRequestIds); }
From source file:com.cloudera.director.aws.ec2.EC2Provider.java
License:Apache License
/** * Iterates through the instances identified by the specified virtual instance IDs * and calls the specified handler on each instance. * * @param virtualInstanceIds the virtual instance IDs * @param instanceHandler the instance handler *///from w w w. j a va2s .c om private void forEachInstance(Collection<String> virtualInstanceIds, EC2Provider.InstanceHandler instanceHandler) { List<DescribeInstancesResult> results = Lists.newArrayList(); for (List<String> virtualInstanceIdChunk : Iterables.partition(virtualInstanceIds, MAX_TAG_FILTERING_REQUESTS)) { DescribeInstancesResult result = client.describeInstances(new DescribeInstancesRequest() .withFilters(new Filter().withName("tag:" + ResourceTags.CLOUDERA_DIRECTOR_ID.getTagKey()) .withValues(virtualInstanceIdChunk))); results.add(result); } for (DescribeInstancesResult result : results) { forEachInstance(result, instanceHandler); } }
From source file:com.dowdandassociates.gentoo.bootstrap.DefaultBootstrapImageProvider.java
License:Apache License
@Override protected DescribeImagesRequest getRequest() { StringBuilder manifestLocation = new StringBuilder(); manifestLocation.append("*/amzn-ami-"); if ("hvm".equals(imageInfo.getVirtualizationType())) { manifestLocation.append("hvm"); } else {/* w w w .ja v a2 s. co m*/ manifestLocation.append("pv"); } // manifestLocation.append("-????.??.?.*"); manifestLocation.append("-2014.03.?.*"); if ("ebs".equals(imageInfo.getRootDeviceType())) { manifestLocation.append("-ebs"); } else if ("instance-store".equals(imageInfo.getRootDeviceType())) { manifestLocation.append("-s3"); } return new DescribeImagesRequest().withOwners("amazon").withFilters( new Filter().withName("image-type").withValues("machine"), new Filter().withName("virtualization-type").withValues(imageInfo.getVirtualizationType()), new Filter().withName("architecture").withValues(imageInfo.getArchitecture()), new Filter().withName("root-device-type").withValues(imageInfo.getRootDeviceType()), new Filter().withName("manifest-location").withValues(manifestLocation.toString())); }
From source file:com.dowdandassociates.gentoo.bootstrap.DefaultKernelImageProvider.java
License:Apache License
@Override protected DescribeImagesRequest getRequest() { StringBuilder manifestLocation = new StringBuilder(); manifestLocation.append("*pv-grub-"); manifestLocation.append(imageInfo.getBootPartition()); manifestLocation.append("_*"); return new DescribeImagesRequest().withOwners("amazon").withFilters( new Filter().withName("image-type").withValues("kernel"), new Filter().withName("architecture").withValues(imageInfo.getArchitecture()), new Filter().withName("manifest-location").withValues(manifestLocation.toString())); }
From source file:com.dowdandassociates.gentoo.bootstrap.DefaultKeyPairInformation.java
License:Apache License
@PostConstruct private void setup() { boolean nameSet = (null != name); boolean filenameSet = (null != filename); boolean keyExists = false; if (nameSet) { log.info("Checking if key pair \"" + name + "\" exists"); keyExists = !(ec2Client//from w w w.ja v a 2 s . c o m .describeKeyPairs(new DescribeKeyPairsRequest() .withFilters(new Filter().withName("key-name").withValues(name))) .getKeyPairs().isEmpty()); } if (keyExists && !filenameSet) { log.warn("Key pair \"" + name + "\" exists, but private key location is not specified"); keyExists = false; } if (!keyExists) { if (!nameSet) { name = "gentoo-bootstrap-" + DateFormatUtils.formatUTC(System.currentTimeMillis(), "yyyyMMdd'T'HHmmssSSS'Z'"); } if (!filenameSet) { try { filename = Files .createTempFile(name, ".pem", PosixFilePermissions .asFileAttribute(PosixFilePermissions.fromString("rw-------"))) .toString(); } catch (IOException ioe) { log.warn("Cannot create temp file", ioe); filename = name + ".pem"; } } log.info("Creating key pair \"" + name + "\""); CreateKeyPairResult createResult = ec2Client .createKeyPair(new CreateKeyPairRequest().withKeyName(name)); try { log.info("Saving pem file to \"" + filename + "\""); BufferedWriter outfile = new BufferedWriter(new FileWriter(filename)); try { outfile.write(createResult.getKeyPair().getKeyMaterial()); } catch (IOException ioe) { String message = "Error writing to file \"" + filename + "\""; log.error(message, ioe); throw new RuntimeException(message, ioe); } finally { outfile.close(); } } catch (IOException ioe) { String message = "Error opening file \"" + filename + "\""; log.error(message, ioe); throw new RuntimeException(message, ioe); } builtKeyPair = true; log.info("Key pair \"" + name + "\" built"); } else { builtKeyPair = false; log.info("Key pair \"" + name + "\" exists"); } if (filename.startsWith("~" + File.separator)) { filename = System.getProperty("user.home") + filename.substring(1); } }
From source file:com.dowdandassociates.gentoo.bootstrap.DefaultSecurityGroupInformation.java
License:Apache License
@PostConstruct private void setup() { log.info("Checking if security group \"" + groupName + "\" is set up."); DescribeSecurityGroupsResult describeResult = ec2Client .describeSecurityGroups(new DescribeSecurityGroupsRequest().withFilters( new Filter().withName("group-name").withValues(groupName), new Filter().withName("ip-permission.cidr").withValues(cidr), new Filter().withName("ip-permission.from-port").withValues(new Integer(port).toString()), new Filter().withName("ip-permission.to-port").withValues(new Integer(port).toString()), new Filter().withName("ip-permission.protocol").withValues("tcp"))); if (!describeResult.getSecurityGroups().isEmpty()) { groupId = describeResult.getSecurityGroups().get(0).getGroupId(); } else {/*from w ww.j a v a 2 s.c o m*/ log.info("Security group \"" + groupName + "\" is not set up. Checking if it exists."); describeResult = ec2Client.describeSecurityGroups(new DescribeSecurityGroupsRequest() .withFilters(new Filter().withName("group-name").withValues(groupName))); if (!describeResult.getSecurityGroups().isEmpty()) { log.info("Security group \"" + groupName + "\" exists."); groupId = describeResult.getSecurityGroups().get(0).getGroupId(); } else { log.info("Security group \"" + groupName + "\" does not exists. Creating it."); groupId = ec2Client.createSecurityGroup( new CreateSecurityGroupRequest().withGroupName(groupName).withDescription(description)) .getGroupId(); } log.info("Authorizing ingress rules for \"" + groupName + "\"."); ec2Client.authorizeSecurityGroupIngress(new AuthorizeSecurityGroupIngressRequest() .withGroupName(groupName).withIpPermissions(new IpPermission().withIpProtocol("tcp") .withFromPort(port).withToPort(port).withIpRanges(cidr))); } log.info("Security group \"" + groupName + "\" is set up."); }
From source file:com.dowdandassociates.gentoo.bootstrap.SimpleBootstrapInstanceInformationProvider.java
License:Apache License
@Override protected Optional<Instance> generateInstance() { log.info("Get Bootstrap Instance"); if (null == instanceId.get()) { return Optional.absent(); }// w ww. j a v a 2 s . co m DescribeInstancesResult result = getEc2Client().describeInstances(new DescribeInstancesRequest() .withFilters(new Filter().withName("instance-id").withValues(instanceId.get()))); if (result.getReservations().isEmpty()) { return Optional.absent(); } if (result.getReservations().get(0).getInstances().isEmpty()) { return Optional.absent(); } return Optional.fromNullable(result.getReservations().get(0).getInstances().get(0)); }
From source file:com.dowdandassociates.gentoo.bootstrap.SimpleBootstrapInstanceInformationProvider.java
License:Apache License
@Override protected Optional<Volume> generateVolume(Optional<Instance> instance) { log.info("Get Bootstrap Volume"); if (null == volumeId.get()) { return Optional.absent(); }//ww w.ja v a2s .c om DescribeVolumesResult result = getEc2Client().describeVolumes(new DescribeVolumesRequest() .withFilters(new Filter().withName("volume-id").withValues(volumeId.get()))); if (result.getVolumes().isEmpty()) { return Optional.absent(); } return Optional.fromNullable(result.getVolumes().get(0)); }