コード例 #1
0
 public PathRule(string name, string path, BackendHttpSetting backendHttpSetting, BackendPool backendPool)
 {
     Name = name;
     Path = path;
     BackendHttpSetting = backendHttpSetting;
     BackendPool        = backendPool;
 }
コード例 #2
0
        public override void ExecuteCmdlet()
        {
            var existingProfile = FrontDoorManagementClient.FrontDoors.ListByResourceGroup(ResourceGroupName)
                                  .Where(p => p.Name.ToLower() == Name.ToLower());

            if (existingProfile.Count() != 0)
            {
                throw new PSArgumentException(string.Format(Resources.Error_CreateExistingFrontDoor,
                                                            Name,
                                                            ResourceGroupName));
            }
            var updateParameters = new Management.FrontDoor.Models.FrontDoorModel(
                id: null,
                name: Name,
                type: null,
                location: "global",
                tags: Tag.ToDictionaryTags(),
                friendlyName: Name,
                routingRules: RoutingRule?.Select(x => x.ToSdkRoutingRule()).ToList(),
                loadBalancingSettings: LoadBalancingSetting?.Select(x => x.ToSdkLoadBalancingSetting()).ToList(),
                healthProbeSettings: HealthProbeSetting?.Select(x => x.ToSdkHealthProbeSetting()).ToList(),
                backendPools: BackendPool?.Select(x => x.ToSdkBackendPool()).ToList(),
                frontendEndpoints: FrontendEndpoint?.Select(x => x.ToSdkFrontendEndpoints()).ToList(),
                enabledState: !this.IsParameterBound(c => c.EnabledState)? "Enabled" : EnabledState.ToString(),
                backendPoolsSettings: new Management.FrontDoor.Models.BackendPoolsSettings(
                    DisableCertificateNameCheck ? PSEnforceCertificateNameCheck.Disabled.ToString() : PSEnforceCertificateNameCheck.Enabled.ToString())
                );

            updateParameters.ToPSFrontDoor().ValidateFrontDoor(ResourceGroupName, this.DefaultContext.Subscription.Id);
            if (ShouldProcess(Resources.FrontDoorTarget, string.Format(Resources.CreateFrontDoor, Name)))
            {
                try
                {
                    var frontDoor = FrontDoorManagementClient.FrontDoors.CreateOrUpdate(
                        ResourceGroupName,
                        Name,
                        updateParameters
                        );
                    WriteObject(frontDoor.ToPSFrontDoor());
                }
                catch (Microsoft.Azure.Management.FrontDoor.Models.ErrorResponseException e)
                {
                    throw new PSArgumentException(string.Format(Resources.Error_ErrorResponseFromServer,
                                                                e.Response.Content));
                }
            }
        }
コード例 #3
0
            public IDefineRouting WithProbe(string path             = "/", int interval = 30, int timeout = 30, int unhealthyThreshold = 3,
                                            string matchStatusCodes = "200-399", string probeName = null)
            {
                _applicationGateway.Listeners.Add(_listener);
                var probe = new Probe(probeName ?? _appService.Name, _backendHttpSetting.Protocol, path, interval, timeout, unhealthyThreshold, matchStatusCodes);

                if (!_applicationGateway.Probes.Contains(probe))
                {
                    _applicationGateway.Probes.Add(probe);
                }
                else
                {
                    probe = _applicationGateway.Probes.Single(p => Equals(p, probe));
                }

                _backendHttpSetting.Probe = probe;

                if (!_applicationGateway.BackendHttpSettings.Contains(_backendHttpSetting))
                {
                    _applicationGateway.BackendHttpSettings.Add(_backendHttpSetting);
                }
                else
                {
                    _backendHttpSetting = _applicationGateway.BackendHttpSettings.Single(p => Equals(p, _backendHttpSetting));
                }

                var backendPool = new BackendPool
                {
                    Name      = _backendPoolName,
                    Addresses = { new BackendPoolAddress(_appService) }
                };

                if (!_applicationGateway.BackendPools.Contains(backendPool))
                {
                    _applicationGateway.BackendPools.Add(backendPool);
                }
                else
                {
                    backendPool = _applicationGateway.BackendPools.Single(p => Equals(p, backendPool));
                }


                _applicationGateway.Rules.Add(new BasicForwardRule(_ruleName, _listener, _backendHttpSetting, backendPool));

                return(_defineRouting);
            }
