in infrastructure/src/main/java/org/apache/geode/infrastructure/aws/ExpireClusters.java [56:76]
private static List<String> findExpiredClusters() {
Instant expirationTime = getExpirationTime().toInstant();
DescribeInstancesResponse describeInstancesResponse = ec2.describeInstances(
DescribeInstancesRequest.builder()
.filters(Filter.builder()
.name("instance-state-name")
.values("running")
.build())
.build());
Stream<Instance> instances = describeInstancesResponse.reservations().stream()
.flatMap(reservation -> reservation.instances().stream());
Stream<Instance> expiredInstances = instances
.filter(instance -> isBefore(instance.getValueForField("LaunchTime", Instant.class),
expirationTime));
Stream<String> tags = expiredInstances.map(ExpireClusters::getTagForInstance);
List<String> distinctTags =
tags.distinct().filter(tag -> !tag.isEmpty()).collect(Collectors.toList());
return distinctTags;
}