Ejemplo n.º 1
0
        public void CreateAfdOriginGroup()
        {
            try
            {
                // availability of load balancing settings parameters
                bool isSampleSize = this.MyInvocation.BoundParameters.ContainsKey("SampleSize");
                bool isSuccessfulSampleRequired        = this.MyInvocation.BoundParameters.ContainsKey("SuccessfulSamplesRequired");
                bool isAdditionalLatencyInMilliseconds = this.MyInvocation.BoundParameters.ContainsKey("AdditionalLatencyInMillisecond");

                // availability of health probe settings parameters
                bool isProbePath              = this.MyInvocation.BoundParameters.ContainsKey("ProbePath");
                bool isProbeRequestType       = this.MyInvocation.BoundParameters.ContainsKey("ProbeRequestType");
                bool isProbeProtocol          = this.MyInvocation.BoundParameters.ContainsKey("ProbeProtocol");
                bool isProbeIntervalInSeconds = this.MyInvocation.BoundParameters.ContainsKey("ProbeIntervalInSeconds");

                // availability of parameters on the origin group
                bool isTrafficRestorationTimeToHealedOrNewEndpointsInMinutes = this.MyInvocation.BoundParameters.ContainsKey("TrafficRestorationTimeToHealedOrNewEndpointsInMinutes");

                AFDOriginGroup afdOriginGroup = new AFDOriginGroup()
                {
                    LoadBalancingSettings = this.CreateLoadBalancingSettings(isSampleSize, isSuccessfulSampleRequired, isAdditionalLatencyInMilliseconds),
                    HealthProbeSettings   = this.CreateHealthProbeSettings(isProbePath, isProbeRequestType, isProbeProtocol, isProbeIntervalInSeconds),
                    TrafficRestorationTimeToHealedOrNewEndpointsInMinutes = isTrafficRestorationTimeToHealedOrNewEndpointsInMinutes ? this.TrafficRestorationTimeToHealedOrNewEndpointsInMinutes : 10
                };

                PSAfdOriginGroup psAfdOriginGroup = this.CdnManagementClient.AFDOriginGroups.Create(this.ResourceGroupName, this.ProfileName, this.OriginGroupName, afdOriginGroup).ToPSAfdOriginGroup();

                WriteObject(psAfdOriginGroup);
            }
            catch (AfdErrorResponseException errorResponse)
            {
                throw new PSArgumentException(errorResponse.Response.Content);
            }
        }
        private HealthProbeParameters CreateHealthProbeSettingsByObject(PSAfdOriginGroup currentPsAfdOriginGroup, PSAfdOriginGroup proposedPsAfdOriginGroup)
        {
            HealthProbeParameters healthProbeSettings = new HealthProbeParameters
            {
                ProbeIntervalInSeconds = currentPsAfdOriginGroup.ProbeIntervalInSeconds,
                ProbePath        = currentPsAfdOriginGroup.ProbePath,
                ProbeProtocol    = AfdUtilities.CreateProbeProtocol(currentPsAfdOriginGroup.ProbeProtocol),
                ProbeRequestType = AfdUtilities.CreateProbeRequestType(currentPsAfdOriginGroup.ProbeRequestType)
            };

            if (proposedPsAfdOriginGroup.ProbeIntervalInSeconds != currentPsAfdOriginGroup.ProbeIntervalInSeconds)
            {
                healthProbeSettings.ProbeIntervalInSeconds = proposedPsAfdOriginGroup.ProbeIntervalInSeconds;
            }

            if (proposedPsAfdOriginGroup.ProbePath != currentPsAfdOriginGroup.ProbePath)
            {
                healthProbeSettings.ProbePath = proposedPsAfdOriginGroup.ProbePath;
            }

            if (proposedPsAfdOriginGroup.ProbeProtocol != currentPsAfdOriginGroup.ProbeProtocol)
            {
                healthProbeSettings.ProbeProtocol = AfdUtilities.CreateProbeProtocol(proposedPsAfdOriginGroup.ProbeProtocol);
            }

            if (proposedPsAfdOriginGroup.ProbeRequestType != currentPsAfdOriginGroup.ProbeRequestType)
            {
                healthProbeSettings.ProbeRequestType = AfdUtilities.CreateProbeRequestType(proposedPsAfdOriginGroup.ProbeRequestType);
            }

            return(healthProbeSettings);
        }
        private LoadBalancingSettingsParameters CreateLoadBalancingSettingsByFields(PSAfdOriginGroup currentPsAfdOriginGroup, bool isSampleSize, bool isSuccessfulSampleRequired, bool isAdditionalLatencyInMilliseconds)
        {
            if (!isSampleSize && !isSuccessfulSampleRequired && !isAdditionalLatencyInMilliseconds)
            {
                return(null);
            }

            // keep the current values and only change them if they differ from the paramters aka this.SampleSize, this.SuccessfulSamplesRequired, this.AdditionalLatencyInMilliseconds
            LoadBalancingSettingsParameters loadBalancingSettings = new LoadBalancingSettingsParameters
            {
                SampleSize = currentPsAfdOriginGroup.SampleSize,
                SuccessfulSamplesRequired       = currentPsAfdOriginGroup.SuccessfulSamplesRequired,
                AdditionalLatencyInMilliseconds = currentPsAfdOriginGroup.AdditionalLatencyInMilliseconds
            };

            if (isSampleSize)
            {
                loadBalancingSettings.SampleSize = this.SampleSize;
            }

            if (isSuccessfulSampleRequired)
            {
                loadBalancingSettings.SuccessfulSamplesRequired = this.SuccessfulSamplesRequired;
            }

            if (isAdditionalLatencyInMilliseconds)
            {
                loadBalancingSettings.AdditionalLatencyInMilliseconds = this.AdditionalLatencyInMillisecond;
            }

            return(loadBalancingSettings);
        }
        private LoadBalancingSettingsParameters CreateLoadBalancingSettingsByObject(PSAfdOriginGroup currentPsAfdOriginGroup, PSAfdOriginGroup proposedPsAfdOriginGroup)
        {
            // keep current values and only change them if they differ from the input object aka this.OriginGroup
            LoadBalancingSettingsParameters loadBalancingSettings = new LoadBalancingSettingsParameters
            {
                SampleSize = currentPsAfdOriginGroup.SampleSize,
                SuccessfulSamplesRequired       = currentPsAfdOriginGroup.SuccessfulSamplesRequired,
                AdditionalLatencyInMilliseconds = currentPsAfdOriginGroup.AdditionalLatencyInMilliseconds
            };

            if (proposedPsAfdOriginGroup.SampleSize != currentPsAfdOriginGroup.SampleSize)
            {
                loadBalancingSettings.SampleSize = proposedPsAfdOriginGroup.SampleSize;
            }

            if (proposedPsAfdOriginGroup.SuccessfulSamplesRequired != currentPsAfdOriginGroup.SuccessfulSamplesRequired)
            {
                loadBalancingSettings.SuccessfulSamplesRequired = proposedPsAfdOriginGroup.SuccessfulSamplesRequired;
            }

            if (proposedPsAfdOriginGroup.AdditionalLatencyInMilliseconds != currentPsAfdOriginGroup.AdditionalLatencyInMilliseconds)
            {
                loadBalancingSettings.AdditionalLatencyInMilliseconds = proposedPsAfdOriginGroup.AdditionalLatencyInMilliseconds;
            }

            return(loadBalancingSettings);
        }
