in imageCopier/src/main/scala/com/gu/imageCopier/AmiActions.scala [55:80]
def getImagesAndEbsSnapshots(
amis: List[Ami]
)(implicit ec2Client: Ec2Client): Attempt[List[(String, List[String])]] = {
if (amis.nonEmpty) {
Attempt.catchNonFatal {
val request = DescribeImagesRequest.builder
.imageIds(amis.map(_.id).asJava)
.build()
println(
s"Getting list of images and EBS snapshots with request $request"
)
val response = ec2Client.describeImages(request)
println(s"Raw result: $response")
val ids = response.images.asScala.map { image =>
image.imageId -> image.blockDeviceMappings.asScala.toList
.flatMap(mapping => Option(mapping.ebs).map(_.snapshotId))
}
println(s"List of AMIs and snapshots: $ids")
ids.toList
} { case ace: SdkServiceException =>
AwsSdkFailure(ace)
}
} else {
Attempt.Right(Nil)
}
}