Example usage for com.amazonaws.services.ec2.model Filter Filter

List of usage examples for com.amazonaws.services.ec2.model Filter Filter

Introduction

In this page you can find the example usage for com.amazonaws.services.ec2.model Filter Filter.

Prototype

public Filter() 

Source Link

Document

Default constructor for Filter object.

Usage

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));
}