protected override void ProcessRecord()
        {
            base.ProcessRecord();

            var loadBalancingRule = new PSLoadBalancingRule();

            loadBalancingRule.Name         = this.Name;
            loadBalancingRule.Protocol     = this.Protocol;
            loadBalancingRule.FrontendPort = this.FrontendPort;
            loadBalancingRule.BackendPort  = this.BackendPort;
            if (this.IdleTimeoutInMinutes > 0)
            {
                loadBalancingRule.IdleTimeoutInMinutes = this.IdleTimeoutInMinutes;
            }

            if (!string.IsNullOrEmpty(this.LoadDistribution))
            {
                loadBalancingRule.LoadDistribution = this.LoadDistribution;
            }

            loadBalancingRule.EnableFloatingIP = this.EnableFloatingIP.IsPresent;

            if (!string.IsNullOrEmpty(this.BackendAddressPoolId))
            {
                loadBalancingRule.BackendAddressPool    = new PSResourceId();
                loadBalancingRule.BackendAddressPool.Id = this.BackendAddressPoolId;
            }

            if (!string.IsNullOrEmpty(this.ProbeId))
            {
                loadBalancingRule.Probe    = new PSResourceId();
                loadBalancingRule.Probe.Id = this.ProbeId;
            }

            if (!string.IsNullOrEmpty(this.FrontendIpConfigurationId))
            {
                loadBalancingRule.FrontendIPConfiguration = new PSResourceId()
                {
                    Id = this.FrontendIpConfigurationId
                };
            }

            loadBalancingRule.Id =
                ChildResourceHelper.GetResourceNotSetId(
                    this.NetworkClient.NetworkResourceProviderClient.Credentials.SubscriptionId,
                    Microsoft.Azure.Commands.Network.Properties.Resources.LoadBalancerRuleName,
                    this.Name);

            WriteObject(loadBalancingRule);
        }
Exemple #2
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            var existingLoadBalancingRule = this.LoadBalancer.LoadBalancingRules.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase));

            if (existingLoadBalancingRule != null)
            {
                throw new ArgumentException("LoadBalancingRule with the specified name already exists");
            }

            var loadBalancingRule = new PSLoadBalancingRule();

            loadBalancingRule.Name         = this.Name;
            loadBalancingRule.Protocol     = this.Protocol;
            loadBalancingRule.FrontendPort = this.FrontendPort;
            loadBalancingRule.BackendPort  = this.BackendPort;

            if (this.IdleTimeoutInMinutes > 0)
            {
                loadBalancingRule.IdleTimeoutInMinutes = this.IdleTimeoutInMinutes;
            }

            if (!string.IsNullOrEmpty(this.LoadDistribution))
            {
                loadBalancingRule.LoadDistribution = this.LoadDistribution;
            }

            loadBalancingRule.EnableFloatingIP = this.EnableFloatingIP.IsPresent;

            if (!string.IsNullOrEmpty(this.BackendAddressPoolId))
            {
                loadBalancingRule.BackendAddressPool    = new PSResourceId();
                loadBalancingRule.BackendAddressPool.Id = this.BackendAddressPoolId;
            }

            if (!string.IsNullOrEmpty(this.ProbeId))
            {
                loadBalancingRule.Probe    = new PSResourceId();
                loadBalancingRule.Probe.Id = this.ProbeId;
            }

            if (!string.IsNullOrEmpty(this.FrontendIpConfigurationId))
            {
                loadBalancingRule.FrontendIPConfiguration = new PSResourceId()
                {
                    Id = this.FrontendIpConfigurationId
                };
            }

            loadBalancingRule.Id =
                ChildResourceHelper.GetResourceId(
                    this.NetworkClient.NetworkManagementClient.SubscriptionId,
                    this.LoadBalancer.ResourceGroupName,
                    this.LoadBalancer.Name,
                    Microsoft.Azure.Commands.Network.Properties.Resources.LoadBalancerRuleName,
                    this.Name);

            this.LoadBalancer.LoadBalancingRules.Add(loadBalancingRule);

            WriteObject(this.LoadBalancer);
        }
