Esempio n. 1
0
        public async Task SwitchDeployment()
        {
            ALBHelper loadBalancerHelper = new ALBHelper(
                GlobalVariables.Enviroment, GlobalVariables.Region, GlobalVariables.Color);
            var loadBalancers = await loadBalancerHelper.GetLoadBalancerList();

            foreach (var loadBalancer in loadBalancers)
            {
                var listeners = await loadBalancerHelper.GetListenerList(loadBalancer.LoadBalancerArn);

                var prodHttpListener     = listeners.Find(o => o.Port == PRODUCTION_HTTP_PORT);
                var prodHttpsListener    = listeners.Find(o => o.Port == PRODUCTION_HTTPS_PORT);
                var preProdHttpListener  = listeners.Find(o => o.Port == PRE_PRODUCTION_HTTP_PORT);
                var preProdHttpsListener = listeners.Find(o => o.Port == PRE_PRODUCTION_HTTPS_PORT);

                //Http listners (80, 8080) are not manditory
                if (prodHttpListener != null && preProdHttpListener != null)
                {
                    await loadBalancerHelper.ChangeListenerTargets(prodHttpListener.ListenerArn, preProdHttpListener.TargetArn);

                    await loadBalancerHelper.ChangeListenerTargets(preProdHttpListener.ListenerArn, prodHttpListener.TargetArn);
                }
                //Https listners (443, 4343) are manditory. If not created, should go back to rebuild the ALB.
                if (prodHttpsListener != null && preProdHttpsListener != null)
                {
                    await loadBalancerHelper.ChangeListenerTargets(prodHttpsListener.ListenerArn, preProdHttpsListener.TargetArn);

                    await loadBalancerHelper.ChangeListenerTargets(preProdHttpsListener.ListenerArn, prodHttpsListener.TargetArn);
                }
                else
                {
                    throw new Exception($"The Https listers for {loadBalancer.LoadBalancerName} are not created!");
                }
            }
        }
Esempio n. 2
0
        public async Task <List <ApplicationLoadBalancerModel> > GetApplicationLoadBalancers()
        {
            ALBHelper loadBalancerHelper = new ALBHelper(
                GlobalVariables.Enviroment, GlobalVariables.Region, GlobalVariables.Color);
            var applicationLoadBalancers = new List <ApplicationLoadBalancerModel>();
            var loadBalancers            = await loadBalancerHelper.GetLoadBalancerList();

            foreach (var loadBalancer in loadBalancers)
            {
                var applicationLoadBalancer = new ApplicationLoadBalancerModel();
                applicationLoadBalancer.LoadBalancer = loadBalancer;
                applicationLoadBalancer.Listeners    = await loadBalancerHelper.GetListenerList(loadBalancer.LoadBalancerArn);

                applicationLoadBalancer.Listeners = applicationLoadBalancer.Listeners.OrderBy(o => o.Port).ToList();
                applicationLoadBalancers.Add(applicationLoadBalancer);
            }
            return(applicationLoadBalancers);
        }