internal static void CreatePrivateZones( DnsManagementClient dnsClient, ResourceGroup resourceGroup, IList <string> zonesNames, ResourceManagementClient resourcesClient, NetworkManagementClient networkManagementClient) { var location = ResourceGroupHelper.GetResourceLocation(resourcesClient, "microsoft.network/dnszones"); foreach (var zonesName in zonesNames) { var registrationVnets = Enumerable.Range(0, 1).Select(i => ResourceGroupHelper.CreateVirtualNetwork(resourceGroup.Name, networkManagementClient)).ToList(); var resolutionVnets = Enumerable.Range(0, 1).Select(i => ResourceGroupHelper.CreateVirtualNetwork(resourceGroup.Name, networkManagementClient)).ToList(); ResourceGroupHelper.CreatePrivateZone( dnsClient, zonesName, location, registrationVnets.Select(vNet => new SubResource { Id = vNet.Id }).ToList(), resolutionVnets.Select(vNet => new SubResource { Id = vNet.Id }).ToList(), resourceGroup); } }
private static SingleRecordSetTestContext SetupSingleRecordSetTestForPrivateZone( MockContext context) { var testContext = new SingleRecordSetTestContext(); testContext.ResourcesHandler = new RecordedDelegatingHandler { StatusCodeToReturn = System.Net.HttpStatusCode.OK }; testContext.DnsHandler = new RecordedDelegatingHandler { StatusCodeToReturn = System.Net.HttpStatusCode.OK }; testContext.NetworkHandler = new RecordedDelegatingHandler { StatusCodeToReturn = System.Net.HttpStatusCode.OK }; testContext.DnsClient = ResourceGroupHelper.GetDnsClient( context, testContext.DnsHandler); testContext.NetworkClient = ResourceGroupHelper.GetNetworkClient( context, testContext.NetworkHandler); var resourceManagementClient = ResourceGroupHelper.GetResourcesClient( context, testContext.ResourcesHandler); testContext.ZoneName = TestUtilities.GenerateName("hydratest.dnszone.com"); testContext.RecordSetName = TestUtilities.GenerateName("hydratestdnsrec"); testContext.Location = ResourceGroupHelper.GetResourceLocation( resourceManagementClient, "microsoft.network/dnszones"); testContext.ResourceGroup = ResourceGroupHelper.CreateResourceGroup( resourceManagementClient); testContext.RegistationVirtualNetworks = new List <VirtualNetwork> { ResourceGroupHelper.CreateVirtualNetwork(testContext.ResourceGroup.Name, testContext.NetworkClient) }; testContext.ResolutionVirtualNetworks = new List <VirtualNetwork> { ResourceGroupHelper.CreateVirtualNetwork(testContext.ResourceGroup.Name, testContext.NetworkClient) }; ResourceGroupHelper.CreatePrivateZone( testContext.DnsClient, testContext.ZoneName, testContext.Location, testContext.RegistationVirtualNetworks.Select(vNet => new SubResource { Id = vNet.Id }).ToList(), testContext.ResolutionVirtualNetworks.Select(vNet => new SubResource { Id = vNet.Id }).ToList(), testContext.ResourceGroup); return(testContext); }
public void CrudPrivateZoneFullCycle() { using (var context = MockContext.Start(GetType().FullName)) { var resourcesHandler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; var dnsHandler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; var networkHandler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; var dnsClient = ResourceGroupHelper.GetDnsClient(context, dnsHandler); var resourceManagementClient = ResourceGroupHelper.GetResourcesClient(context, resourcesHandler); var networkManagementClient = ResourceGroupHelper.GetNetworkClient(context, networkHandler); var zoneName = TestUtilities.GenerateName("hydratest.privatednszone.com"); var location = ResourceGroupHelper.GetResourceLocation(resourceManagementClient, "microsoft.network/dnszones"); var resourceGroup = ResourceGroupHelper.CreateResourceGroup(resourceManagementClient); var registrationVnet = ResourceGroupHelper.CreateVirtualNetwork(resourceGroup.Name, networkManagementClient); var resolutionVnet = ResourceGroupHelper.CreateVirtualNetwork(resourceGroup.Name, networkManagementClient); void AssertPrivateZoneInvariants(Zone zone) { if (zone == null) { throw new ArgumentNullException(nameof(zone)); } Assert.Equal(zoneName, zone.Name); Assert.Equal(ZoneType.Private, zone.ZoneType); Assert.False(string.IsNullOrEmpty(zone.Etag)); } // Create private zone clean, verify reponse var createdPrivateZone = dnsClient.Zones.CreateOrUpdate( resourceGroup.Name, zoneName, new Zone { Location = location, ZoneType = ZoneType.Private, Tags = new Dictionary <string, string> { { "tag1", "value1" } }, RegistrationVirtualNetworks = new List <SubResource> { new SubResource(registrationVnet.Id) }, ResolutionVirtualNetworks = new List <SubResource> { new SubResource(resolutionVnet.Id) } }); AssertPrivateZoneInvariants(createdPrivateZone); Assert.Equal(1, createdPrivateZone.Tags.Count); Assert.True(!createdPrivateZone.NameServers.IsAny()); // Ensure that Id is parseable into resourceGroup var resourceGroupName = ExtractResourceGroupNameFromId(createdPrivateZone.Id); Assert.Equal(resourceGroupName, resourceGroup.Name); var regVirtualNetworkName = ExtractVirtualNetworkNameFromId(createdPrivateZone.RegistrationVirtualNetworks[0].Id); Assert.Equal(regVirtualNetworkName, registrationVnet.Name); var resVirtualNetworkName = ExtractVirtualNetworkNameFromId(createdPrivateZone.ResolutionVirtualNetworks[0].Id); Assert.Equal(resVirtualNetworkName, resolutionVnet.Name); // Retrieve the zone after create, verify response var retrievedPrivateZone = dnsClient.Zones.Get(resourceGroup.Name, zoneName); AssertPrivateZoneInvariants(retrievedPrivateZone); Assert.Equal(1, retrievedPrivateZone.Tags.Count); Assert.True(!retrievedPrivateZone.NameServers.IsAny()); // Call Update on the object returned by Create (important distinction from Get below) createdPrivateZone.Tags = new Dictionary <string, string> { { "tag1", "value1" }, { "tag2", "value2" } }; var updateResponse = dnsClient.Zones.CreateOrUpdate(resourceGroup.Name, zoneName, ifMatch: null, ifNoneMatch: null, parameters: createdPrivateZone); AssertPrivateZoneInvariants(updateResponse); Assert.Equal(2, updateResponse.Tags.Count); // Retrieve the zone after create, verify response retrievedPrivateZone = dnsClient.Zones.Get(resourceGroup.Name, zoneName); AssertPrivateZoneInvariants(retrievedPrivateZone); Assert.Equal(2, retrievedPrivateZone.Tags.Count); // Call Update on the object returned by Get (important distinction from Create above) retrievedPrivateZone.Tags = new Dictionary <string, string> { { "tag1", "value1" }, { "tag2", "value2" }, { "tag3", "value3" } }; updateResponse = dnsClient.Zones.CreateOrUpdate(resourceGroup.Name, zoneName, ifMatch: null, ifNoneMatch: null, parameters: retrievedPrivateZone); AssertPrivateZoneInvariants(updateResponse); Assert.Equal(3, updateResponse.Tags.Count); // Delete the zone DeleteZones(dnsClient, resourceGroup, new[] { zoneName }); } }