Exemple #3
0
        public override void Execute()
        {
            if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
            {
                if (this.FrontendIpConfiguration != null)
                {
                    this.FrontendIpConfigurationId = this.FrontendIpConfiguration.Id;
                }
                if (this.BackendAddressPool != null)
                {
                    this.BackendAddressPoolId = this.BackendAddressPool.Id;
                }
                if (this.Probe != null)
                {
                    this.ProbeId = this.Probe.Id;
                }
            }
            var vLoadBalancingRules = new PSLoadBalancingRule();

            vLoadBalancingRules.Protocol             = this.Protocol;
            vLoadBalancingRules.LoadDistribution     = this.LoadDistribution;
            vLoadBalancingRules.FrontendPort         = this.FrontendPort;
            vLoadBalancingRules.BackendPort          = this.BackendPort;
            vLoadBalancingRules.IdleTimeoutInMinutes = this.MyInvocation.BoundParameters.ContainsKey("IdleTimeoutInMinutes") ? this.IdleTimeoutInMinutes : 4;
            vLoadBalancingRules.EnableFloatingIP     = this.EnableFloatingIP;
            vLoadBalancingRules.EnableTcpReset       = this.EnableTcpReset;
            vLoadBalancingRules.DisableOutboundSNAT  = this.DisableOutboundSNAT;
            vLoadBalancingRules.Name = this.Name;
            if (!string.IsNullOrEmpty(this.FrontendIpConfigurationId))
            {
                // FrontendIPConfiguration
                if (vLoadBalancingRules.FrontendIPConfiguration == null)
                {
                    vLoadBalancingRules.FrontendIPConfiguration = new PSResourceId();
                }
                vLoadBalancingRules.FrontendIPConfiguration.Id = this.FrontendIpConfigurationId;
            }
            if (!string.IsNullOrEmpty(this.BackendAddressPoolId))
            {
                // BackendAddressPool
                if (vLoadBalancingRules.BackendAddressPool == null)
                {
                    vLoadBalancingRules.BackendAddressPool = new PSResourceId();
                }
                vLoadBalancingRules.BackendAddressPool.Id = this.BackendAddressPoolId;
            }
            if (!string.IsNullOrEmpty(this.ProbeId))
            {
                // Probe
                if (vLoadBalancingRules.Probe == null)
                {
                    vLoadBalancingRules.Probe = new PSResourceId();
                }
                vLoadBalancingRules.Probe.Id = this.ProbeId;
            }
            var generatedId = string.Format(
                "/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Network/loadBalancers/{2}/{3}/{4}",
                this.NetworkClient.NetworkManagementClient.SubscriptionId,
                Microsoft.Azure.Commands.Network.Properties.Resources.ResourceGroupNotSet,
                Microsoft.Azure.Commands.Network.Properties.Resources.LoadBalancerNameNotSet,
                "LoadBalancingRules",
                this.Name);

            vLoadBalancingRules.Id = generatedId;

            WriteObject(vLoadBalancingRules, true);
        }
        public override void Execute()
        {
            if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
            {
                if (this.FrontendIpConfiguration != null)
                {
                    this.FrontendIpConfigurationId = this.FrontendIpConfiguration.Id;
                }

                if (this.BackendAddressPool != null && this.BackendAddressPool.Length > 0)
                {
                    this.BackendAddressPoolId = new string[this.BackendAddressPool.Length];
                    for (int i = 0; i < this.BackendAddressPool.Length; i++)
                    {
                        this.BackendAddressPoolId[i] = this.BackendAddressPool[i].Id;
                    }
                }

                if (this.Probe != null)
                {
                    this.ProbeId = this.Probe.Id;
                }
            }
            var vLoadBalancingRules = new PSLoadBalancingRule();

            vLoadBalancingRules.Protocol             = this.Protocol;
            vLoadBalancingRules.LoadDistribution     = this.LoadDistribution;
            vLoadBalancingRules.FrontendPort         = this.FrontendPort;
            vLoadBalancingRules.BackendPort          = this.BackendPort;
            vLoadBalancingRules.IdleTimeoutInMinutes = this.MyInvocation.BoundParameters.ContainsKey("IdleTimeoutInMinutes") ? this.IdleTimeoutInMinutes : 4;
            vLoadBalancingRules.EnableFloatingIP     = this.EnableFloatingIP;
            vLoadBalancingRules.EnableTcpReset       = this.EnableTcpReset;
            vLoadBalancingRules.DisableOutboundSNAT  = this.DisableOutboundSNAT;
            vLoadBalancingRules.Name = this.Name;
            if (!string.IsNullOrEmpty(this.FrontendIpConfigurationId))
            {
                // FrontendIPConfiguration
                if (vLoadBalancingRules.FrontendIPConfiguration == null)
                {
                    vLoadBalancingRules.FrontendIPConfiguration = new PSResourceId();
                }
                vLoadBalancingRules.FrontendIPConfiguration.Id = this.FrontendIpConfigurationId;
            }

            if (this.BackendAddressPoolId != null && this.BackendAddressPoolId.Length > 0)
            {
                if (this.BackendAddressPoolId.Length == 1)
                {
                    // BackendAddressPool
                    if (vLoadBalancingRules.BackendAddressPool == null)
                    {
                        vLoadBalancingRules.BackendAddressPool = new PSResourceId();
                    }

                    vLoadBalancingRules.BackendAddressPool.Id = this.BackendAddressPoolId[0];
                }
                else if (this.BackendAddressPoolId.Length == 2)
                {
                    // BackendAddressPools
                    if (vLoadBalancingRules.BackendAddressPools == null)
                    {
                        vLoadBalancingRules.BackendAddressPools = new List <PSResourceId>();
                    }

                    foreach (string backendAddressPoolId in this.BackendAddressPoolId)
                    {
                        vLoadBalancingRules.BackendAddressPools.Add(new PSResourceId()
                        {
                            Id = backendAddressPoolId
                        });
                    }
                }
                else
                {
                    throw new AzPSArgumentException("BackendAddressPool cannot be more than 2", "BackendAddressPool");
                }
            }

            if (!string.IsNullOrEmpty(this.ProbeId))
            {
                // Probe
                if (vLoadBalancingRules.Probe == null)
                {
                    vLoadBalancingRules.Probe = new PSResourceId();
                }
                vLoadBalancingRules.Probe.Id = this.ProbeId;
            }

            var generatedId = string.Format(
                "/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Network/loadBalancers/{2}/{3}/{4}",
                this.NetworkClient.NetworkManagementClient.SubscriptionId,
                Microsoft.Azure.Commands.Network.Properties.Resources.ResourceGroupNotSet,
                Microsoft.Azure.Commands.Network.Properties.Resources.LoadBalancerNameNotSet,
                "LoadBalancingRules",
                this.Name);

            vLoadBalancingRules.Id = generatedId;

            WriteObject(vLoadBalancingRules, true);
        }