コード例 #4
0
            private BackendPool AddProbeAndBackendPool(string path, int interval, int timeout, int unhealthyThreshold, string matchStatusCodes, string probeName)
            {
                var probe = new Probe(probeName ?? _appService.Name, _backendHttpSetting.Protocol, path, interval, timeout, unhealthyThreshold, matchStatusCodes);

                if (!_applicationGateway.Probes.Contains(probe))
                {
                    _applicationGateway.Probes.Add(probe);
                }
                else
                {
                    probe = _applicationGateway.Probes.Single(p => Equals(p, probe));
                }

                _backendHttpSetting.Probe = probe;
                if (!_applicationGateway.BackendHttpSettings.Contains(_backendHttpSetting))
                {
                    _applicationGateway.BackendHttpSettings.Add(_backendHttpSetting);
                }
                else
                {
                    _backendHttpSetting = _applicationGateway.BackendHttpSettings.Single(p => Equals(p, _backendHttpSetting));
                }

                var backendPool = new BackendPool
                {
                    Name      = _backendPoolName,
                    Addresses = { new BackendPoolAddress(_appService) }
                };

                if (!_applicationGateway.BackendPools.Contains(backendPool))
                {
                    _applicationGateway.BackendPools.Add(backendPool);
                }
                else
                {
                    backendPool = _applicationGateway.BackendPools.Single(p => Equals(p, backendPool));
                }

                return(backendPool);
            }
コード例 #5
0
        public void FrontDoorCRUDTest()
        {
            var handler1 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };
            var handler2 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType()))
            {
                // Create clients
                var frontDoorMgmtClient = FrontDoorTestUtilities.GetFrontDoorManagementClient(context, handler1);
                var resourcesClient     = FrontDoorTestUtilities.GetResourceManagementClient(context, handler2);

                // Get subscription id
                string subid = frontDoorMgmtClient.SubscriptionId;

                // Create resource group
                var resourceGroupName = FrontDoorTestUtilities.CreateResourceGroup(resourcesClient);

                // Create two different frontDoor
                string frontDoorName = TestUtilities.GenerateName("frontDoor");

                ForwardingConfiguration forwardingConfiguration = new ForwardingConfiguration(
                    forwardingProtocol: "MatchRequest",
                    backendPool: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/backendPools/backendPool1"));

                RoutingRule routingrule1 = new RoutingRule(
                    name: "routingrule1",
                    frontendEndpoints: new List <refID> {
                    new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/frontendEndpoints/frontendEndpoint1")
                },
                    acceptedProtocols: new List <string> {
                    "Https"
                },
                    patternsToMatch: new List <string> {
                    "/*"
                },
                    routeConfiguration: forwardingConfiguration,
                    enabledState: "Enabled"
                    );
                HealthProbeSettingsModel healthProbeSettings1 = new HealthProbeSettingsModel(
                    name: "healthProbeSettings1",
                    path: "/",
                    protocol: "Http",
                    intervalInSeconds: 120,
                    healthProbeMethod: "Get",
                    enabledState: "Enabled"
                    );

                LoadBalancingSettingsModel loadBalancingSettings1 = new LoadBalancingSettingsModel(
                    name: "loadBalancingSettings1",
                    additionalLatencyMilliseconds: 0,
                    sampleSize: 4,
                    successfulSamplesRequired: 2
                    );

                Backend backend1 = new Backend(
                    address: "contoso1.azurewebsites.net",
                    httpPort: 80,
                    httpsPort: 443,
                    enabledState: "Enabled",
                    weight: 1,
                    priority: 2
                    );

                BackendPool backendPool1 = new BackendPool(
                    name: "backendPool1",
                    backends: new List <Backend> {
                    backend1
                },
                    loadBalancingSettings: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/loadBalancingSettings/loadBalancingSettings1"),
                    healthProbeSettings: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/healthProbeSettings/healthProbeSettings1")
                    );

                BackendPoolsSettings backendPoolsSettings1 = new BackendPoolsSettings(
                    sendRecvTimeoutSeconds: 123
                    );

                FrontendEndpoint frontendEndpoint1 = new FrontendEndpoint(
                    name: "frontendEndpoint1",
                    hostName: frontDoorName + ".azurefd.net",
                    sessionAffinityEnabledState: "Disabled",
                    sessionAffinityTtlSeconds: 0
                    );

                FrontDoorModel createParameters = new FrontDoorModel
                {
                    Location     = "global",
                    FriendlyName = frontDoorName,
                    Tags         = new Dictionary <string, string>
                    {
                        { "key1", "value1" },
                        { "key2", "value2" }
                    },
                    RoutingRules = new List <RoutingRule> {
                        routingrule1
                    },
                    LoadBalancingSettings = new List <LoadBalancingSettingsModel> {
                        loadBalancingSettings1
                    },
                    HealthProbeSettings = new List <HealthProbeSettingsModel> {
                        healthProbeSettings1
                    },
                    FrontendEndpoints = new List <FrontendEndpoint> {
                        frontendEndpoint1
                    },
                    BackendPools = new List <BackendPool> {
                        backendPool1
                    },
                    BackendPoolsSettings = backendPoolsSettings1
                };

                var createdFrontDoor = frontDoorMgmtClient.FrontDoors.CreateOrUpdate(resourceGroupName, frontDoorName, createParameters);

                // validate that correct frontdoor is created
                VerifyFrontDoor(createdFrontDoor, createParameters);

                // Retrieve frontdoor
                var retrievedFrontDoor = frontDoorMgmtClient.FrontDoors.Get(resourceGroupName, frontDoorName);

                // validate that correct frontdoor is retrieved
                VerifyFrontDoor(retrievedFrontDoor, createParameters);

                // update FrontDoor
                retrievedFrontDoor.Tags = new Dictionary <string, string>
                {
                    { "key3", "value3" },
                    { "key4", "value4" }
                };


                var updatedFrontDoor = frontDoorMgmtClient.FrontDoors.CreateOrUpdate(resourceGroupName, frontDoorName, retrievedFrontDoor);

                // validate that frontDoor is correctly updated
                VerifyFrontDoor(updatedFrontDoor, retrievedFrontDoor);

                // Delete frontDoor
                frontDoorMgmtClient.FrontDoors.Delete(resourceGroupName, frontDoorName);

                // Verify that frontDoor is deleted
                Assert.ThrowsAny <ErrorResponseException>(() =>
                {
                    frontDoorMgmtClient.FrontDoors.Get(resourceGroupName, frontDoorName);
                });

                FrontDoorTestUtilities.DeleteResourceGroup(resourcesClient, resourceGroupName);
            }
        }
