use of com.amazonaws.services.s3.model.Filter in project checker-framework by typetools.
the class RequestCreatedInCall method test.
void test(AmazonEC2 ec2) {
List<Filter> filters = new ArrayList<>();
filters.add(new Filter().withName("foo").withValues("bar"));
DescribeImagesResult describeImagesResult = ec2.describeImages(new DescribeImagesRequest().withOwners("martin").withFilters(filters));
}
use of com.amazonaws.services.s3.model.Filter in project bender by Nextdoor.
the class BaseHandler method processInternal.
/**
* Method called by Handler implementations to process records.
*
* @param context Lambda invocation context.
* @throws HandlerException
*/
private void processInternal(Context context) throws HandlerException {
Stat runtime = new Stat("runtime.ns");
runtime.start();
Source source = this.getSource();
DeserializerProcessor deser = source.getDeserProcessor();
List<OperationProcessor> operations = source.getOperationProcessors();
List<String> containsStrings = source.getContainsStrings();
List<Pattern> regexPatterns = source.getRegexPatterns();
AtomicInteger totalEventsBytes = new AtomicInteger(0);
AtomicInteger totalSerializedBytes = new AtomicInteger(0);
this.getIpcService().setContext(context);
Iterator<InternalEvent> events = this.getInternalEventIterator();
/*
* For logging purposes log when the function started running
*/
this.monitor.invokeTimeNow();
AtomicLong eventCount = new AtomicLong(0);
AtomicLong oldestArrivalTime = new AtomicLong(System.currentTimeMillis());
AtomicLong oldestOccurrenceTime = new AtomicLong(System.currentTimeMillis());
/*
* eventQueue allows for InternalEvents to be pulled from the Iterator and published to a
* stream. A Thread is created that loops through events in the iterator and offers them to the
* queue. Note that offering will be blocked if the queue is full (back pressure being applied).
* When the iterator reaches the end (hasNext = false) the queue is closed.
*/
this.eventQueue = new Queue<InternalEvent>(new LinkedBlockingQueue<InternalEvent>(this.queueSize));
/*
* Thread will live for duration of invocation and supply Stream with events.
*/
new Thread(new Runnable() {
@Override
public void run() {
while (events.hasNext()) {
try {
eventQueue.offer(events.next());
} catch (Queue.ClosedQueueException e) {
break;
}
}
try {
eventQueue.close();
} catch (Queue.ClosedQueueException e) {
}
}
}).start();
Stream<InternalEvent> input = this.eventQueue.jdkStream();
/*
* Filter out raw events
*/
Stream<InternalEvent> filtered = input.filter(/*
* Perform regex filter
*/
ievent -> {
eventCount.incrementAndGet();
String eventStr = ievent.getEventString();
totalEventsBytes.addAndGet(eventStr.length());
/*
* Apply String contains filters before deserialization
*/
for (String containsString : containsStrings) {
if (eventStr.contains(containsString)) {
return false;
}
}
/*
* Apply regex patterns before deserialization
*/
for (Pattern regexPattern : regexPatterns) {
Matcher m = regexPattern.matcher(eventStr);
if (m.find()) {
return false;
}
}
return true;
});
/*
* Deserialize
*/
Stream<InternalEvent> deserialized = filtered.map(ievent -> {
DeserializedEvent data = deser.deserialize(ievent.getEventString());
if (data == null || data.getPayload() == null) {
logger.warn("Failed to deserialize: " + ievent.getEventString());
return null;
}
ievent.setEventObj(data);
return ievent;
}).filter(Objects::nonNull);
/*
* Perform Operations
*/
Stream<InternalEvent> operated = deserialized;
for (OperationProcessor operation : operations) {
operated = operation.perform(operated);
}
/*
* Serialize
*/
Stream<InternalEvent> serialized = operated.map(ievent -> {
try {
String raw = this.ser.serialize(this.wrapper.getWrapped(ievent));
totalSerializedBytes.addAndGet(raw.length());
ievent.setSerialized(raw);
return ievent;
} catch (SerializationException e) {
return null;
}
}).filter(Objects::nonNull);
/*
* Transport
*/
AtomicBoolean abortEarly = new AtomicBoolean(false);
serialized.takeWhile(internalEvent -> !abortEarly.get()).forEach(internalEvent -> {
updateOldest(oldestArrivalTime, internalEvent.getArrivalTime());
updateOldest(oldestOccurrenceTime, internalEvent.getEventTime());
try {
this.getIpcService().add(internalEvent);
} catch (TransportException e) {
logger.warn("error adding event", e);
abortEarly.set(true);
}
});
/*
* Wait for transporters to finish
*/
try {
this.getIpcService().flush();
} catch (TransportException e) {
throw new HandlerException("encounted TransportException while shutting down ipcService", e);
} catch (InterruptedException e) {
throw new HandlerException("thread was interruptedwhile shutting down ipcService", e);
} finally {
String evtSource = this.getSourceName();
runtime.stop();
if (!this.skipWriteStats) {
writeStats(eventCount.get(), oldestArrivalTime.get(), oldestOccurrenceTime.get(), evtSource, runtime, totalEventsBytes.get(), totalSerializedBytes.get());
}
if (logger.isTraceEnabled()) {
getGCStats();
}
}
}
use of com.amazonaws.services.s3.model.Filter in project photon-model by vmware.
the class AWSRemoteCleanup method deleteNetworkInterfaces.
private void deleteNetworkInterfaces(String vpcId, AmazonEC2 usEastEc2Client) {
DescribeNetworkInterfacesRequest networkInterfacesRequest = new DescribeNetworkInterfacesRequest().withFilters(new Filter(VPC_KEY, Collections.singletonList(vpcId)));
DescribeNetworkInterfacesResult networkInterfacesResult = usEastEc2Client.describeNetworkInterfaces(networkInterfacesRequest);
networkInterfacesResult.getNetworkInterfaces().forEach(networkInterface -> {
DescribeAddressesRequest addressesRequest = new DescribeAddressesRequest().withFilters(new Filter(NETWORK_INTERFACE_KEY, Collections.singletonList(networkInterface.getNetworkInterfaceId())));
DescribeAddressesResult addressResult = usEastEc2Client.describeAddresses(addressesRequest);
addressResult.getAddresses().forEach(address -> {
// There is no hardcore dependency on EIP, but we may run out of addresses and
// would be good to disassociate followed by releasing them.
DisassociateAddressRequest disassociateAddressRequest = new DisassociateAddressRequest().withAssociationId(address.getAssociationId());
usEastEc2Client.disassociateAddress(disassociateAddressRequest);
ReleaseAddressRequest releaseAddressRequest = new ReleaseAddressRequest().withAllocationId(address.getAllocationId());
usEastEc2Client.releaseAddress(releaseAddressRequest);
});
// Deleting Network Interfaces
DeleteNetworkInterfaceRequest deleteNetworkInterfaceRequest = new DeleteNetworkInterfaceRequest().withNetworkInterfaceId(networkInterface.getNetworkInterfaceId());
this.host.log("Terminating stale NIC: %s", networkInterface.getNetworkInterfaceId());
usEastEc2Client.deleteNetworkInterface(deleteNetworkInterfaceRequest);
});
}
use of com.amazonaws.services.s3.model.Filter in project photon-model by vmware.
the class AWSRemoteCleanup method deleteInternetGateways.
private void deleteInternetGateways(String vpcId, AmazonEC2 usEastEc2Client) {
DescribeInternetGatewaysRequest internetGatewaysRequest = new DescribeInternetGatewaysRequest().withFilters(new Filter(ATTACHMENT_VPC_KEY, Collections.singletonList(vpcId)));
DescribeInternetGatewaysResult internetGatewaysResult = usEastEc2Client.describeInternetGateways(internetGatewaysRequest);
internetGatewaysResult.getInternetGateways().forEach(internetGateway -> {
DetachInternetGatewayRequest detachInternetGatewayRequest = new DetachInternetGatewayRequest().withInternetGatewayId(internetGateway.getInternetGatewayId());
detachInternetGatewayRequest.setVpcId(vpcId);
usEastEc2Client.detachInternetGateway(detachInternetGatewayRequest);
DeleteInternetGatewayRequest deleteInternetGatewayRequest = new DeleteInternetGatewayRequest().withInternetGatewayId(internetGateway.getInternetGatewayId());
this.host.log("Terminating stale internet gateway: %s", internetGateway.getInternetGatewayId());
usEastEc2Client.deleteInternetGateway(deleteInternetGatewayRequest);
});
}
use of com.amazonaws.services.s3.model.Filter in project photon-model by vmware.
the class AWSRemoteCleanup method deleteSecurityGroups.
private void deleteSecurityGroups(String vpcId, AmazonEC2 usEastEc2Client) {
DescribeSecurityGroupsRequest securityGroupsRequest = new DescribeSecurityGroupsRequest().withFilters(new Filter(VPC_KEY, Collections.singletonList(vpcId)));
DescribeSecurityGroupsResult securityGroupsResult = usEastEc2Client.describeSecurityGroups(securityGroupsRequest);
securityGroupsResult.getSecurityGroups().forEach(securityGroup -> {
if (!(securityGroup.getGroupName().equalsIgnoreCase(DEFAULT_TAG))) {
DeleteSecurityGroupRequest deleteSecurityGroupRequest = new DeleteSecurityGroupRequest().withGroupId(securityGroup.getGroupId());
this.host.log("Terminating stale security group: %s", securityGroup.getGroupId());
usEastEc2Client.deleteSecurityGroup(deleteSecurityGroupRequest);
}
});
}
Aggregations