in infrastructure/src/main/java/org/apache/geode/infrastructure/aws/LaunchCluster.java [439:466]
private static Image getNewestImage() {
DateTimeFormatter inputFormatter =
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH);
String purpose = System.getProperty("PURPOSE", "geode-benchmarks");
if (purpose.isEmpty()) {
purpose = "geode-benchmarks";
}
// Find an appropriate AMI to launch our cluster with
List<Image> benchmarkImages = ec2.describeImages(
DescribeImagesRequest
.builder()
.filters(Filter.builder().name("tag:purpose").values(purpose).build())
.build())
.images();
// benchmarkImages is an immutable list so we have to copy it
List<Image> sortableImages = new ArrayList<>(benchmarkImages);
sortableImages.sort(
Comparator.comparing((Image i) -> LocalDateTime.parse(i.creationDate(), inputFormatter)));
if (sortableImages.size() < 1) {
System.out.println("No suitable AMIs available, exiting.");
System.exit(1);
}
return sortableImages.get(sortableImages.size() - 1);
}