Ejemplo n.º 5
0
        private void ResourceIdParameterSetCmdlet()
        {
            ResourceIdentifier parsedAfdOriginGroupResourceId = new ResourceIdentifier(this.ResourceId);

            this.OriginGroupName   = parsedAfdOriginGroupResourceId.ResourceName;
            this.ProfileName       = parsedAfdOriginGroupResourceId.GetResourceName("profiles");
            this.ResourceGroupName = parsedAfdOriginGroupResourceId.ResourceGroupName;

            PSAfdOriginGroup psAfdOriginGroup = this.CdnManagementClient.AFDOriginGroups.Get(this.ResourceGroupName, this.ProfileName, this.OriginGroupName).ToPSAfdOriginGroup();

            WriteObject(psAfdOriginGroup);
        }
        private void UpdateAfdOriginGroup()
        {
            try
            {
                PSAfdOriginGroup currentPsAfdOriginGroup = this.CdnManagementClient.AFDOriginGroups.Get(this.ResourceGroupName, this.ProfileName, this.OriginGroupName).ToPSAfdOriginGroup();

                AFDOriginGroupUpdateParameters afdOriginGroupParameters = new AFDOriginGroupUpdateParameters();

                if (ParameterSetName == ObjectParameterSet)
                {
                    afdOriginGroupParameters.LoadBalancingSettings = this.CreateLoadBalancingSettingsByObject(currentPsAfdOriginGroup, this.OriginGroup);
                    afdOriginGroupParameters.HealthProbeSettings   = this.CreateHealthProbeSettingsByObject(currentPsAfdOriginGroup, this.OriginGroup);
                }
                else
                {
                    // availability of load balancing settings parameters
                    bool isSampleSize = this.MyInvocation.BoundParameters.ContainsKey("SampleSize");
                    bool isSuccessfulSampleRequired        = this.MyInvocation.BoundParameters.ContainsKey("SuccessfulSamplesRequired");
                    bool isAdditionalLatencyInMilliseconds = this.MyInvocation.BoundParameters.ContainsKey("AdditionalLatencyInMillisecond");

                    // availability of health probe settings parameters
                    bool isProbePath              = this.MyInvocation.BoundParameters.ContainsKey("ProbePath");
                    bool isProbeRequestType       = this.MyInvocation.BoundParameters.ContainsKey("ProbeRequestType");
                    bool isProbeProtocol          = this.MyInvocation.BoundParameters.ContainsKey("ProbeProtocol");
                    bool isProbeIntervalInSeconds = this.MyInvocation.BoundParameters.ContainsKey("ProbeIntervalInSeconds");

                    // availability of parameters on the origin group
                    bool isTrafficRestorationTimeToHealedOrNewEndpointsInMinutes = this.MyInvocation.BoundParameters.ContainsKey("TrafficRestorationTimeToHealedOrNewEndpointsInMinutes");

                    afdOriginGroupParameters.LoadBalancingSettings = this.CreateLoadBalancingSettingsByFields(currentPsAfdOriginGroup, isSampleSize, isSuccessfulSampleRequired, isAdditionalLatencyInMilliseconds);
                    afdOriginGroupParameters.HealthProbeSettings   = this.CreateHealthProbeSettingsByFields(currentPsAfdOriginGroup, isProbePath, isProbeRequestType, isProbeProtocol, isProbeIntervalInSeconds);

                    if (isTrafficRestorationTimeToHealedOrNewEndpointsInMinutes)
                    {
                        afdOriginGroupParameters.TrafficRestorationTimeToHealedOrNewEndpointsInMinutes = this.TrafficRestorationTimeToHealedOrNewEndpointsInMinutes;
                    }
                }

                PSAfdOriginGroup updatedPsAfdOriginGroup = this.CdnManagementClient.AFDOriginGroups.Update(this.ResourceGroupName, this.ProfileName, this.OriginGroupName, afdOriginGroupParameters).ToPSAfdOriginGroup();

                WriteObject(updatedPsAfdOriginGroup);
            }
            catch (AfdErrorResponseException errorResponse)
            {
                throw new PSArgumentException(errorResponse.Response.Content);
            }
        }
