Пример #1
0
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DescribeLoadBalancersResponse response = new DescribeLoadBalancersResponse();

            context.Read();
            int targetDepth = context.CurrentDepth;

            while (context.ReadAtDepth(targetDepth))
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("DescribeLoadBalancersResult", 2))
                    {
                        UnmarshallResult(context, response);
                        continue;
                    }

                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.Instance.Unmarshall(context);
                    }
                }
            }

            return(response);
        }
Пример #2
0
        private static void UnmarshallResult(XmlUnmarshallerContext context, DescribeLoadBalancersResponse response)
        {
            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth += 2;
            }

            while (context.ReadAtDepth(originalDepth))
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                    if (context.TestExpression("LoadBalancers/member", targetDepth))
                    {
                        var unmarshaller = LoadBalancerStateUnmarshaller.Instance;
                        var item         = unmarshaller.Unmarshall(context);
                        response.LoadBalancers.Add(item);
                        continue;
                    }
                    if (context.TestExpression("NextToken", targetDepth))
                    {
                        var unmarshaller = StringUnmarshaller.Instance;
                        response.NextToken = unmarshaller.Unmarshall(context);
                        continue;
                    }
                }
            }

            return;
        }
Пример #3
0
        public override void Invoke(AWSCredentials creds, RegionEndpoint region, int maxItems)
        {
            AmazonElasticLoadBalancingConfig config = new AmazonElasticLoadBalancingConfig();

            config.RegionEndpoint = region;
            ConfigureClient(config);
            AmazonElasticLoadBalancingClient client = new AmazonElasticLoadBalancingClient(creds, config);

            DescribeLoadBalancersResponse resp = new DescribeLoadBalancersResponse();

            do
            {
                DescribeLoadBalancersRequest req = new DescribeLoadBalancersRequest
                {
                    Marker = resp.NextMarker
                };

                resp = client.DescribeLoadBalancers(req);
                CheckError(resp.HttpStatusCode, "200");

                foreach (var obj in resp.LoadBalancerDescriptions)
                {
                    AddObject(obj);
                }
            }while (!string.IsNullOrEmpty(resp.NextMarker));
        }
Пример #4
0
        /// <summary>
        /// <para> Returns detailed configuration information for the specified LoadBalancers. If no LoadBalancers are specified, the operation returns
        /// configuration information for all LoadBalancers created by the caller. </para> <para><b>NOTE:</b> The client must have created the specified
        /// input LoadBalancers in order to retrieve this information; the client must provide the same account credentials as those that were used to
        /// create the LoadBalancer. </para>
        /// </summary>
        ///
        /// <param name="describeLoadBalancersRequest">Container for the necessary parameters to execute the DescribeLoadBalancers service method on
        ///           AmazonElasticLoadBalancing.</param>
        ///
        /// <returns>The response from the DescribeLoadBalancers service method, as returned by AmazonElasticLoadBalancing.</returns>
        ///
        /// <exception cref="LoadBalancerNotFoundException"/>
        public DescribeLoadBalancersResponse DescribeLoadBalancers(DescribeLoadBalancersRequest describeLoadBalancersRequest)
        {
            IRequest <DescribeLoadBalancersRequest> request  = new DescribeLoadBalancersRequestMarshaller().Marshall(describeLoadBalancersRequest);
            DescribeLoadBalancersResponse           response = Invoke <DescribeLoadBalancersRequest, DescribeLoadBalancersResponse> (request, this.signer, DescribeLoadBalancersResponseUnmarshaller.GetInstance());

            return(response);
        }