コード例 #6
0
        public void FrontDoorCRUDTestWithRulesEngine()
        {
            var handler1 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };
            var handler2 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType()))
            {
                // Create clients
                var frontDoorMgmtClient = FrontDoorTestUtilities.GetFrontDoorManagementClient(context, handler1);
                var resourcesClient     = FrontDoorTestUtilities.GetResourceManagementClient(context, handler2);

                // Get subscription id
                string subid = frontDoorMgmtClient.SubscriptionId;

                // Create resource group
                var resourceGroupName = FrontDoorTestUtilities.CreateResourceGroup(resourcesClient);

                // Create two different frontDoor
                string frontDoorName = TestUtilities.GenerateName("frontDoor");

                ForwardingConfiguration forwardingConfiguration = new ForwardingConfiguration(
                    forwardingProtocol: "MatchRequest",
                    backendPool: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/backendPools/backendPool1"));

                RoutingRule routingrule1 = new RoutingRule(
                    name: "routingrule1",
                    frontendEndpoints: new List <refID> {
                    new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/frontendEndpoints/frontendEndpoint1")
                },
                    acceptedProtocols: new List <string> {
                    "Https"
                },
                    patternsToMatch: new List <string> {
                    "/*"
                },
                    routeConfiguration: forwardingConfiguration,
                    enabledState: "Enabled"
                    );
                HealthProbeSettingsModel healthProbeSettings1 = new HealthProbeSettingsModel(
                    name: "healthProbeSettings1",
                    path: "/",
                    protocol: "Http",
                    intervalInSeconds: 120,
                    healthProbeMethod: "Get",
                    enabledState: "Enabled"
                    );

                LoadBalancingSettingsModel loadBalancingSettings1 = new LoadBalancingSettingsModel(
                    name: "loadBalancingSettings1",
                    additionalLatencyMilliseconds: 0,
                    sampleSize: 4,
                    successfulSamplesRequired: 2
                    );

                Backend backend1 = new Backend(
                    address: "contoso1.azurewebsites.net",
                    httpPort: 80,
                    httpsPort: 443,
                    enabledState: "Enabled",
                    weight: 1,
                    priority: 2
                    );

                BackendPool backendPool1 = new BackendPool(
                    name: "backendPool1",
                    backends: new List <Backend> {
                    backend1
                },
                    loadBalancingSettings: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/loadBalancingSettings/loadBalancingSettings1"),
                    healthProbeSettings: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/healthProbeSettings/healthProbeSettings1")
                    );

                BackendPoolsSettings backendPoolsSettings1 = new BackendPoolsSettings(
                    sendRecvTimeoutSeconds: 123
                    );

                FrontendEndpoint frontendEndpoint1 = new FrontendEndpoint(
                    name: "frontendEndpoint1",
                    hostName: frontDoorName + ".azurefd.net",
                    sessionAffinityEnabledState: "Disabled",
                    sessionAffinityTtlSeconds: 0
                    );

                FrontDoorModel createParameters = new FrontDoorModel
                {
                    Location     = "global",
                    FriendlyName = frontDoorName,
                    Tags         = new Dictionary <string, string>
                    {
                        { "key1", "value1" },
                        { "key2", "value2" }
                    },
                    RoutingRules = new List <RoutingRule> {
                        routingrule1
                    },
                    LoadBalancingSettings = new List <LoadBalancingSettingsModel> {
                        loadBalancingSettings1
                    },
                    HealthProbeSettings = new List <HealthProbeSettingsModel> {
                        healthProbeSettings1
                    },
                    FrontendEndpoints = new List <FrontendEndpoint> {
                        frontendEndpoint1
                    },
                    BackendPools = new List <BackendPool> {
                        backendPool1
                    },
                    BackendPoolsSettings = backendPoolsSettings1
                };

                var createdFrontDoor = frontDoorMgmtClient.FrontDoors.CreateOrUpdate(resourceGroupName, frontDoorName, createParameters);

                // validate that correct frontdoor is created
                VerifyFrontDoor(createdFrontDoor, createParameters);

                // Create rules engine for front door
                RulesEngineAction rulesEngineAction1 = new RulesEngineAction(
                    requestHeaderActions: new List <HeaderAction> {
                },
                    responseHeaderActions: new List <HeaderAction> {
                },
                    routeConfigurationOverride: new ForwardingConfiguration(
                        customForwardingPath: null,
                        forwardingProtocol: "HttpsOnly",
                        cacheConfiguration: new CacheConfiguration(queryParameterStripDirective: "StripNone", dynamicCompression: "Disabled"),
                        backendPool: new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/backendPools/backendPool1")
                        )
                    );

                RulesEngineMatchCondition rulesEngineMatchCondition1 = new RulesEngineMatchCondition(
                    rulesEngineMatchVariable: "RequestHeader",
                    selector: "Rules-engine-action",
                    rulesEngineOperator: "Equal",
                    rulesEngineMatchValue: new List <string> {
                    "Route-override-forwarding"
                },
                    negateCondition: false,
                    transforms: new List <string> {
                }
                    );

                RulesEngineRule rule1 = new RulesEngineRule(
                    priority: 1,
                    name: "Rules1",
                    matchProcessingBehavior: "Stop",
                    action: rulesEngineAction1,
                    matchConditions: new List <RulesEngineMatchCondition> {
                    rulesEngineMatchCondition1
                }
                    );

                RulesEngine rulesEngine1 = new RulesEngine(
                    rules: new List <RulesEngineRule> {
                    rule1
                },
                    name: "RulesEngine1"
                    );

                var rulesEngineParameters = new List <RulesEngine> {
                    rulesEngine1
                };

                var createdRulesEngine = frontDoorMgmtClient.RulesEngines.CreateOrUpdate(resourceGroupName, frontDoorName, rulesEngine1.Name, rulesEngineParameters[0]);

                // Validate correct rules engine created
                VerifyRulesEngine(createdRulesEngine, rulesEngineParameters[0]);

                // Retrieve rules engines for front door
                var retrievedRulesEngines = frontDoorMgmtClient.RulesEngines.ListByFrontDoor(resourceGroupName, frontDoorName).ToList <RulesEngine>();

                // Validate correct rules engines retrieved from front door
                VerifyRulesEngines(retrievedRulesEngines, rulesEngineParameters);

                // Retrieve frontdoor and validate rules engine present
                var retrievedFrontDoor = frontDoorMgmtClient.FrontDoors.Get(resourceGroupName, frontDoorName);

                VerifyFrontDoor(retrievedFrontDoor, createParameters);
                VerifyRulesEngines(retrievedFrontDoor.RulesEngines, rulesEngineParameters);

                // Link rules engine to routing rule
                // why did sdk not autogenerate into subresource?
                retrievedFrontDoor.RoutingRules[0].RulesEngine = new refID("/subscriptions/" + subid + "/resourceGroups/" + resourceGroupName + "/providers/Microsoft.Network/frontDoors/" + frontDoorName + "/rulesEngines/" + rulesEngine1.Name);

                var updatedFrontDoor = frontDoorMgmtClient.FrontDoors.CreateOrUpdate(resourceGroupName, frontDoorName, retrievedFrontDoor);

                // Validate rules engine has been linked.
                VerifyFrontDoor(updatedFrontDoor, retrievedFrontDoor);

                // Unlink rules engine and delete rules engine.
                frontDoorMgmtClient.FrontDoors.CreateOrUpdate(resourceGroupName, frontDoorName, createParameters);
                frontDoorMgmtClient.RulesEngines.Delete(resourceGroupName, frontDoorName, rulesEngine1.Name);

                // Verify rules engine deleted
                retrievedRulesEngines = frontDoorMgmtClient.RulesEngines.ListByFrontDoor(resourceGroupName, frontDoorName).ToList <RulesEngine>();
                Assert.Empty(retrievedRulesEngines);

                // Delete frontDoor
                frontDoorMgmtClient.FrontDoors.Delete(resourceGroupName, frontDoorName);

                // Verify that frontDoor is deleted
                Assert.ThrowsAny <ErrorResponseException>(() =>
                {
                    frontDoorMgmtClient.FrontDoors.Get(resourceGroupName, frontDoorName);
                });

                FrontDoorTestUtilities.DeleteResourceGroup(resourcesClient, resourceGroupName);
            }
        }
