public static PSAfdSecret ToPSAfdSecret(this SdkAfdSecret sdkAfdSecret)
        {
            if (sdkAfdSecret.Parameters.GetType() == typeof(CustomerCertificateParameters))
            {
                CustomerCertificateParameters customerCertificateParameters = (CustomerCertificateParameters)sdkAfdSecret.Parameters;

                return(new PSAfdSecret
                {
                    Id = sdkAfdSecret.Id,
                    Name = sdkAfdSecret.Name,
                    Type = sdkAfdSecret.Type,
                    ProvisioningState = sdkAfdSecret.ProvisioningState,
                    CertificateAuthority = customerCertificateParameters.CertificateAuthority,
                    SecretSource = customerCertificateParameters.SecretSource?.Id,
                    SecretVersion = customerCertificateParameters.SecretVersion,
                    SubjectAlternativeNames = (List <string>)customerCertificateParameters.SubjectAlternativeNames,
                    UseLatestVersion = customerCertificateParameters.UseLatestVersion
                });
            }

            return(new PSAfdSecret
            {
                Id = sdkAfdSecret.Id,
                Name = sdkAfdSecret.Name,
                Type = sdkAfdSecret.Type,
                ProvisioningState = sdkAfdSecret.ProvisioningState
            });
        }
예제 #2
0
        public void AFDSecretDeleteTest()
        {
            var handler1 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };
            var handler2 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType()))
            {
                // Create clients
                var cdnMgmtClient   = CdnTestUtilities.GetCdnManagementClient(context, handler1);
                var resourcesClient = CdnTestUtilities.GetResourceManagementClient(context, handler2);

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

                try
                {
                    // Create a standard Azure frontdoor profile
                    string  profileName      = TestUtilities.GenerateName("profile");
                    Profile createParameters = new Profile
                    {
                        Location = "WestUs",
                        Sku      = new Sku {
                            Name = SkuName.StandardAzureFrontDoor
                        },
                        Tags = new Dictionary <string, string>
                        {
                            { "key1", "value1" },
                            { "key2", "value2" }
                        }
                    };
                    var profile = cdnMgmtClient.Profiles.Create(resourceGroupName, profileName, createParameters);

                    // Create a standard Azure frontdoor profile
                    string secretName   = TestUtilities.GenerateName("secretName");
                    var    secretSource = new ResourceReference("/subscriptions/d7cfdb98-c118-458d-8bdf-246be66b1f5e/resourceGroups/cdn-powershell-test/providers/Microsoft.KeyVault/vaults/cdn-powershell-test-kv/certificates/cdn-powershell-test-cer");
                    CustomerCertificateParameters parameters = new CustomerCertificateParameters(secretSource)
                    {
                        UseLatestVersion        = true,
                        SubjectAlternativeNames = new List <string>(),
                    };


                    var secret = cdnMgmtClient.Secrets.Create(resourceGroupName, profileName, secretName, parameters);
                    cdnMgmtClient.Secrets.Delete(resourceGroupName, profileName, secretName);
                }
                finally
                {
                    // Delete resource group
                    _ = CdnTestUtilities.DeleteResourceGroupAsync(resourcesClient, resourceGroupName);
                }
            }
        }
예제 #3
0
        private void UpdateAfdSecret()
        {
            try
            {
                CustomerCertificateParameters afdCustomerCertificate = new CustomerCertificateParameters
                {
                    SecretSource            = new ResourceReference(this.SecretSource),
                    SecretVersion           = this.SecretVersion,
                    CertificateAuthority    = this.CertificateAuthority,
                    UseLatestVersion        = this.UseLatestVersion.IsPresent ? true : false,
                    SubjectAlternativeNames = this.SubjectAlternativeName
                };

                this.CdnManagementClient.Secrets.Update(this.ResourceGroupName, this.ProfileName, this.SecretName, afdCustomerCertificate);
            }
            catch (AfdErrorResponseException errorResponseException)
            {
                throw new PSArgumentException(errorResponseException.Response.Content);
            }
        }
예제 #4
0
        public void AFDCustomDomainUpdateTest()
        {
            var handler1 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };
            var handler2 = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType()))
            {
                // Create clients
                var cdnMgmtClient   = CdnTestUtilities.GetCdnManagementClient(context, handler1);
                var resourcesClient = CdnTestUtilities.GetResourceManagementClient(context, handler2);

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

                try
                {
                    // Create a standard Azure frontdoor profile
                    string  profileName      = TestUtilities.GenerateName("profile");
                    Profile createParameters = new Profile
                    {
                        Location = "WestUs",
                        Sku      = new Sku {
                            Name = SkuName.StandardAzureFrontDoor
                        },
                        Tags = new Dictionary <string, string>
                        {
                            { "key1", "value1" },
                            { "key2", "value2" }
                        }
                    };
                    var profile = cdnMgmtClient.Profiles.Create(resourceGroupName, profileName, createParameters);

                    // Create a standard Azure frontdoor profile secret
                    string secretName   = TestUtilities.GenerateName("secretName");
                    var    secretSource = new ResourceReference("/subscriptions/d7cfdb98-c118-458d-8bdf-246be66b1f5e/resourceGroups/cdn-powershell-test/providers/Microsoft.KeyVault/vaults/cdn-powershell-test-kv/certificates/cdn-powershell-test-cer");
                    CustomerCertificateParameters parameters = new CustomerCertificateParameters(secretSource)
                    {
                        UseLatestVersion        = true,
                        SubjectAlternativeNames = new List <string>(),
                    };

                    var secret = cdnMgmtClient.Secrets.Create(resourceGroupName, profileName, secretName, parameters);

                    // Create a standard Azure frontdoor profile customDomain
                    string    customDomainName          = TestUtilities.GenerateName("customDomainName");
                    var       hostName                  = "csharpsdk.dev.cdn.azure.cn";
                    AFDDomain afdDomainCreateParameters = new AFDDomain()
                    {
                        HostName    = hostName,
                        TlsSettings = new AFDDomainHttpsParameters
                        {
                            CertificateType   = "CustomerCertificate",
                            MinimumTlsVersion = AfdMinimumTlsVersion.TLS12,
                            Secret            = new ResourceReference(secret.Id)
                        },
                    };

                    //Need manualy add dns txt record
                    var afdDomain = cdnMgmtClient.AFDCustomDomains.Create(resourceGroupName, profileName, customDomainName, afdDomainCreateParameters);
                    Assert.NotNull(afdDomain);
                    Assert.Equal("Approved", afdDomain.DomainValidationState);

                    var updateTlsSettingsParams = new AFDDomainHttpsParameters
                    {
                        CertificateType   = "CustomerCertificate",
                        MinimumTlsVersion = AfdMinimumTlsVersion.TLS10,
                        Secret            = new ResourceReference(secret.Id)
                    };
                    var updatedAfdDomain = cdnMgmtClient.AFDCustomDomains.Update(resourceGroupName, profileName, customDomainName, updateTlsSettingsParams);
                    Assert.NotNull(updateTlsSettingsParams);
                    Assert.Equal("Approved", updatedAfdDomain.DomainValidationState);
                    Assert.Equal(updateTlsSettingsParams.MinimumTlsVersion, updatedAfdDomain.TlsSettings.MinimumTlsVersion);
                }
                finally
                {
                    // Delete resource group
                    _ = CdnTestUtilities.DeleteResourceGroupAsync(resourcesClient, resourceGroupName);
                }
            }
        }