Пример #5
0
        public static DescribeLoadBalancersResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeLoadBalancersResponse describeLoadBalancersResponse = new DescribeLoadBalancersResponse()
            {
                HttpResponse = context.HttpResponse,
                RequestId    = context.StringValue("DescribeLoadBalancers.RequestId")
            };
            List <DescribeLoadBalancersResponse.LoadBalancer> loadBalancers = new List <DescribeLoadBalancersResponse.LoadBalancer>();

            for (int i = 0; i < context.Length("DescribeLoadBalancers.LoadBalancers.Length"); i++)
            {
                DescribeLoadBalancersResponse.LoadBalancer loadBalancer = new DescribeLoadBalancersResponse.LoadBalancer()
                {
                    LoadBalancerId     = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].LoadBalancerId"),
                    LoadBalancerName   = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].LoadBalancerName"),
                    LoadBalancerStatus = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].LoadBalancerStatus"),
                    Address            = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].Address"),
                    AddressType        = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].AddressType"),
                    RegionId           = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].RegionId"),
                    RegionIdAlias      = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].RegionIdAlias"),
                    VSwitchId          = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].VSwitchId"),
                    VpcId              = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].VpcId"),
                    NetworkType        = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].NetworkType"),
                    MasterZoneId       = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].MasterZoneId"),
                    SlaveZoneId        = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].SlaveZoneId"),
                    InternetChargeType = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].InternetChargeType"),
                    CreateTime         = context.StringValue($"DescribeLoadBalancers.LoadBalancers[{i}].CreateTime"),
                    CreateTimeStamp    = context.LongValue($"DescribeLoadBalancers.LoadBalancers[{i}].CreateTimeStamp")
                };
                loadBalancers.Add(loadBalancer);
            }
            describeLoadBalancersResponse.LoadBalancers = loadBalancers;

            return(describeLoadBalancersResponse);
        }
        public static void InvokeDescribeLoadBalancers()
        {
            NameValueCollection appConfig = ConfigurationManager.AppSettings;

            // Print the number of Elastic Load Balancing domains.
            IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(RegionEndpoint.USWest2);

            try
            {
                DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers(new DescribeLoadBalancersRequest());

                int numLoadBalancers = 0;
                numLoadBalancers = elbResponse.LoadBalancerDescriptions.Count;
                Console.WriteLine("You have " + numLoadBalancers + " Elastic Load Balancing load balancer(s).");
            }
            catch (AmazonElasticLoadBalancingException ex)
            {
                if (ex.ErrorCode.Equals("OptInRequired"))
                {
                    Console.WriteLine("You are not signed for Amazon EC2.");
                    Console.WriteLine("You can sign up at http://aws.amazon.com/ec2.");
                }
                else
                {
                    Console.WriteLine("Caught Exception: " + ex.Message);
                    Console.WriteLine("Response Status Code: " + ex.StatusCode);
                    Console.WriteLine("Error Code: " + ex.ErrorCode);
                    Console.WriteLine("Error Type: " + ex.ErrorType);
                    Console.WriteLine("Request ID: " + ex.RequestId);
                }
            }
            Console.WriteLine();
        }
        public static DescribeLoadBalancersResponse Unmarshall(UnmarshallerContext _ctx)
        {
            DescribeLoadBalancersResponse describeLoadBalancersResponse = new DescribeLoadBalancersResponse();

            describeLoadBalancersResponse.HttpResponse = _ctx.HttpResponse;
            describeLoadBalancersResponse.RequestId    = _ctx.StringValue("DescribeLoadBalancers.RequestId");
            describeLoadBalancersResponse.PageNumber   = _ctx.IntegerValue("DescribeLoadBalancers.PageNumber");
            describeLoadBalancersResponse.PageSize     = _ctx.IntegerValue("DescribeLoadBalancers.PageSize");
            describeLoadBalancersResponse.TotalCount   = _ctx.IntegerValue("DescribeLoadBalancers.TotalCount");

            List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer> describeLoadBalancersResponse_loadBalancers = new List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer>();

            for (int i = 0; i < _ctx.Length("DescribeLoadBalancers.LoadBalancers.Length"); i++)
            {
                DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer loadBalancer = new DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer();
                loadBalancer.LoadBalancerId     = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerId");
                loadBalancer.LoadBalancerName   = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerName");
                loadBalancer.LoadBalancerStatus = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerStatus");
                loadBalancer.Address            = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Address");
                loadBalancer.AddressType        = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].AddressType");
                loadBalancer.RegionId           = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionId");
                loadBalancer.RegionIdAlias      = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionIdAlias");
                loadBalancer.VSwitchId          = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VSwitchId");
                loadBalancer.VpcId                        = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VpcId");
                loadBalancer.NetworkType                  = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].NetworkType");
                loadBalancer.MasterZoneId                 = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].MasterZoneId");
                loadBalancer.SlaveZoneId                  = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].SlaveZoneId");
                loadBalancer.InternetChargeType           = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].InternetChargeType");
                loadBalancer.CreateTime                   = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTime");
                loadBalancer.CreateTimeStamp              = _ctx.LongValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTimeStamp");
                loadBalancer.PayType                      = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].PayType");
                loadBalancer.ResourceGroupId              = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ResourceGroupId");
                loadBalancer.AddressIPVersion             = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].AddressIPVersion");
                loadBalancer.BusinessStatus               = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].BusinessStatus");
                loadBalancer.ModificationProtectionStatus = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ModificationProtectionStatus");
                loadBalancer.ModificationProtectionReason = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ModificationProtectionReason");
                loadBalancer.Bandwidth                    = _ctx.IntegerValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Bandwidth");
                loadBalancer.InternetChargeTypeAlias      = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].InternetChargeTypeAlias");
                loadBalancer.LoadBalancerSpec             = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerSpec");
                loadBalancer.DeleteProtection             = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].DeleteProtection");

                List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag> loadBalancer_tags = new List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag>();
                for (int j = 0; j < _ctx.Length("DescribeLoadBalancers.LoadBalancers[" + i + "].Tags.Length"); j++)
                {
                    DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag tag = new DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer.DescribeLoadBalancers_Tag();
                    tag.TagKey   = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Tags[" + j + "].TagKey");
                    tag.TagValue = _ctx.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Tags[" + j + "].TagValue");

                    loadBalancer_tags.Add(tag);
                }
                loadBalancer.Tags = loadBalancer_tags;

                describeLoadBalancersResponse_loadBalancers.Add(loadBalancer);
            }
            describeLoadBalancersResponse.LoadBalancers = describeLoadBalancersResponse_loadBalancers;

            return(describeLoadBalancersResponse);
        }
