Search in sources :

Example 26 with Filter

use of com.amazonaws.services.s3.model.Filter in project emodb by bazaarvoice.

the class StashReader method getS3ObjectSummaries.

private Iterator<S3ObjectSummary> getS3ObjectSummaries(final String prefix) {
    final int prefixLength = prefix.length();
    Iterator<S3ObjectSummary> allSummaries = Iterators.concat(new AbstractIterator<Iterator<S3ObjectSummary>>() {

        String marker = null;

        ObjectListing response;

        protected Iterator<S3ObjectSummary> computeNext() {
            if (response == null || response.isTruncated()) {
                response = _s3.listObjects(new ListObjectsRequest().withBucketName(_bucket).withPrefix(prefix).withDelimiter("/").withMarker(marker).withMaxKeys(1000));
                marker = response.getNextMarker();
                return response.getObjectSummaries().iterator();
            }
            return endOfData();
        }
    });
    // Sometimes the prefix itself can come back as a result.  Filter that entry out.
    return Iterators.filter(allSummaries, new Predicate<S3ObjectSummary>() {

        @Override
        public boolean apply(S3ObjectSummary summary) {
            return summary.getKey().length() > prefixLength;
        }
    });
}
Also used : ListObjectsRequest(com.amazonaws.services.s3.model.ListObjectsRequest) PeekingIterator(com.google.common.collect.PeekingIterator) Iterator(java.util.Iterator) AbstractIterator(com.google.common.collect.AbstractIterator) ObjectListing(com.amazonaws.services.s3.model.ObjectListing) S3ObjectSummary(com.amazonaws.services.s3.model.S3ObjectSummary)

Example 27 with Filter

use of com.amazonaws.services.s3.model.Filter in project kafka-connect-file-pulse by streamthoughts.

the class AmazonS3FileSystemListing method listObjects.

/**
 * {@inheritDoc}
 */
@Override
public Collection<FileObjectMeta> listObjects() {
    final ListObjectsRequest request = new ListObjectsRequest();
    request.setBucketName(config.getAwsS3BucketName());
    if (isNotBlank(config.getAwsS3BucketPrefix()))
        request.setPrefix(config.getAwsS3BucketPrefix());
    final List<FileObjectMeta> objectMetaList = new LinkedList<>();
    ObjectListing objectListing;
    try {
        do {
            LOG.debug("Sending new request for listing objects: bucketName={}, prefix={}", request.getBucketName(), request.getPrefix());
            objectListing = client.listObjects(request);
            objectMetaList.addAll(objectListing.getObjectSummaries().stream().map(s3ObjectSummary -> new S3BucketKey(s3ObjectSummary.getBucketName(), s3ObjectSummary.getKey())).map(s3Storage::getObjectMetadata).filter(Objects::nonNull).collect(Collectors.toList()));
            String marker = objectListing.getNextMarker();
            if (marker != null) {
                LOG.debug("Object listing is truncated, next marker is {}", marker);
                request.setMarker(marker);
            }
        } while (objectListing.isTruncated());
    } catch (AmazonServiceException e) {
        LOG.error("Failed to list objects from the Amazon S3 bucket '{}'. " + "Error occurred while processing the request: {}", config.getAwsS3BucketName(), e);
    } catch (SdkClientException e) {
        LOG.error("Failed to list objects from the Amazon S3 bucket '{}'. " + "Error occurred while making the request or handling the response: {}", config.getAwsS3BucketName(), e);
    }
    return filter == null ? objectMetaList : filter.filterFiles(objectMetaList);
}
Also used : ListObjectsRequest(com.amazonaws.services.s3.model.ListObjectsRequest) FileObjectMeta(io.streamthoughts.kafka.connect.filepulse.source.FileObjectMeta) SdkClientException(com.amazonaws.SdkClientException) Objects(java.util.Objects) AmazonServiceException(com.amazonaws.AmazonServiceException) ObjectListing(com.amazonaws.services.s3.model.ObjectListing) LinkedList(java.util.LinkedList)

Example 28 with Filter

use of com.amazonaws.services.s3.model.Filter in project spring-cloud-aws by awspring.

the class AutoDetectingStackNameProvider method autoDetectStackName.

