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); }
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); } }
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); }