コード例 #7
0
 /// <summary>
 /// Creates a new Backend Pool with the specified Pool name within the
 /// specified Front Door.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of the Resource group within the Azure subscription.
 /// </param>
 /// <param name='frontDoorName'>
 /// Name of the Front Door which is globally unique.
 /// </param>
 /// <param name='backendPoolName'>
 /// Name of the Backend Pool which is unique within the Front Door.
 /// </param>
 /// <param name='backendPoolParameters'>
 /// Backend Pool properties needed to create a new Pool.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <BackendPool> BeginCreateOrUpdateAsync(this IBackendPoolsOperations operations, string resourceGroupName, string frontDoorName, string backendPoolName, BackendPool backendPoolParameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(resourceGroupName, frontDoorName, backendPoolName, backendPoolParameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
コード例 #8
0
 /// <summary>
 /// Creates a new Backend Pool with the specified Pool name within the
 /// specified Front Door.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of the Resource group within the Azure subscription.
 /// </param>
 /// <param name='frontDoorName'>
 /// Name of the Front Door which is globally unique.
 /// </param>
 /// <param name='backendPoolName'>
 /// Name of the Backend Pool which is unique within the Front Door.
 /// </param>
 /// <param name='backendPoolParameters'>
 /// Backend Pool properties needed to create a new Pool.
 /// </param>
 public static BackendPool BeginCreateOrUpdate(this IBackendPoolsOperations operations, string resourceGroupName, string frontDoorName, string backendPoolName, BackendPool backendPoolParameters)
 {
     return(operations.BeginCreateOrUpdateAsync(resourceGroupName, frontDoorName, backendPoolName, backendPoolParameters).GetAwaiter().GetResult());
 }
