Exemple #1
0
 public async Task AttachLoadBalancerTargetGroups(SA_AutoScalingGroup autoScalingGroup, List <string> targetGroupARNs)
 {
     var request = new AttachLoadBalancerTargetGroupsRequest()
     {
         AutoScalingGroupName = autoScalingGroup.AutoScalingGroupName,
         TargetGroupARNs      = targetGroupARNs
     };
     //client.DetachLoadBalancerTargetGroupsAsync()
     await client.AttachLoadBalancerTargetGroupsAsync(request);
 }
Exemple #2
0
        public async Task ClearAutoScalingGroupAttachedTargetGroups(SA_AutoScalingGroup autoScalingGroup)
        {
            var getRequest = new DescribeLoadBalancerTargetGroupsRequest()
            {
                AutoScalingGroupName = autoScalingGroup.AutoScalingGroupName
            };
            var getResponse = await client.DescribeLoadBalancerTargetGroupsAsync(getRequest);

            if (getResponse.LoadBalancerTargetGroups.Count == 0)
            {
                return;
            }

            var removeRequest = new DetachLoadBalancerTargetGroupsRequest()
            {
                AutoScalingGroupName = autoScalingGroup.AutoScalingGroupName,
                TargetGroupARNs      = getResponse.LoadBalancerTargetGroups.ConvertAll(o => o.LoadBalancerTargetGroupARN)
            };
            await client.DetachLoadBalancerTargetGroupsAsync(removeRequest);
        }
Exemple #3
0
        public async Task <List <SA_AutoScalingGroup> > GetAllAutoScalingGroupList(string region = null)
        {
            if (region != null)
            {
                client = new AmazonAutoScalingClient(
                    CredentiaslManager.GetCredential(profile),
                    AwsCommon.GetRetionEndpoint(region));
            }

            var lstSaGroups = new List <SA_AutoScalingGroup>();
            var response    = await client.DescribeAutoScalingGroupsAsync();

            var lstGroups = response.AutoScalingGroups.FindAll(o => o.Tags[0].Value.IndexOf(environment.ToString()) >= 0);

            foreach (var group in lstGroups)
            {
                var saGroup = new SA_AutoScalingGroup()
                {
                    AutoScalingGroupName = group.AutoScalingGroupName,
                    AutoScalingGroupARN  = group.AutoScalingGroupARN,
                    Name = group.Tags[0].Value,
                    //Status = group.Status,
                    MaxSize                = group.MaxSize,
                    MinSize                = group.MinSize,
                    DesiredCapacity        = group.DesiredCapacity,
                    CreatedTime            = group.CreatedTime,
                    RunningInstances       = group.Instances.Count,
                    HealthCheckType        = group.HealthCheckType,
                    HealthCheckGracePeriod = group.HealthCheckGracePeriod
                };
                lstSaGroups.Add(saGroup);
            }
            var results = lstSaGroups.OrderBy(o => o.Name).ToList();

            return(results);
        }
Exemple #4
0
        public async Task <List <SA_AutoScalingGroup> > GetEnvironmentAutoScalingGroupList(bool ignorColor = false)
        {
            var lstSaGroups = new List <SA_AutoScalingGroup>();
            var response    = await client.DescribeAutoScalingGroupsAsync();

            var lstGroups = ignorColor ?
                            response.AutoScalingGroups.FindAll(o => o.Tags[0].Value.IndexOf(environment.ToString()) == 0) :
                            response.AutoScalingGroups.FindAll(o => o.Tags[0].Value.IndexOf(environment + "-" + color) == 0);
            //var lstGroups = response.AutoScalingGroups.FindAll(o => o.Tags[0].Value.Substring(0, o.Tags[0].Value.IndexOf("-")) == environment.ToString());
            var jumpBox = response.AutoScalingGroups.Find(
                o => o.Tags[0].Value.IndexOf(environment.ToString()) >= 0 && o.Tags[0].Value.IndexOf("Jump") > 0);

            if (jumpBox != null && lstGroups.Find(o => o.Tags[0].Value.IndexOf("Jump") > 0) == null)
            {
                lstGroups.Add(jumpBox);
            }
            foreach (var group in lstGroups)
            {
                var saGroup = new SA_AutoScalingGroup()
                {
                    AutoScalingGroupName = group.AutoScalingGroupName,
                    AutoScalingGroupARN  = group.AutoScalingGroupARN,
                    Name = group.Tags[0].Value,
                    //Status = group.Status,
                    MaxSize          = group.MaxSize,
                    MinSize          = group.MinSize,
                    DesiredCapacity  = group.DesiredCapacity,
                    CreatedTime      = group.CreatedTime,
                    RunningInstances = group.Instances.Count
                };
                lstSaGroups.Add(saGroup);
            }
            var results = lstSaGroups.OrderBy(o => o.Name).ToList();

            return(results);
        }