Ejemplo n.º 7
0
        private void FieldsParameterSetCmdlet()
        {
            if (AfdUtilities.IsValuePresent(this.OriginGroupName))
            {
                // all fields are present (mandatory + optional)

                PSAfdOriginGroup psAfdOriginGroup = this.CdnManagementClient.AFDOriginGroups.Get(this.ResourceGroupName, this.ProfileName, this.OriginGroupName).ToPSAfdOriginGroup();

                WriteObject(psAfdOriginGroup);
            }
            else
            {
                // only the mandatory fields are present

                List <PSAfdOriginGroup> pSAfdOriginGroups = this.CdnManagementClient.AFDOriginGroups.ListByProfile(this.ResourceGroupName, this.ProfileName)
                                                            .Select(afdOriginGroup => afdOriginGroup.ToPSAfdOriginGroup())
                                                            .ToList();

                WriteObject(pSAfdOriginGroups);
            }
        }
        private HealthProbeParameters CreateHealthProbeSettingsByFields(PSAfdOriginGroup currentPsAfdOriginGroup, bool isProbePath, bool isProbeRequestType, bool isProbeProtocol, bool isProbeIntervalInSeconds)
        {
            if (!isProbePath && !isProbeRequestType && !isProbeProtocol && !isProbeIntervalInSeconds)
            {
                return(null);
            }

            HealthProbeParameters healthProbeSettings = new HealthProbeParameters
            {
                ProbeIntervalInSeconds = currentPsAfdOriginGroup.ProbeIntervalInSeconds,
                ProbePath        = currentPsAfdOriginGroup.ProbePath,
                ProbeProtocol    = AfdUtilities.CreateProbeProtocol(currentPsAfdOriginGroup.ProbeProtocol),
                ProbeRequestType = AfdUtilities.CreateProbeRequestType(currentPsAfdOriginGroup.ProbeRequestType)
            };

            if (isProbePath)
            {
                healthProbeSettings.ProbePath = this.ProbePath;
            }

            if (isProbeRequestType)
            {
                healthProbeSettings.ProbeRequestType = AfdUtilities.CreateProbeRequestType(this.ProbeRequestType);
            }

            if (isProbeProtocol)
            {
                healthProbeSettings.ProbeProtocol = AfdUtilities.CreateProbeProtocol(this.ProbeProtocol);
            }

            if (isProbeIntervalInSeconds)
            {
                healthProbeSettings.ProbeIntervalInSeconds = this.ProbeIntervalInSeconds;
            }

            return(healthProbeSettings);
        }