internal DescribeImagesResponse DescribeImages(DescribeImagesRequest request) { var marshaller = new DescribeImagesRequestMarshaller(); var unmarshaller = DescribeImagesResponseUnmarshaller.Instance; return Invoke<DescribeImagesRequest,DescribeImagesResponse>(request, marshaller, unmarshaller); }
//this quite an expensive operation (3M of data retrieved) - so I added caching support public static List<Image> getImagesList(this API_AmazonEC2 amazonEC2, AmazonEC2Client ec2Client) { if (amazonEC2.CachedImageListRequest.fileExists()) return amazonEC2.CachedImageListRequest.load<List<Amazon.EC2.Model.Image>>(); var describeImagesRequest = new DescribeImagesRequest(); "Retrieving ImagesList from Amazon..".info(); var images = ec2Client.DescribeImages(describeImagesRequest) .DescribeImagesResult.Image; if (images.isNull() || images.size()==0) { "in getImagesList, there was an error retrieving list (are we online?)".error(); } else { amazonEC2.CachedImageListRequest = images.save(); "The Image List was saved to : {0}".info(amazonEC2.CachedImageListRequest); } return images; }