public static void DescribeImages(AmazonEC2Client client) { var owners = new List <String>(); owners.Add("amazon"); var filterOwner = new Filter("owner-alias", owners); var platforms = new List <string>(); platforms.Add("windows"); var filterPlatform = new Filter("platform", platforms); var architectures = new List <string>(); architectures.Add("x86_64"); var filterArchitecture = new Filter("architecture", architectures); var request = new DescribeImagesRequest(); request.Filters.Add(filterOwner); request.Filters.Add(filterPlatform); // request.ExecutableUsers.Add("self"); request.ImageIds.Add("ami-1712d877"); List <Image> result = client.DescribeImages(request).Images; foreach (Image img in result) { Console.WriteLine("{0}: \t{1})", img.ImageId, img.Name); } }
public List <Image> DescribeImages() { try { AWSModel.DescribeImagesRequest request = new AWSModel.DescribeImagesRequest(); AWSModel.DescribeImagesResponse response = ec2.DescribeImages(request); List <Image> images = new List <Image>(); if (response != null) { foreach (AWSModel.Image image in response.DescribeImagesResult.Image) { if (image.ImageType.Equals("machine")) { Image vmImage = new Image(); vmImage.ImageId = image.ImageId; vmImage.Name = image.ImageLocation; vmImage.State = image.ImageState; images.Add(vmImage); } } } return(images); } catch (WebException e) { throw new MonoscapeEC2Exception(e.Message, e); } catch (AmazonEC2Exception e) { throw new MonoscapeEC2Exception(e.Message, e); } }
DescribeImagesResponse GetAMIs(List <Filter> searchFilters) { DescribeImagesResponse result = null; using (AmazonEC2Client EC2client = new AmazonEC2Client(creds)) { DescribeImagesRequest rq = new DescribeImagesRequest(); rq.Filters = searchFilters; result = EC2client.DescribeImages(rq); } return(result); }
private static void ListCustomAMI(AmazonEC2Client ec2Client) { DescribeImagesRequest request = new DescribeImagesRequest() { Owners = new List <string>() { "271640224276" } }; Console.WriteLine("My AMIs:\n-----"); DescribeImagesResponse response = ec2Client.DescribeImages(request); foreach (var r in response.Images) { Console.WriteLine(r.ImageId + ", " + r.Name + ", " + r.Architecture); } }
public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems) { AmazonEC2Config config = new AmazonEC2Config(); config.RegionEndpoint = region; ConfigureClient(config); AmazonEC2Client client = new AmazonEC2Client(creds, config); DescribeImagesResponse resp = new DescribeImagesResponse(); DescribeImagesRequest req = new DescribeImagesRequest { }; resp = client.DescribeImages(req); CheckError(resp.HttpStatusCode, "200"); foreach (var obj in resp.Images) { AddObject(obj); } }
//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); }
private static string GetInstancesFromCustomAMI(AmazonEC2Client ec2Client) { DescribeImagesRequest request = new DescribeImagesRequest() { Owners = new List <string>() { "271640224276" } }; DescribeImagesResponse response = ec2Client.DescribeImages(request); string AMIid = string.Empty; foreach (var r in response.Images) { AMIid = r.ImageId; } string instanceID = string.Empty; var instanceRequest = new DescribeInstancesRequest(); var instanceResponse = ec2Client.DescribeInstances(instanceRequest); int count = instanceResponse.Reservations.Count; for (int i = 0; i < count; i++) { foreach (var r in instanceResponse.Reservations[i].Instances) { if (r.ImageId == AMIid) { instanceID = r.InstanceId; } } } return(instanceID); }
public override void Execute() { AmazonEC2Client client = new AmazonEC2Client(AWSAuthConnection.OUR_ACCESS_KEY_ID, AWSAuthConnection.OUR_SECRET_ACCESS_KEY); DescribeInstancesRequest request = new DescribeInstancesRequest(); DescribeInstancesResponse response = client.DescribeInstances(request); Dictionary <string, List <RunningInstance> > instances = new Dictionary <string, List <RunningInstance> >(); foreach (Reservation r in response.DescribeInstancesResult.Reservation) { foreach (RunningInstance i in r.RunningInstance) { if (!instances.ContainsKey(i.ImageId)) { instances[i.ImageId] = new List <RunningInstance>(); } instances[i.ImageId].Add(i); } } List <string> allImageIds = new List <string>(); foreach (string imageId in instances.Keys) { allImageIds.Add(imageId); } DescribeImagesRequest imageReq = new DescribeImagesRequest(); imageReq.ImageId = allImageIds; DescribeImagesResponse imageResp = client.DescribeImages(imageReq); Dictionary <string, Image> imageDescriptions = new Dictionary <string, Image>(); foreach (Image image in imageResp.DescribeImagesResult.Image) { imageDescriptions.Add(image.ImageId, image); } foreach (string imageId in instances.Keys) { if (imageDescriptions.ContainsKey(imageId)) { Console.WriteLine("--- {0} {1} ({2} {3})", imageId, imageDescriptions[imageId].ImageLocation, imageDescriptions[imageId].Platform, imageDescriptions[imageId].Architecture); } else { Console.WriteLine("--- {0} (AMI not found)", imageId); } foreach (RunningInstance i in instances[imageId]) { DateTime launchTime = DateTime.Parse(i.LaunchTime); Console.Write("{0}\t{1}\t{2}\t{3}\t{4}", launchTime, i.InstanceType, i.InstanceState.Name, i.InstanceId, i.StateTransitionReason); if (ips) { Console.Write("\t{0}\t{1}", i.PublicDnsName, i.PrivateDnsName); } Console.WriteLine(); } Console.WriteLine(); } }