private String autoDetectStackName(String instanceId) {
    Assert.notNull(instanceId, "No valid instance id defined");
    DescribeStackResourcesResult describeStackResourcesResult = this.amazonCloudFormationClient.describeStackResources(new DescribeStackResourcesRequest().withPhysicalResourceId(instanceId));
    if (describeStackResourcesResult != null && describeStackResourcesResult.getStackResources() != null && !describeStackResourcesResult.getStackResources().isEmpty()) {
        return describeStackResourcesResult.getStackResources().get(0).getStackName();
    }
    if (this.amazonEc2Client != null) {
        DescribeTagsResult describeTagsResult = this.amazonEc2Client.describeTags(new DescribeTagsRequest().withFilters(new Filter("resource-id", Collections.singletonList(instanceId)), new Filter("resource-type", Collections.singletonList("instance")), new Filter("key", Collections.singletonList("aws:cloudformation:stack-name"))));
        if (describeTagsResult != null && describeTagsResult.getTags() != null && !describeTagsResult.getTags().isEmpty()) {
            return describeTagsResult.getTags().get(0).getValue();
        }
    }
    return null;
}
Also used : DescribeTagsRequest(com.amazonaws.services.ec2.model.DescribeTagsRequest) DescribeTagsResult(com.amazonaws.services.ec2.model.DescribeTagsResult) DescribeStackResourcesResult(com.amazonaws.services.cloudformation.model.DescribeStackResourcesResult) Filter(com.amazonaws.services.ec2.model.Filter) DescribeStackResourcesRequest(com.amazonaws.services.cloudformation.model.DescribeStackResourcesRequest)

Example 29 with Filter

use of com.amazonaws.services.s3.model.Filter in project spring-cloud-aws by awspring.

the class AmazonEc2InstanceUserTagsFactoryBean method createInstance.

@Override
protected Map<String, String> createInstance() throws Exception {
    LinkedHashMap<String, String> properties = new LinkedHashMap<>();
    DescribeTagsResult tags = this.amazonEc2.describeTags(new DescribeTagsRequest().withFilters(new Filter("resource-id", Collections.singletonList(this.idProvider.getCurrentInstanceId())), new Filter("resource-type", Collections.singletonList("instance"))));
    for (TagDescription tag : tags.getTags()) {
        properties.put(tag.getKey(), tag.getValue());
    }
    return properties;
}
Also used : DescribeTagsRequest(com.amazonaws.services.ec2.model.DescribeTagsRequest) DescribeTagsResult(com.amazonaws.services.ec2.model.DescribeTagsResult) Filter(com.amazonaws.services.ec2.model.Filter) TagDescription(com.amazonaws.services.ec2.model.TagDescription) LinkedHashMap(java.util.LinkedHashMap)

Example 30 with Filter

use of com.amazonaws.services.s3.model.Filter in project Gatekeeper by FINRAOS.

the class SGLookupService method loadSgsForAccountRegion.

private List<String> loadSgsForAccountRegion(AWSEnvironment environment) {
    logger.info("Grabbing SGs for environment " + environment);
    DescribeSecurityGroupsRequest describeSecurityGroupsRequest = new DescribeSecurityGroupsRequest();
    Filter groupNameFilter = new Filter();
    groupNameFilter.setName("group-name");
    groupNameFilter.setValues(Arrays.asList(securityGroupNames.split(",")));
    AmazonEC2Client amazonEC2Client = awsSessionService.getEC2Session(environment);
    DescribeSecurityGroupsResult result = amazonEC2Client.describeSecurityGroups(describeSecurityGroupsRequest.withFilters(groupNameFilter));
    logger.info("found " + result.getSecurityGroups().size() + " Security Groups with name(s) '" + securityGroupNames + "'");
    return result.getSecurityGroups().stream().map(SecurityGroup::getGroupId).collect(Collectors.toList());
}
Also used : AmazonEC2Client(com.amazonaws.services.ec2.AmazonEC2Client) DescribeSecurityGroupsRequest(com.amazonaws.services.ec2.model.DescribeSecurityGroupsRequest) Filter(com.amazonaws.services.ec2.model.Filter) DescribeSecurityGroupsResult(com.amazonaws.services.ec2.model.DescribeSecurityGroupsResult)

Aggregations

Filter (com.amazonaws.services.ec2.model.Filter)96 ArrayList (java.util.ArrayList)70 List (java.util.List)52 Collectors (java.util.stream.Collectors)46 IOException (java.io.IOException)41 HashMap (java.util.HashMap)38 Map (java.util.Map)35 AmazonS3 (com.amazonaws.services.s3.AmazonS3)34 Set (java.util.Set)31 DescribeInstancesRequest (com.amazonaws.services.ec2.model.DescribeInstancesRequest)30 S3ObjectSummary (com.amazonaws.services.s3.model.S3ObjectSummary)27 Instance (com.amazonaws.services.ec2.model.Instance)26 HashSet (java.util.HashSet)26 Reservation (com.amazonaws.services.ec2.model.Reservation)24 Collections (java.util.Collections)23 DescribeInstancesResult (com.amazonaws.services.ec2.model.DescribeInstancesResult)21 ObjectListing (com.amazonaws.services.s3.model.ObjectListing)21 DescribeSubnetsRequest (com.amazonaws.services.ec2.model.DescribeSubnetsRequest)20 Entry (java.util.Map.Entry)20 Tag (com.amazonaws.services.ec2.model.Tag)18