Пример #8
0
        public void Setup()
        {
            _firstPage = new DescribeLoadBalancersResponse
            {
                NextMarker = "token-1",
                LoadBalancerDescriptions = new List <LoadBalancerDescription>
                {
                    new LoadBalancerDescription {
                        LoadBalancerName = "LoadBalancer-1"
                    }
                }
            };
            _secondPage = new DescribeLoadBalancersResponse
            {
                NextMarker = "token-2",
                LoadBalancerDescriptions = new List <LoadBalancerDescription>
                {
                    new LoadBalancerDescription {
                        LoadBalancerName = "LoadBalancer-2"
                    }
                }
            };
            _thirdPage = new DescribeLoadBalancersResponse
            {
                LoadBalancerDescriptions = new List <LoadBalancerDescription>
                {
                    new LoadBalancerDescription {
                        LoadBalancerName = "LoadBalancer-3"
                    }
                }
            };

            var elbMock = new Mock <IAmazonElasticLoadBalancing>();

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == null),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_firstPage);

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-1"),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_secondPage);

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-2"),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_thirdPage);

            _elbSource = new ElbSource(elbMock.Object);
        }
Пример #9
0
        public AwsObjectRetriever(string accessKeyID, string secretKeyID, Amazon.RegionEndpoint region, ILogProvider logProvider, IStatusProvider statusProvider)
        {
            _logProvider    = logProvider;
            _statusProvider = statusProvider;

            createEC2Client(accessKeyID, secretKeyID, region);
            createLBClient(accessKeyID, secretKeyID, region);
            REGION = region.SystemName;

            _vpcs      = GetAllVpcs();
            _instances = GetAllInstances();
            _volumes   = GetAllVolumes();
            Application.DoEvents();
            _Loadbalancers = GetAllLBs();
        }