Exemple #5
0
        public override void Execute()
        {
            var vLoadBalancingRulesIndex = this.LoadBalancer.LoadBalancingRules.IndexOf(
                this.LoadBalancer.LoadBalancingRules.SingleOrDefault(
                    resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase)));

            if (vLoadBalancingRulesIndex == -1)
            {
                throw new ArgumentException("LoadBalancingRules with the specified name does not exist");
            }

            if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
            {
                if (this.FrontendIpConfiguration != null)
                {
                    this.FrontendIpConfigurationId = this.FrontendIpConfiguration.Id;
                }

                if (this.BackendAddressPool != null && this.BackendAddressPool.Length > 0)
                {
                    this.BackendAddressPoolId = new string[this.BackendAddressPool.Length];
                    for (int i = 0; i < this.BackendAddressPool.Length; i++)
                    {
                        this.BackendAddressPoolId[i] = this.BackendAddressPool[i].Id;
                    }
                }

                if (this.Probe != null)
                {
                    this.ProbeId = this.Probe.Id;
                }
            }
            var vLoadBalancingRules = new PSLoadBalancingRule();

            vLoadBalancingRules.Protocol             = this.Protocol;
            vLoadBalancingRules.LoadDistribution     = this.LoadDistribution;
            vLoadBalancingRules.FrontendPort         = this.FrontendPort;
            vLoadBalancingRules.BackendPort          = this.BackendPort;
            vLoadBalancingRules.IdleTimeoutInMinutes = this.MyInvocation.BoundParameters.ContainsKey("IdleTimeoutInMinutes") ? this.IdleTimeoutInMinutes : 4;
            vLoadBalancingRules.EnableFloatingIP     = this.EnableFloatingIP;
            vLoadBalancingRules.EnableTcpReset       = this.EnableTcpReset;
            vLoadBalancingRules.DisableOutboundSNAT  = this.DisableOutboundSNAT;
            vLoadBalancingRules.Name = this.Name;
            if (!string.IsNullOrEmpty(this.FrontendIpConfigurationId))
            {
                // FrontendIPConfiguration
                if (vLoadBalancingRules.FrontendIPConfiguration == null)
                {
                    vLoadBalancingRules.FrontendIPConfiguration = new PSResourceId();
                }

                vLoadBalancingRules.FrontendIPConfiguration.Id = this.FrontendIpConfigurationId;
            }

            if (this.BackendAddressPoolId != null && this.BackendAddressPoolId.Length > 0)
            {
                if (this.BackendAddressPoolId.Length == 1)
                {
                    // BackendAddressPool
                    if (vLoadBalancingRules.BackendAddressPool == null)
                    {
                        vLoadBalancingRules.BackendAddressPool = new PSResourceId();
                    }

                    vLoadBalancingRules.BackendAddressPool.Id = this.BackendAddressPoolId[0];
                }
                else if (this.BackendAddressPoolId.Length == 2)
                {
                    // BackendAddressPools
                    if (vLoadBalancingRules.BackendAddressPools == null)
                    {
                        vLoadBalancingRules.BackendAddressPools = new List <PSResourceId>();
                    }

                    foreach (string backendAddressPoolId in this.BackendAddressPoolId)
                    {
                        vLoadBalancingRules.BackendAddressPools.Add(new PSResourceId()
                        {
                            Id = backendAddressPoolId
                        });
                    }
                }
                else
                {
                    throw new AzPSArgumentException("BackendAddressPool cannot be more than 2", "BackendAddressPool");
                }
            }

            if (!string.IsNullOrEmpty(this.ProbeId))
            {
                // Probe
                if (vLoadBalancingRules.Probe == null)
                {
                    vLoadBalancingRules.Probe = new PSResourceId();
                }

                vLoadBalancingRules.Probe.Id = this.ProbeId;
            }

            this.LoadBalancer.LoadBalancingRules[vLoadBalancingRulesIndex] = vLoadBalancingRules;
            WriteObject(this.LoadBalancer, true);
        }
        public override void Execute()
        {
            var existingLoadBalancingRule = this.LoadBalancer.LoadBalancingRules.SingleOrDefault(resource => string.Equals(resource.Name, this.Name, System.StringComparison.CurrentCultureIgnoreCase));

            if (existingLoadBalancingRule != null)
            {
                throw new ArgumentException("LoadBalancingRule with the specified name already exists");
            }

            // LoadBalancingRules
            if (this.LoadBalancer.LoadBalancingRules == null)
            {
                this.LoadBalancer.LoadBalancingRules = new List <PSLoadBalancingRule>();
            }

            if (string.Equals(ParameterSetName, Microsoft.Azure.Commands.Network.Properties.Resources.SetByResource))
            {
                if (this.FrontendIpConfiguration != null)
                {
                    this.FrontendIpConfigurationId = this.FrontendIpConfiguration.Id;
                }
                if (this.BackendAddressPool != null)
                {
                    this.BackendAddressPoolId = this.BackendAddressPool.Id;
                }
                if (this.Probe != null)
                {
                    this.ProbeId = this.Probe.Id;
                }
            }

            var vLoadBalancingRules = new PSLoadBalancingRule();

            vLoadBalancingRules.Protocol             = this.Protocol;
            vLoadBalancingRules.LoadDistribution     = this.LoadDistribution;
            vLoadBalancingRules.FrontendPort         = this.FrontendPort;
            vLoadBalancingRules.BackendPort          = this.BackendPort;
            vLoadBalancingRules.IdleTimeoutInMinutes = this.MyInvocation.BoundParameters.ContainsKey("IdleTimeoutInMinutes") ? this.IdleTimeoutInMinutes : 4;
            vLoadBalancingRules.EnableFloatingIP     = this.EnableFloatingIP;
            vLoadBalancingRules.EnableTcpReset       = this.EnableTcpReset;
            vLoadBalancingRules.DisableOutboundSNAT  = this.DisableOutboundSNAT;
            vLoadBalancingRules.Name = this.Name;
            if (!string.IsNullOrEmpty(this.FrontendIpConfigurationId))
            {
                // FrontendIPConfiguration
                if (vLoadBalancingRules.FrontendIPConfiguration == null)
                {
                    vLoadBalancingRules.FrontendIPConfiguration = new PSResourceId();
                }
                vLoadBalancingRules.FrontendIPConfiguration.Id = this.FrontendIpConfigurationId;
            }
            if (!string.IsNullOrEmpty(this.BackendAddressPoolId))
            {
                // BackendAddressPool
                if (vLoadBalancingRules.BackendAddressPool == null)
                {
                    vLoadBalancingRules.BackendAddressPool = new PSResourceId();
                }
                vLoadBalancingRules.BackendAddressPool.Id = this.BackendAddressPoolId;
            }
            if (!string.IsNullOrEmpty(this.ProbeId))
            {
                // Probe
                if (vLoadBalancingRules.Probe == null)
                {
                    vLoadBalancingRules.Probe = new PSResourceId();
                }
                vLoadBalancingRules.Probe.Id = this.ProbeId;
            }
            var generatedId = string.Format(
                "/subscriptions/{0}/resourceGroups/{1}/providers/Microsoft.Network/loadBalancers/{2}/{3}/{4}",
                this.NetworkClient.NetworkManagementClient.SubscriptionId,
                this.LoadBalancer.ResourceGroupName,
                this.LoadBalancer.Name,
                "LoadBalancingRules",
                this.Name);

            vLoadBalancingRules.Id = generatedId;

            this.LoadBalancer.LoadBalancingRules.Add(vLoadBalancingRules);
            WriteObject(this.LoadBalancer, true);
        }