コード例 #9
0
        public override void ExecuteCmdlet()
        {
            if (ParameterSetName == ObjectParameterSet)
            {
                ResourceIdentifier identifier = new ResourceIdentifier(InputObject.Id);
                ResourceGroupName = identifier.ResourceGroupName;
                Name = InputObject.Name;
            }
            else if (ParameterSetName == ResourceIdParameterSet)
            {
                ResourceIdentifier identifier = new ResourceIdentifier(ResourceId);
                ResourceGroupName = identifier.ResourceGroupName;
                Name = InputObject.Name;
            }


            var existingFrontDoor = FrontDoorManagementClient.FrontDoors.ListByResourceGroup(ResourceGroupName)
                                    .FirstOrDefault(fd => fd.Name.ToLower() == Name.ToLower());


            if (existingFrontDoor == null)
            {
                throw new PSArgumentException(string.Format(
                                                  Resources.Error_FrontDoorNotFound,
                                                  Name,
                                                  ResourceGroupName));
            }

            PSFrontDoor updateParameters;

            if (ParameterSetName == ObjectParameterSet)
            {
                updateParameters = InputObject;
            }
            else
            {
                updateParameters = existingFrontDoor.ToPSFrontDoor();
            }

            // update each field based on optional input.
            if (this.IsParameterBound(c => c.RoutingRule))
            {
                updateParameters.RoutingRules = RoutingRule.ToList();
            }

            if (this.IsParameterBound(c => c.FrontendEndpoint))
            {
                updateParameters.FrontendEndpoints = FrontendEndpoint.ToList();
            }

            if (this.IsParameterBound(c => c.HealthProbeSetting))
            {
                updateParameters.HealthProbeSettings = HealthProbeSetting.ToList();
            }

            if (this.IsParameterBound(c => c.LoadBalancingSetting))
            {
                updateParameters.LoadBalancingSettings = LoadBalancingSetting.ToList();
            }

            if (this.IsParameterBound(c => c.BackendPool))
            {
                updateParameters.BackendPools = BackendPool.ToList();
            }

            if (this.IsParameterBound(c => c.Tag))
            {
                updateParameters.Tags = Tag;
            }

            if (this.IsParameterBound(c => c.EnabledState))
            {
                updateParameters.EnabledState = EnabledState;
            }

            if (this.IsParameterBound(c => c.DisableCertificateNameCheck))
            {
                updateParameters.EnforceCertificateNameCheck = DisableCertificateNameCheck ? PSEnforceCertificateNameCheck.Disabled : PSEnforceCertificateNameCheck.Enabled;
            }

            updateParameters.ValidateFrontDoor(ResourceGroupName, this.DefaultContext.Subscription.Id);
            if (ShouldProcess(Resources.FrontDoorTarget, string.Format(Resources.FrontDoorChangeWarning, Name)))
            {
                try
                {
                    var frontDoor = FrontDoorManagementClient.FrontDoors.CreateOrUpdate(
                        ResourceGroupName,
                        Name,
                        updateParameters.ToSdkFrontDoor()
                        );
                    WriteObject(frontDoor.ToPSFrontDoor());
                }
                catch (Microsoft.Azure.Management.FrontDoor.Models.ErrorResponseException e)
                {
                    throw new PSArgumentException(string.Format(
                                                      Resources.Error_ErrorResponseFromServer,
                                                      e.Response.Content));
                }
            }
        }
コード例 #10
0
 public UrlPathMap WithRule(string name, string path, BackendHttpSetting backendHttpSetting,
                            BackendPool backendPool)
 {
     _rules.Add(new PathRule(name, path, backendHttpSetting, backendPool));
     return(this);
 }
コード例 #11
0
 public UrlPathMap(string name, BackendHttpSetting defaultBackendHttpSetting, BackendPool defaultBackendPool)
 {
     Name = name;
     DefaultBackendHttpSetting = defaultBackendHttpSetting;
     DefaultBackendPool        = defaultBackendPool;
 }
コード例 #12
0
 public BasicForwardRule(string name, Listener listener, BackendHttpSetting backendHttpSetting, BackendPool backendPool) : base(name, listener)
 {
     BackendHttpSetting = backendHttpSetting;
     BackendPool        = backendPool;
 }