Пример #10
0
        public static void GetTopology()
        {
            IAmazonEC2                  ec2 = AWSClientFactory.CreateAmazonEC2Client();
            IAmazonAutoScaling          asg = AWSClientFactory.CreateAmazonAutoScalingClient();
            IAmazonElasticLoadBalancing elb = AWSClientFactory.CreateAmazonElasticLoadBalancingClient();

            DescribeVpcsResponse vpcResponse = ec2.DescribeVpcs();

            WriteFile("vpcs.csv", vpcResponse.Vpcs);

            DescribeInstancesResponse instanceResponse = ec2.DescribeInstances();
            var reservationIndex = 0;

            foreach (var reservation in instanceResponse.Reservations)
            {
                if (reservationIndex == 0)
                {
                    WriteFile("instances.csv", reservation.Instances);
                }
                else
                {
                    AppendFile("instances.csv", reservation.Instances);
                }
                reservationIndex++;
            }

            DescribeNetworkAclsResponse naclResponse = ec2.DescribeNetworkAcls();

            WriteFile("nacls.csv", naclResponse.NetworkAcls);

            Amazon.EC2.Model.DescribeTagsResponse tagsResponse = ec2.DescribeTags();
            WriteFile("tags.csv", tagsResponse.Tags);

            DescribeVolumesResponse volumesResponse = ec2.DescribeVolumes();

            WriteFile("volumes.csv", volumesResponse.Volumes);

            DescribeLoadBalancersResponse elbResponse = elb.DescribeLoadBalancers();

            WriteFile("elbs.csv", elbResponse.LoadBalancerDescriptions);

            DescribeInternetGatewaysResponse igResponse = ec2.DescribeInternetGateways();

            WriteFile("igs.csv", igResponse.InternetGateways);
        }
        void worker_DoWork(object sender, DoWorkEventArgs e)
        {
            //validate args
            if (String.IsNullOrEmpty(AWSAccessKey) || String.IsNullOrEmpty(AWSSecretKey))
            {
                e.Result = null;
                return;
            }

            //ec2 client
            var ec2 = AWSClientFactory.CreateAmazonEC2Client(AWSAccessKey,
                                                             AWSSecretKey,
                                                             new AmazonEC2Config().WithServiceURL(RegionHelper.EC2EndpointForRegion(EC2Region))
                                                             );

            var elbClient = AWSClientFactory.CreateAmazonElasticLoadBalancingClient(AWSAccessKey,
                                                                                    AWSSecretKey,
                                                                                    new AmazonElasticLoadBalancingConfig()
            {
                ServiceURL = RegionHelper.ELBEndpointForRegion(EC2Region).Replace("http:", "https:")
            });

            DescribeLoadBalancersResponse loadBalancers = null;

            try
            {
                loadBalancers = elbClient.DescribeLoadBalancers();
            }
            catch (WebException wex)
            {
                var response      = wex.Response as HttpWebResponse;
                var responsveBody = new StreamReader(response.GetResponseStream()).ReadToEnd();
                int a             = 5;
            }

            e.Result = loadBalancers.DescribeLoadBalancersResult.LoadBalancerDescriptions.
                       Select(lb => new AWSLoadBalancerServersRetreiverCompleteEventArgs.LoadBalancer {
                LoadBalancerName = lb.LoadBalancerName,
                InstanceNames    = lb.Instances.Select(instance => instance.InstanceId).ToList()
            }).
                       ToList();
        }
        public static DescribeLoadBalancersResponse Unmarshall(UnmarshallerContext context)
        {
            DescribeLoadBalancersResponse describeLoadBalancersResponse = new DescribeLoadBalancersResponse();

            describeLoadBalancersResponse.HttpResponse = context.HttpResponse;
            describeLoadBalancersResponse.RequestId    = context.StringValue("DescribeLoadBalancers.RequestId");
            describeLoadBalancersResponse.PageNumber   = context.IntegerValue("DescribeLoadBalancers.PageNumber");
            describeLoadBalancersResponse.PageSize     = context.IntegerValue("DescribeLoadBalancers.PageSize");
            describeLoadBalancersResponse.TotalCount   = context.IntegerValue("DescribeLoadBalancers.TotalCount");

            List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer> describeLoadBalancersResponse_loadBalancers = new List <DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer>();

            for (int i = 0; i < context.Length("DescribeLoadBalancers.LoadBalancers.Length"); i++)
            {
                DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer loadBalancer = new DescribeLoadBalancersResponse.DescribeLoadBalancers_LoadBalancer();
                loadBalancer.LoadBalancerId     = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerId");
                loadBalancer.LoadBalancerName   = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerName");
                loadBalancer.LoadBalancerStatus = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].LoadBalancerStatus");
                loadBalancer.Address            = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].Address");
                loadBalancer.AddressType        = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].AddressType");
                loadBalancer.RegionId           = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionId");
                loadBalancer.RegionIdAlias      = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].RegionIdAlias");
                loadBalancer.VSwitchId          = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VSwitchId");
                loadBalancer.VpcId              = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].VpcId");
                loadBalancer.NetworkType        = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].NetworkType");
                loadBalancer.MasterZoneId       = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].MasterZoneId");
                loadBalancer.SlaveZoneId        = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].SlaveZoneId");
                loadBalancer.InternetChargeType = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].InternetChargeType");
                loadBalancer.CreateTime         = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTime");
                loadBalancer.CreateTimeStamp    = context.LongValue("DescribeLoadBalancers.LoadBalancers[" + i + "].CreateTimeStamp");
                loadBalancer.PayType            = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].PayType");
                loadBalancer.ResourceGroupId    = context.StringValue("DescribeLoadBalancers.LoadBalancers[" + i + "].ResourceGroupId");

                describeLoadBalancersResponse_loadBalancers.Add(loadBalancer);
            }
            describeLoadBalancersResponse.LoadBalancers = describeLoadBalancersResponse_loadBalancers;

            return(describeLoadBalancersResponse);
        }
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            DescribeLoadBalancersResponse response = new DescribeLoadBalancersResponse();

            while (context.Read())
            {
                if (context.IsStartElement)
                {
                    if (context.TestExpression("DescribeLoadBalancersResult", 2))
                    {
                        response.DescribeLoadBalancersResult = DescribeLoadBalancersResultUnmarshaller.GetInstance().Unmarshall(context);
                        continue;
                    }
                    if (context.TestExpression("ResponseMetadata", 2))
                    {
                        response.ResponseMetadata = ResponseMetadataUnmarshaller.GetInstance().Unmarshall(context);
                    }
                }
            }


            return(response);
        }
        private static void UnmarshallResult(XmlUnmarshallerContext context, DescribeLoadBalancersResponse response)
        {
            int originalDepth = context.CurrentDepth;
            int targetDepth   = originalDepth + 1;

            if (context.IsStartOfDocument)
            {
                targetDepth += 2;
            }

            while (context.Read())
            {
                if (context.IsStartElement || context.IsAttribute)
                {
                    if (context.TestExpression("LoadBalancerDescriptions/member", targetDepth))
                    {
                        response.LoadBalancerDescriptions.Add(LoadBalancerDescriptionUnmarshaller.GetInstance().Unmarshall(context));

                        continue;
                    }
                    if (context.TestExpression("NextMarker", targetDepth))
                    {
                        response.NextMarker = StringUnmarshaller.GetInstance().Unmarshall(context);

                        continue;
                    }
                }
                else if (context.IsEndElement && context.CurrentDepth < originalDepth)
                {
                    return;
                }
            }



            return;
        }
