Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 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);
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 6
0
        //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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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();
            }
        }