VirtualNetworkPeering IOperationSource <VirtualNetworkPeering> .CreateResult(Response response, CancellationToken cancellationToken) { using var document = JsonDocument.Parse(response.ContentStream); var data = VirtualNetworkPeeringData.DeserializeVirtualNetworkPeeringData(document.RootElement); return(new VirtualNetworkPeering(_armClient, data)); }
internal static VirtualNetworkPeeringListResult DeserializeVirtualNetworkPeeringListResult(JsonElement element) { Optional <IReadOnlyList <VirtualNetworkPeeringData> > value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } List <VirtualNetworkPeeringData> array = new List <VirtualNetworkPeeringData>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(VirtualNetworkPeeringData.DeserializeVirtualNetworkPeeringData(item)); } value = array; continue; } if (property.NameEquals("nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new VirtualNetworkPeeringListResult(Optional.ToList(value), nextLink.Value)); }
public async Task VirtualNetworkPeeringTest() { string resourceGroupName = Recording.GenerateAssetName("csmrg"); string location = TestEnvironment.Location; var resourceGroup = await CreateResourceGroup(resourceGroupName); string vnet1Name = Recording.GenerateAssetName("azsmnet"); string vnet2Name = Recording.GenerateAssetName("azsmnet"); string subnet1Name = Recording.GenerateAssetName("azsmnet"); string subnet2Name = Recording.GenerateAssetName("azsmnet"); var vnet = new VirtualNetworkData() { Location = location, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.0.0.0/16", } }, DhcpOptions = new DhcpOptions() { DnsServers = { "10.1.1.1", "10.1.2.4" } }, Subnets = { new SubnetData() { Name = subnet1Name, AddressPrefix = "10.0.1.0/24", }, new SubnetData() { Name = subnet2Name, AddressPrefix = "10.0.2.0/24" } } }; // Put Vnet var virtualNetworkCollection = resourceGroup.GetVirtualNetworks(); var putVnetResponseOperation = await virtualNetworkCollection.CreateOrUpdateAsync(true, vnet1Name, vnet); Response <VirtualNetwork> putVnetResponse = await putVnetResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putVnetResponse.Value.Data.ProvisioningState.ToString()); // Get Vnet Response <VirtualNetwork> getVnetResponse = await virtualNetworkCollection.GetAsync(vnet1Name); Assert.AreEqual(vnet1Name, getVnetResponse.Value.Data.Name); Assert.NotNull(getVnetResponse.Value.Data.ResourceGuid); Assert.AreEqual("Succeeded", getVnetResponse.Value.Data.ProvisioningState.ToString()); // Create vnet2 var vnet2 = new VirtualNetworkData() { Location = location, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.1.0.0/16", } }, Subnets = { new SubnetData() { Name = subnet1Name, AddressPrefix = "10.1.1.0/24" } } }; // Put Vnet2 var putVnet2Operation = await virtualNetworkCollection.CreateOrUpdateAsync(true, vnet2Name, vnet2); Response <VirtualNetwork> putVnet2 = await putVnet2Operation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putVnet2.Value.Data.ProvisioningState.ToString()); // Create peering object var peering = new VirtualNetworkPeeringData() { AllowForwardedTraffic = true, RemoteVirtualNetwork = new WritableSubResource { Id = putVnet2.Value.Id } }; // Create Peering var virtualNetworkPeeringCollection = getVnetResponse.Value.GetVirtualNetworkPeerings(); await virtualNetworkPeeringCollection.CreateOrUpdateAsync(true, "peer1", peering); // Get Peering VirtualNetworkPeering getPeer = await virtualNetworkPeeringCollection.GetAsync("peer1"); Assert.AreEqual("peer1", getPeer.Data.Name); Assert.True(getPeer.Data.AllowForwardedTraffic); Assert.True(getPeer.Data.AllowVirtualNetworkAccess); Assert.False(getPeer.Data.AllowGatewayTransit); Assert.NotNull(getPeer.Data.RemoteVirtualNetwork); Assert.AreEqual(putVnet2.Value.Id, getPeer.Data.RemoteVirtualNetwork.Id); // List Peering AsyncPageable <VirtualNetworkPeering> listPeerAP = virtualNetworkPeeringCollection.GetAllAsync(); List <VirtualNetworkPeering> listPeer = await listPeerAP.ToEnumerableAsync(); Has.One.EqualTo(listPeer); Assert.AreEqual("peer1", listPeer[0].Data.Name); Assert.True(listPeer[0].Data.AllowForwardedTraffic); Assert.True(listPeer[0].Data.AllowVirtualNetworkAccess); Assert.False(listPeer[0].Data.AllowGatewayTransit); Assert.NotNull(listPeer[0].Data.RemoteVirtualNetwork); Assert.AreEqual(putVnet2.Value.Id, listPeer[0].Data.RemoteVirtualNetwork.Id); // Get peering from GET vnet VirtualNetwork peeringVnet = await virtualNetworkCollection.GetAsync(vnet1Name); Assert.AreEqual(vnet1Name, peeringVnet.Data.Name); Has.One.EqualTo(peeringVnet.Data.VirtualNetworkPeerings); Assert.AreEqual("peer1", peeringVnet.Data.VirtualNetworkPeerings[0].Name); Assert.True(peeringVnet.Data.VirtualNetworkPeerings[0].AllowForwardedTraffic); Assert.True(peeringVnet.Data.VirtualNetworkPeerings[0].AllowVirtualNetworkAccess); Assert.False(peeringVnet.Data.VirtualNetworkPeerings[0].AllowGatewayTransit); Assert.NotNull(peeringVnet.Data.VirtualNetworkPeerings[0].RemoteVirtualNetwork); Assert.AreEqual(putVnet2.Value.Id, peeringVnet.Data.VirtualNetworkPeerings[0].RemoteVirtualNetwork.Id); // Delete Peering var deleteOperation = await getPeer.DeleteAsync(true); await deleteOperation.WaitForCompletionResponseAsync();; listPeerAP = virtualNetworkPeeringCollection.GetAllAsync(); listPeer = await listPeerAP.ToEnumerableAsync(); Assert.IsEmpty(listPeer); peeringVnet = await virtualNetworkCollection.GetAsync(vnet1Name); Assert.AreEqual(vnet1Name, peeringVnet.Data.Name); Assert.IsEmpty(peeringVnet.Data.VirtualNetworkPeerings); // Delete Vnets await putVnet2.Value.DeleteAsync(true); await putVnetResponse.Value.DeleteAsync(true); }
public async Task VirtualNetworkPeeringApiTest() { string resourceGroupName = Recording.GenerateAssetName("csmrg"); var location = "westus"; var resourceGroup = await CreateResourceGroup(resourceGroupName); string vnetName = Recording.GenerateAssetName("azsmnet"); string remoteVirtualNetworkName = Recording.GenerateAssetName("azsmnet"); string vnetPeeringName = Recording.GenerateAssetName("azsmnet"); string subnet1Name = Recording.GenerateAssetName("azsmnet"); string subnet2Name = Recording.GenerateAssetName("azsmnet"); var vnet = new VirtualNetworkData() { Location = location, AddressSpace = new AddressSpace() { AddressPrefixes = { "10.0.0.0/16", } }, DhcpOptions = new DhcpOptions() { DnsServers = { "10.1.1.1", "10.1.2.4" } }, Subnets = { new SubnetData() { Name = subnet1Name, AddressPrefix = "10.0.1.0/24", }, new SubnetData() { Name = subnet2Name, AddressPrefix = "10.0.2.0/24", } } }; // Put Vnet var virtualNetworkCollection = resourceGroup.GetVirtualNetworks(); var putVnetResponseOperation = await virtualNetworkCollection.CreateOrUpdateAsync(true, vnetName, vnet); Response <VirtualNetwork> putVnetResponse = await putVnetResponseOperation.WaitForCompletionAsync();; Assert.AreEqual("Succeeded", putVnetResponse.Value.Data.ProvisioningState.ToString()); // Get Vnet Response <VirtualNetwork> getVnetResponse = await virtualNetworkCollection.GetAsync(vnetName); Assert.AreEqual(vnetName, getVnetResponse.Value.Data.Name); Assert.NotNull(getVnetResponse.Value.Data.ResourceGuid); Assert.AreEqual("Succeeded", getVnetResponse.Value.Data.ProvisioningState.ToString()); // Get all Vnets AsyncPageable <VirtualNetwork> getAllVnetsAP = virtualNetworkCollection.GetAllAsync(); await getAllVnetsAP.ToEnumerableAsync(); vnet.AddressSpace.AddressPrefixes[0] = "10.1.0.0/16"; vnet.Subnets[0].AddressPrefix = "10.1.1.0/24"; vnet.Subnets[1].AddressPrefix = "10.1.2.0/24"; var remoteVirtualNetworkOperation = await virtualNetworkCollection.CreateOrUpdateAsync(true, remoteVirtualNetworkName, vnet); Response <VirtualNetwork> remoteVirtualNetwork = await remoteVirtualNetworkOperation.WaitForCompletionAsync();; // Get Peerings in the vnet var virtualNetworkPeeringCollection = resourceGroup.GetVirtualNetworks().Get(vnetName).Value.GetVirtualNetworkPeerings(); AsyncPageable <VirtualNetworkPeering> listPeeringAP = virtualNetworkPeeringCollection.GetAllAsync(); List <VirtualNetworkPeering> listPeering = await listPeeringAP.ToEnumerableAsync(); Assert.IsEmpty(listPeering); var peering = new VirtualNetworkPeeringData { Name = vnetPeeringName, RemoteVirtualNetwork = new WritableSubResource { Id = remoteVirtualNetwork.Value.Id }, AllowForwardedTraffic = true, AllowVirtualNetworkAccess = false }; // Put peering in the vnet var putPeeringOperation = await virtualNetworkPeeringCollection.CreateOrUpdateAsync(true, vnetPeeringName, peering); Response <VirtualNetworkPeering> putPeering = await putPeeringOperation.WaitForCompletionAsync();; Assert.NotNull(putPeering.Value.Data.Etag); Assert.AreEqual(vnetPeeringName, putPeering.Value.Data.Name); Assert.AreEqual(remoteVirtualNetwork.Value.Id, putPeering.Value.Data.RemoteVirtualNetwork.Id); Assert.AreEqual(peering.AllowForwardedTraffic, putPeering.Value.Data.AllowForwardedTraffic); Assert.AreEqual(peering.AllowVirtualNetworkAccess, putPeering.Value.Data.AllowVirtualNetworkAccess); Assert.False(putPeering.Value.Data.UseRemoteGateways); Assert.False(putPeering.Value.Data.AllowGatewayTransit); Assert.AreEqual(VirtualNetworkPeeringState.Initiated, putPeering.Value.Data.PeeringState); // get peering Response <VirtualNetworkPeering> getPeering = await virtualNetworkPeeringCollection.GetAsync(vnetPeeringName); Assert.AreEqual(getPeering.Value.Data.Etag, putPeering.Value.Data.Etag); Assert.AreEqual(vnetPeeringName, getPeering.Value.Data.Name); Assert.AreEqual(remoteVirtualNetwork.Value.Id, getPeering.Value.Data.RemoteVirtualNetwork.Id); Assert.AreEqual(peering.AllowForwardedTraffic, getPeering.Value.Data.AllowForwardedTraffic); Assert.AreEqual(peering.AllowVirtualNetworkAccess, getPeering.Value.Data.AllowVirtualNetworkAccess); Assert.False(getPeering.Value.Data.UseRemoteGateways); Assert.False(getPeering.Value.Data.AllowGatewayTransit); Assert.AreEqual(VirtualNetworkPeeringState.Initiated, getPeering.Value.Data.PeeringState); // list peering listPeeringAP = virtualNetworkPeeringCollection.GetAllAsync(); listPeering = await listPeeringAP.ToEnumerableAsync(); Has.One.EqualTo(listPeering); Assert.AreEqual(listPeering.ElementAt(0).Data.Etag, putPeering.Value.Data.Etag); Assert.AreEqual(vnetPeeringName, listPeering.ElementAt(0).Data.Name); Assert.AreEqual(remoteVirtualNetwork.Value.Id, listPeering.ElementAt(0).Data.RemoteVirtualNetwork.Id); Assert.AreEqual(peering.AllowForwardedTraffic, listPeering.ElementAt(0).Data.AllowForwardedTraffic); Assert.AreEqual(peering.AllowVirtualNetworkAccess, listPeering.ElementAt(0).Data.AllowVirtualNetworkAccess); Assert.False(listPeering.ElementAt(0).Data.UseRemoteGateways); Assert.False(listPeering.ElementAt(0).Data.AllowGatewayTransit); Assert.AreEqual(VirtualNetworkPeeringState.Initiated, listPeering.ElementAt(0).Data.PeeringState); // delete peering await getPeering.Value.DeleteAsync(true); listPeeringAP = virtualNetworkPeeringCollection.GetAllAsync(); listPeering = await listPeeringAP.ToEnumerableAsync(); Assert.IsEmpty(listPeering); // Delete Vnet await putVnetResponse.Value.DeleteAsync(true); await remoteVirtualNetwork.Value.DeleteAsync(true); // Get all Vnets getAllVnetsAP = virtualNetworkCollection.GetAllAsync(); List <VirtualNetwork> getAllVnets = await getAllVnetsAP.ToEnumerableAsync(); Assert.IsEmpty(getAllVnets); }