Пример #15
0
        //public Dictionary<string, XmlDocument> _documentCache = new Dictionary<string, XmlDocument>();

        public AwsObjectRetriever(string accessKeyID, string secretKeyID, Amazon.RegionEndpoint region, ILogProvider logProvider, IStatusProvider statusProvider)
        {
            _logProvider    = logProvider;
            _statusProvider = statusProvider;

            createEC2Client(accessKeyID, secretKeyID, region);
            createLBClient(accessKeyID, secretKeyID, region);
            REGION = region.SystemName;

            try
            {
                _vpcs = GetAllVpcs();
                Application.DoEvents();
                _instances = GetAllInstances();
                Application.DoEvents();
                // _volumes = GetAllVolumes();
                // Application.DoEvents();
                _Loadbalancers = GetAllLBs();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error during accessing the AWS Resources. Error Message: " + ex.Message, "Access Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #16
0
        public void Setup()
        {
            _firstPage = new DescribeLoadBalancersResponse
            {
                NextMarker    = "token-1",
                LoadBalancers = new List <LoadBalancer>
                {
                    new LoadBalancer {
                        LoadBalancerName = "LoadBalancer-1", Type = LoadBalancerTypeEnum.Application
                    }
                }
            };
            _secondPage = new DescribeLoadBalancersResponse
            {
                NextMarker    = "token-2",
                LoadBalancers = new List <LoadBalancer>
                {
                    new LoadBalancer {
                        LoadBalancerName = "LoadBalancer-2", Type = LoadBalancerTypeEnum.Application
                    }
                }
            };
            _thirdPage = new DescribeLoadBalancersResponse
            {
                NextMarker    = "token-3",
                LoadBalancers = new List <LoadBalancer>
                {
                    new LoadBalancer {
                        LoadBalancerName = "LoadBalancer-3", Type = LoadBalancerTypeEnum.Application
                    }
                }
            };
            _fourthPage = new DescribeLoadBalancersResponse
            {
                LoadBalancers = new List <LoadBalancer>
                {
                    new LoadBalancer {
                        LoadBalancerName = "NetworkBalancer-1", Type = LoadBalancerTypeEnum.Network
                    }
                }
            };

            var elbMock = new Mock <IAmazonElasticLoadBalancingV2>();

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == null),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_firstPage);

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-1"),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_secondPage);

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-2"),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_thirdPage);

            elbMock.Setup(s => s.DescribeLoadBalancersAsync(
                              It.Is <DescribeLoadBalancersRequest>(r => r.Marker == "token-3"),
                              It.IsAny <CancellationToken>()
                              )).ReturnsAsync(_fourthPage);

            _albSource = new AlbSource(elbMock.Object);
        }