public async Task VirtualNetworkPeeringApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            var location = "westus";
            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

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

            VirtualNetwork vnet = new VirtualNetwork()
            {
                Location     = location,
                AddressSpace = new AddressSpace()
                {
                    AddressPrefixes = new List <string>()
                    {
                        "10.0.0.0/16",
                    }
                },
                DhcpOptions = new DhcpOptions()
                {
                    DnsServers = new List <string>()
                    {
                        "10.1.1.1", "10.1.2.4"
                    }
                },
                Subnets = new List <Subnet>()
                {
                    new Subnet()
                    {
                        Name = subnet1Name, AddressPrefix = "10.0.1.0/24",
                    }, new Subnet()
                    {
                        Name = subnet2Name, AddressPrefix = "10.0.2.0/24",
                    }
                }
            };

            // Put Vnet
            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            Response <VirtualNetwork> putVnetResponse = await WaitForCompletionAsync(putVnetResponseOperation);

            Assert.AreEqual("Succeeded", putVnetResponse.Value.ProvisioningState.ToString());

            // Get Vnet
            Response <VirtualNetwork> getVnetResponse = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnetName);

            Assert.AreEqual(vnetName, getVnetResponse.Value.Name);
            Assert.NotNull(getVnetResponse.Value.ResourceGuid);
            Assert.AreEqual("Succeeded", getVnetResponse.Value.ProvisioningState.ToString());

            // Get all Vnets
            AsyncPageable <VirtualNetwork> getAllVnetsAP = NetworkManagementClient.VirtualNetworks.ListAsync(resourceGroupName);
            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";
            VirtualNetworksCreateOrUpdateOperation remoteVirtualNetworkOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, remoteVirtualNetworkName, vnet);

            Response <VirtualNetwork> remoteVirtualNetwork = await WaitForCompletionAsync(remoteVirtualNetworkOperation);

            // Get Peerings in the vnet
            AsyncPageable <VirtualNetworkPeering> listPeeringAP = NetworkManagementClient.VirtualNetworkPeerings.ListAsync(resourceGroupName, vnetName);
            List <VirtualNetworkPeering>          listPeering   = await listPeeringAP.ToEnumerableAsync();

            Assert.IsEmpty(listPeering);

            VirtualNetworkPeering peering = new VirtualNetworkPeering
            {
                Name = vnetPeeringName,
                RemoteVirtualNetwork = new SubResource
                {
                    Id = remoteVirtualNetwork.Value.Id
                },
                AllowForwardedTraffic     = true,
                AllowVirtualNetworkAccess = false
            };

            // Put peering in the vnet
            VirtualNetworkPeeringsCreateOrUpdateOperation putPeeringOperation = await NetworkManagementClient.VirtualNetworkPeerings.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnetPeeringName, peering);

            Response <VirtualNetworkPeering> putPeering = await WaitForCompletionAsync(putPeeringOperation);

            Assert.NotNull(putPeering.Value.Etag);
            Assert.AreEqual(vnetPeeringName, putPeering.Value.Name);
            Assert.AreEqual(remoteVirtualNetwork.Value.Id, putPeering.Value.RemoteVirtualNetwork.Id);
            Assert.AreEqual(peering.AllowForwardedTraffic, putPeering.Value.AllowForwardedTraffic);
            Assert.AreEqual(peering.AllowVirtualNetworkAccess, putPeering.Value.AllowVirtualNetworkAccess);
            Assert.False(putPeering.Value.UseRemoteGateways);
            Assert.False(putPeering.Value.AllowGatewayTransit);
            Assert.AreEqual(VirtualNetworkPeeringState.Initiated, putPeering.Value.PeeringState);

            // get peering
            Response <VirtualNetworkPeering> getPeering = await NetworkManagementClient.VirtualNetworkPeerings.GetAsync(resourceGroupName, vnetName, vnetPeeringName);

            Assert.AreEqual(getPeering.Value.Etag, putPeering.Value.Etag);
            Assert.AreEqual(vnetPeeringName, getPeering.Value.Name);
            Assert.AreEqual(remoteVirtualNetwork.Value.Id, getPeering.Value.RemoteVirtualNetwork.Id);
            Assert.AreEqual(peering.AllowForwardedTraffic, getPeering.Value.AllowForwardedTraffic);
            Assert.AreEqual(peering.AllowVirtualNetworkAccess, getPeering.Value.AllowVirtualNetworkAccess);
            Assert.False(getPeering.Value.UseRemoteGateways);
            Assert.False(getPeering.Value.AllowGatewayTransit);
            Assert.AreEqual(VirtualNetworkPeeringState.Initiated, getPeering.Value.PeeringState);

            // list peering
            listPeeringAP = NetworkManagementClient.VirtualNetworkPeerings.ListAsync(resourceGroupName, vnetName);
            listPeering   = await listPeeringAP.ToEnumerableAsync();

            Has.One.EqualTo(listPeering);
            Assert.AreEqual(listPeering.ElementAt(0).Etag, putPeering.Value.Etag);
            Assert.AreEqual(vnetPeeringName, listPeering.ElementAt(0).Name);
            Assert.AreEqual(remoteVirtualNetwork.Value.Id, listPeering.ElementAt(0).RemoteVirtualNetwork.Id);
            Assert.AreEqual(peering.AllowForwardedTraffic, listPeering.ElementAt(0).AllowForwardedTraffic);
            Assert.AreEqual(peering.AllowVirtualNetworkAccess, listPeering.ElementAt(0).AllowVirtualNetworkAccess);
            Assert.False(listPeering.ElementAt(0).UseRemoteGateways);
            Assert.False(listPeering.ElementAt(0).AllowGatewayTransit);
            Assert.AreEqual(VirtualNetworkPeeringState.Initiated, listPeering.ElementAt(0).PeeringState);

            // delete peering
            await NetworkManagementClient.VirtualNetworkPeerings.StartDeleteAsync(resourceGroupName, vnetName, vnetPeeringName);

            listPeeringAP = NetworkManagementClient.VirtualNetworkPeerings.ListAsync(resourceGroupName, vnetName);
            listPeering   = await listPeeringAP.ToEnumerableAsync();

            Assert.IsEmpty(listPeering);

            // Delete Vnet
            await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, vnetName);

            await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, remoteVirtualNetworkName);

            // Get all Vnets
            getAllVnetsAP = NetworkManagementClient.VirtualNetworks.ListAsync(resourceGroupName);
            List <VirtualNetwork> getAllVnets = await getAllVnetsAP.ToEnumerableAsync();

            Assert.IsEmpty(getAllVnets);
        }
        public async Task ApplicationGatewayApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = "West US";
            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnetName     = Recording.GenerateAssetName("azsmnet");
            string gwSubnetName = Recording.GenerateAssetName("azsmnet");
            string subnet2Name  = Recording.GenerateAssetName("azsmnet");
            string appGwName    = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                    {
                        Name = gwSubnetName, AddressPrefix = "10.0.0.0/24"
                    },
                    new Subnet()
                    {
                        Name = subnet2Name, AddressPrefix = "10.0.1.0/24"
                    }
                }
            };

            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            await WaitForCompletionAsync(putVnetResponseOperation);

            Response <VirtualNetwork> getVnetResponse = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnetName);

            Response <Subnet> getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, gwSubnetName);

            Console.WriteLine("Virtual Network GatewaySubnet Id: {0}", getSubnetResponse.Value.Id);
            Response <Subnet> gwSubnet = getSubnetResponse;

            ApplicationGateway appGw = CreateApplicationGateway(location, gwSubnet, resourceGroupName, appGwName, TestEnvironment.SubscriptionId);

            // Put AppGw
            Operation <ApplicationGateway> putAppGw = await NetworkManagementClient.ApplicationGateways.StartCreateOrUpdateAsync(resourceGroupName, appGwName, appGw);

            Response <ApplicationGateway> putAppGwResponse = await WaitForCompletionAsync(putAppGw);

            Assert.AreEqual("Succeeded", putAppGwResponse.Value.ProvisioningState.ToString());

            // Get AppGw
            Response <ApplicationGateway> getGateway = await NetworkManagementClient.ApplicationGateways.GetAsync(resourceGroupName, appGwName);

            Assert.AreEqual(appGwName, getGateway.Value.Name);
            CompareApplicationGateway(appGw, getGateway);

            // Get available WAF rule sets (validate first result set/group)
            Response <ApplicationGatewayAvailableWafRuleSetsResult> availableWAFRuleSets = await NetworkManagementClient.ApplicationGateways.ListAvailableWafRuleSetsAsync();

            Assert.NotNull(availableWAFRuleSets);
            Assert.IsNotEmpty(availableWAFRuleSets.Value.Value);
            Assert.NotNull(availableWAFRuleSets.Value.Value[0].Name);
            Assert.NotNull(availableWAFRuleSets.Value.Value[0].RuleSetType);
            Assert.NotNull(availableWAFRuleSets.Value.Value[0].RuleSetVersion);
            Assert.IsNotEmpty(availableWAFRuleSets.Value.Value[0].RuleGroups);
            Assert.NotNull(availableWAFRuleSets.Value.Value[0].RuleGroups[0].RuleGroupName);
            Assert.IsNotEmpty(availableWAFRuleSets.Value.Value[0].RuleGroups[0].Rules);
            // Assert.NotNull(availableWAFRuleSets.Value[0].RuleGroups[0].Rules[0].RuleId);

            // Get availalbe SSL options
            Response <ApplicationGatewayAvailableSslOptions> sslOptions = await NetworkManagementClient.ApplicationGateways.ListAvailableSslOptionsAsync();

            Assert.NotNull(sslOptions.Value.DefaultPolicy);
            Assert.NotNull(sslOptions.Value.AvailableCipherSuites);
            Assert.NotNull(sslOptions.Value.AvailableCipherSuites[20]);

            AsyncPageable <ApplicationGatewaySslPredefinedPolicy>    policies   = NetworkManagementClient.ApplicationGateways.ListAvailableSslPredefinedPoliciesAsync();
            IAsyncEnumerator <ApplicationGatewaySslPredefinedPolicy> enumerator = policies.GetAsyncEnumerator();

            Assert.True(enumerator.MoveNextAsync().Result);
            Assert.NotNull(enumerator.Current.Name);

            Task <Response <ApplicationGatewaySslPredefinedPolicy> > policy = NetworkManagementClient.ApplicationGateways.GetSslPredefinedPolicyAsync(ApplicationGatewaySslPolicyName.AppGwSslPolicy20150501.ToString());

            Assert.NotNull(policy.Result.Value.MinProtocolVersion);
            Assert.NotNull(policy.Result.Value.CipherSuites);
            Assert.NotNull(policy.Result.Value.CipherSuites[20]);

            // Create Nics
            string nic1name = Recording.GenerateAssetName("azsmnet");
            string nic2name = Recording.GenerateAssetName("azsmnet");

            Task <NetworkInterface> nic1 = CreateNetworkInterface(
                nic1name,
                resourceGroupName,
                null,
                getVnetResponse.Value.Subnets[1].Id,
                location,
                "ipconfig",
                NetworkManagementClient);

            Task <NetworkInterface> nic2 = CreateNetworkInterface(
                nic2name,
                resourceGroupName,
                null,
                getVnetResponse.Value.Subnets[1].Id,
                location,
                "ipconfig",
                NetworkManagementClient);

            // Add NIC to application gateway backend address pool.
            nic1.Result.IpConfigurations[0].ApplicationGatewayBackendAddressPools.Add(getGateway.Value.BackendAddressPools[1]);
            nic2.Result.IpConfigurations[0].ApplicationGatewayBackendAddressPools.Add(getGateway.Value.BackendAddressPools[1]);
            // Put Nics
            NetworkInterfacesCreateOrUpdateOperation createOrUpdateOperation1 = await NetworkManagementClient.NetworkInterfaces.StartCreateOrUpdateAsync(resourceGroupName, nic1name, nic1.Result);

            await WaitForCompletionAsync(createOrUpdateOperation1);

            NetworkInterfacesCreateOrUpdateOperation createOrUpdateOperation2 = await NetworkManagementClient.NetworkInterfaces.StartCreateOrUpdateAsync(resourceGroupName, nic2name, nic2.Result);

            await WaitForCompletionAsync(createOrUpdateOperation2);

            // Get AppGw backend health
            Operation <ApplicationGatewayBackendHealth> backendHealthOperation = await NetworkManagementClient.ApplicationGateways.StartBackendHealthAsync(resourceGroupName, appGwName, "true");

            Response <ApplicationGatewayBackendHealth> backendHealth = await WaitForCompletionAsync(backendHealthOperation);

            Assert.AreEqual(2, backendHealth.Value.BackendAddressPools.Count);
            Assert.AreEqual(1, backendHealth.Value.BackendAddressPools[0].BackendHttpSettingsCollection.Count);
            Assert.AreEqual(1, backendHealth.Value.BackendAddressPools[1].BackendHttpSettingsCollection.Count);
            Assert.True(backendHealth.Value.BackendAddressPools[1].BackendAddressPool.BackendIPConfigurations.Any());

            //Start AppGw
            await NetworkManagementClient.ApplicationGateways.StartStartAsync(resourceGroupName, appGwName);

            // Get AppGw and make sure nics are added to backend
            getGateway = await NetworkManagementClient.ApplicationGateways.GetAsync(resourceGroupName, appGwName);

            Assert.AreEqual(2, getGateway.Value.BackendAddressPools[1].BackendIPConfigurations.Count);

            //Stop AppGw
            await NetworkManagementClient.ApplicationGateways.StartStopAsync(resourceGroupName, appGwName);

            // Delete AppGw
            await NetworkManagementClient.ApplicationGateways.StartDeleteAsync(resourceGroupName, appGwName);
        }
Beispiel #3
0
        public async Task SubnetResourceNavigationLinksTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/virtualNetworks");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnetName   = Recording.GenerateAssetName("azsmnet");
            string subnetName = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                            {
                                Name = subnetName, AddressPrefix = "10.0.0.0/24",
                            } }
            };

            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            await WaitForCompletionAsync(putVnetResponseOperation);

            Response <Subnet> getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, subnetName);

            Assert.Null(getSubnetResponse.Value.ResourceNavigationLinks);

            //TODO:Need RedisManagementClient
            //redisClient.Redis.CreateOrUpdateWithHttpMessagesAsync(resourceGroupName, redisName, parameters: new RedisCreateOrUpdateParameters
            //{
            //    Location = location,
            //    Sku = new Microsoft.Azure.Management.Redis.Models.Sku()
            //    {
            //        Name = SkuName.Premium,
            //        Family = SkuFamily.P,
            //        Capacity = 1
            //    },
            //    SubnetId = getSubnetResponse.Id
            //}).Wait();

            // wait for maximum 30 minutes for cache to create
            //for (int i = 0; i < 60; i++)
            //{
            //    TestUtilities.Wait(new TimeSpan(0, 0, 30));
            //    RedisResource responseGet = redisClient.Redis.Get(resourceGroupName: resourceGroupName, name: redisName);
            //    if ("succeeded".Equals(responseGet.ProvisioningState, StringComparison.OrdinalIgnoreCase))
            //    {
            //        break;
            //    }
            //    Assert.False(i == 60, "Cache is not in succeeded state even after 30 min.");
            //}

            getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, subnetName);

            Assert.AreEqual(1, getSubnetResponse.Value.ResourceNavigationLinks.Count);
        }
Beispiel #4
0
        public async Task SubnetApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/virtualNetworks");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnetName    = Recording.GenerateAssetName("azsmnet");
            string subnet1Name = Recording.GenerateAssetName("azsmnet");
            string subnet2Name = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                            {
                                Name = subnet1Name, AddressPrefix = "10.0.0.0/24",
                            } }
            };

            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            await WaitForCompletionAsync(putVnetResponseOperation);

            // Create a Subnet
            // Populate paramters for a Subnet
            Subnet subnet = new Subnet()
            {
                Name          = subnet2Name,
                AddressPrefix = "10.0.1.0/24",
            };

            #region Verification
            SubnetsCreateOrUpdateOperation putSubnetResponseOperation = await NetworkManagementClient.Subnets.StartCreateOrUpdateAsync(resourceGroupName, vnetName, subnet2Name, subnet);
            await WaitForCompletionAsync(putSubnetResponseOperation);

            Response <VirtualNetwork> getVnetResponse = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnetName);

            Assert.AreEqual(2, getVnetResponse.Value.Subnets.Count());

            Response <Subnet> getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, subnet2Name);

            // Verify the getSubnetResponse
            Assert.True(AreSubnetsEqual(getVnetResponse.Value.Subnets[1], getSubnetResponse));

            AsyncPageable <Subnet> getSubnetListResponseAP = NetworkManagementClient.Subnets.ListAsync(resourceGroupName, vnetName);
            List <Subnet>          getSubnetListResponse   = await getSubnetListResponseAP.ToEnumerableAsync();

            // Verify ListSubnets
            Assert.True(AreSubnetsEqual(getVnetResponse.Value.Subnets, getSubnetListResponse));

            // Delete the subnet "subnet1"
            await NetworkManagementClient.Subnets.StartDeleteAsync(resourceGroupName, vnetName, subnet2Name);

            // Verify that the deletion was successful
            getSubnetListResponseAP = NetworkManagementClient.Subnets.ListAsync(resourceGroupName, vnetName);
            getSubnetListResponse   = await getSubnetListResponseAP.ToEnumerableAsync();

            Has.One.EqualTo(getSubnetListResponse);
            Assert.AreEqual(subnet1Name, getSubnetListResponse.ElementAt(0).Name);
            #endregion
        }
Beispiel #5
0
        public async Task SubnetRouteTableTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/routeTables");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string routeTableName = Recording.GenerateAssetName("azsmnet");
            string route1Name     = Recording.GenerateAssetName("azsmnet");

            RouteTable routeTable = new RouteTable()
            {
                Location = location,
            };

            routeTable.Routes = new List <Route>();

            Route route1 = new Route()
            {
                AddressPrefix    = "192.168.1.0/24",
                Name             = route1Name,
                NextHopIpAddress = "23.108.1.1",
                NextHopType      = RouteNextHopType.VirtualAppliance
            };

            routeTable.Routes.Add(route1);

            // Put RouteTable
            RouteTablesCreateOrUpdateOperation putRouteTableResponseOperation = await NetworkManagementClient.RouteTables.StartCreateOrUpdateAsync(resourceGroupName, routeTableName, routeTable);

            Response <RouteTable> putRouteTableResponse = await WaitForCompletionAsync(putRouteTableResponseOperation);

            Assert.AreEqual("Succeeded", putRouteTableResponse.Value.ProvisioningState.ToString());

            // Get RouteTable
            Response <RouteTable> getRouteTableResponse = await NetworkManagementClient.RouteTables.GetAsync(resourceGroupName, routeTableName);

            // Verify that the subnet reference is null
            Assert.Null(getRouteTableResponse.Value.Subnets);

            // Create Vnet with subnet and add a route table
            string vnetName   = Recording.GenerateAssetName("azsmnet");
            string subnetName = Recording.GenerateAssetName("azsmnet");

            var vnet = new VirtualNetwork()
            {
                Location = location,

                AddressSpace = new AddressSpace()
                {
                    AddressPrefixes = new List <string>()
                    {
                        "10.0.0.0/16",
                    }
                },
                DhcpOptions = new DhcpOptions()
                {
                    DnsServers = new List <string>()
                    {
                        "10.1.1.1", "10.1.2.4"
                    }
                },
                Subnets = new List <Subnet>()
                {
                    new Subnet()
                    {
                        Name          = subnetName,
                        AddressPrefix = "10.0.0.0/24",
                        RouteTable    = new RouteTable()
                        {
                            Id = getRouteTableResponse.Value.Id,
                        }
                    }
                }
            };

            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            Response <VirtualNetwork> putVnetResponse = await WaitForCompletionAsync(putVnetResponseOperation);

            Assert.AreEqual("Succeeded", putVnetResponse.Value.ProvisioningState.ToString());

            Response <Subnet> getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, subnetName);

            Assert.AreEqual(getSubnetResponse.Value.RouteTable.Id, getRouteTableResponse.Value.Id);

            // Get RouteTable
            getRouteTableResponse = await NetworkManagementClient.RouteTables.GetAsync(resourceGroupName, routeTableName);

            Assert.AreEqual(1, getRouteTableResponse.Value.Subnets.Count);
            Assert.AreEqual(getSubnetResponse.Value.Id, getRouteTableResponse.Value.Subnets[0].Id);
        }
Beispiel #6
0
        public async Task VirtualNetworkApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/virtualNetworks");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnetName    = Recording.GenerateAssetName("azsmnet");
            string subnet1Name = Recording.GenerateAssetName("azsmnet");
            string subnet2Name = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                            {
                                Name = subnet1Name, AddressPrefix = "10.0.1.0/24",
                            }, new Subnet()
                            {
                                Name = subnet2Name, AddressPrefix = "10.0.2.0/24",
                            } }
            };

            // Put Vnet
            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            Response <VirtualNetwork> putVnetResponse = await WaitForCompletionAsync(putVnetResponseOperation);

            Assert.AreEqual("Succeeded", putVnetResponse.Value.ProvisioningState.ToString());

            // Get Vnet
            Response <VirtualNetwork> getVnetResponse = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnetName);

            Assert.AreEqual(vnetName, getVnetResponse.Value.Name);
            Assert.NotNull(getVnetResponse.Value.ResourceGuid);
            Assert.AreEqual("Succeeded", getVnetResponse.Value.ProvisioningState.ToString());
            Assert.AreEqual("10.1.1.1", getVnetResponse.Value.DhcpOptions.DnsServers[0]);
            Assert.AreEqual("10.1.2.4", getVnetResponse.Value.DhcpOptions.DnsServers[1]);
            Assert.AreEqual("10.0.0.0/16", getVnetResponse.Value.AddressSpace.AddressPrefixes[0]);
            Assert.AreEqual(subnet1Name, getVnetResponse.Value.Subnets[0].Name);
            Assert.AreEqual(subnet2Name, getVnetResponse.Value.Subnets[1].Name);

            // Get all Vnets
            AsyncPageable <VirtualNetwork> getAllVnetsAP = NetworkManagementClient.VirtualNetworks.ListAsync(resourceGroupName);
            List <VirtualNetwork>          getAllVnets   = await getAllVnetsAP.ToEnumerableAsync();

            Assert.AreEqual(vnetName, getAllVnets.ElementAt(0).Name);
            Assert.AreEqual("Succeeded", getAllVnets.ElementAt(0).ProvisioningState.ToString());
            Assert.AreEqual("10.0.0.0/16", getAllVnets.ElementAt(0).AddressSpace.AddressPrefixes[0]);
            Assert.AreEqual(subnet1Name, getAllVnets.ElementAt(0).Subnets[0].Name);
            Assert.AreEqual(subnet2Name, getAllVnets.ElementAt(0).Subnets[1].Name);

            // Get all Vnets in a subscription
            AsyncPageable <VirtualNetwork> getAllVnetInSubscriptionAP = NetworkManagementClient.VirtualNetworks.ListAllAsync();
            List <VirtualNetwork>          getAllVnetInSubscription   = await getAllVnetInSubscriptionAP.ToEnumerableAsync();

            Assert.IsNotEmpty(getAllVnetInSubscription);

            // Delete Vnet
            VirtualNetworksDeleteOperation deleteOperation = await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, vnetName);

            await WaitForCompletionAsync(deleteOperation);

            // Get all Vnets
            getAllVnetsAP = NetworkManagementClient.VirtualNetworks.ListAsync(resourceGroupName);
            getAllVnets   = await getAllVnetsAP.ToEnumerableAsync();

            Assert.IsEmpty(getAllVnets);
        }
Beispiel #7
0
        public async Task VirtualNetworkUsageTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/virtualNetworks");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnetName   = Recording.GenerateAssetName("azsmnet");
            string subnetName = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                            {
                                Name = subnetName, AddressPrefix = "10.0.1.0/24"
                            } }
            };

            // Put Vnet
            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            Response <VirtualNetwork> putVnetResponse = await WaitForCompletionAsync(putVnetResponseOperation);

            Assert.AreEqual("Succeeded", putVnetResponse.Value.ProvisioningState.ToString());

            Response <Subnet> getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, subnetName);

            // Get Vnet usage
            AsyncPageable <VirtualNetworkUsage> listUsageResponseAP = NetworkManagementClient.VirtualNetworks.ListUsageAsync(resourceGroupName, vnetName);
            List <VirtualNetworkUsage>          listUsageResponse   = await listUsageResponseAP.ToEnumerableAsync();

            Assert.AreEqual(0.0, listUsageResponse[0].CurrentValue);

            // Create Nic
            string nicName      = Recording.GenerateAssetName("azsmnet");
            string ipConfigName = Recording.GenerateAssetName("azsmnet");

            NetworkInterface nicParameters = new NetworkInterface()
            {
                Location         = location,
                Tags             = { { "key", "value" } },
                IpConfigurations =
                {
                    new NetworkInterfaceIPConfiguration()
                    {
                        Name = ipConfigName,
                        PrivateIPAllocationMethod = IPAllocationMethod.Static,
                        PrivateIPAddress          = "10.0.1.9",
                        Subnet = new Subnet()
                        {
                            Id = getSubnetResponse.Value.Id
                        }
                    }
                }
            };

            NetworkInterfacesCreateOrUpdateOperation putNicResponseOperation = await NetworkManagementClient.NetworkInterfaces.StartCreateOrUpdateAsync(resourceGroupName, nicName, nicParameters);

            await WaitForCompletionAsync(putNicResponseOperation);

            // Get Vnet usage again
            listUsageResponseAP = NetworkManagementClient.VirtualNetworks.ListUsageAsync(resourceGroupName, vnetName);
            listUsageResponse   = await listUsageResponseAP.ToEnumerableAsync();

            Assert.AreEqual(1.0, listUsageResponse[0].CurrentValue);

            // Delete Vnet and Nic
            await NetworkManagementClient.NetworkInterfaces.StartDeleteAsync(resourceGroupName, nicName);

            await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, vnetName);
        }
Beispiel #8
0
        public async Task VirtualNetworkPeeringTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/virtualNetworks");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnet1Name   = Recording.GenerateAssetName("azsmnet");
            string vnet2Name   = Recording.GenerateAssetName("azsmnet");
            string subnet1Name = Recording.GenerateAssetName("azsmnet");
            string subnet2Name = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                            {
                                Name = subnet1Name, AddressPrefix = "10.0.1.0/24",
                            }, new Subnet()
                            {
                                Name = subnet2Name, AddressPrefix = "10.0.2.0/24"
                            } }
            };

            // Put Vnet
            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnet1Name, vnet);

            Response <VirtualNetwork> putVnetResponse = await WaitForCompletionAsync(putVnetResponseOperation);

            Assert.AreEqual("Succeeded", putVnetResponse.Value.ProvisioningState.ToString());

            // Get Vnet
            Response <VirtualNetwork> getVnetResponse = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnet1Name);

            Assert.AreEqual(vnet1Name, getVnetResponse.Value.Name);
            Assert.NotNull(getVnetResponse.Value.ResourceGuid);
            Assert.AreEqual("Succeeded", getVnetResponse.Value.ProvisioningState.ToString());

            // Create vnet2
            VirtualNetwork vnet2 = new VirtualNetwork()
            {
                Location     = location,
                AddressSpace = new AddressSpace()
                {
                    AddressPrefixes = { "10.1.0.0/16", }
                },
                Subnets = { new Subnet()
                            {
                                Name = subnet1Name, AddressPrefix = "10.1.1.0/24"
                            } }
            };

            // Put Vnet2
            VirtualNetworksCreateOrUpdateOperation putVnet2Operation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnet2Name, vnet2);

            Response <VirtualNetwork> putVnet2 = await WaitForCompletionAsync(putVnet2Operation);

            Assert.AreEqual("Succeeded", putVnet2.Value.ProvisioningState.ToString());

            // Create peering object
            var peering = new VirtualNetworkPeering()
            {
                AllowForwardedTraffic = true,
                RemoteVirtualNetwork  = new SubResource {
                    Id = putVnet2.Value.Id
                }
            };

            // Create Peering
            await NetworkManagementClient.VirtualNetworkPeerings.StartCreateOrUpdateAsync(resourceGroupName, vnet1Name, "peer1", peering);

            // Get Peering
            Response <VirtualNetworkPeering> getPeer = await NetworkManagementClient.VirtualNetworkPeerings.GetAsync(resourceGroupName, vnet1Name, "peer1");

            Assert.AreEqual("peer1", getPeer.Value.Name);
            Assert.True(getPeer.Value.AllowForwardedTraffic);
            Assert.True(getPeer.Value.AllowVirtualNetworkAccess);
            Assert.False(getPeer.Value.AllowGatewayTransit);
            Assert.NotNull(getPeer.Value.RemoteVirtualNetwork);
            Assert.AreEqual(putVnet2.Value.Id, getPeer.Value.RemoteVirtualNetwork.Id);

            // List Peering
            AsyncPageable <VirtualNetworkPeering> listPeerAP = NetworkManagementClient.VirtualNetworkPeerings.ListAsync(resourceGroupName, vnet1Name);
            List <VirtualNetworkPeering>          listPeer   = await listPeerAP.ToEnumerableAsync();

            Has.One.EqualTo(listPeer);
            Assert.AreEqual("peer1", listPeer[0].Name);
            Assert.True(listPeer[0].AllowForwardedTraffic);
            Assert.True(listPeer[0].AllowVirtualNetworkAccess);
            Assert.False(listPeer[0].AllowGatewayTransit);
            Assert.NotNull(listPeer[0].RemoteVirtualNetwork);
            Assert.AreEqual(putVnet2.Value.Id, listPeer[0].RemoteVirtualNetwork.Id);

            // Get peering from GET vnet
            Response <VirtualNetwork> peeringVnet = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnet1Name);

            Assert.AreEqual(vnet1Name, peeringVnet.Value.Name);
            Has.One.EqualTo(peeringVnet.Value.VirtualNetworkPeerings);
            Assert.AreEqual("peer1", peeringVnet.Value.VirtualNetworkPeerings[0].Name);
            Assert.True(peeringVnet.Value.VirtualNetworkPeerings[0].AllowForwardedTraffic);
            Assert.True(peeringVnet.Value.VirtualNetworkPeerings[0].AllowVirtualNetworkAccess);
            Assert.False(peeringVnet.Value.VirtualNetworkPeerings[0].AllowGatewayTransit);
            Assert.NotNull(peeringVnet.Value.VirtualNetworkPeerings[0].RemoteVirtualNetwork);
            Assert.AreEqual(putVnet2.Value.Id, peeringVnet.Value.VirtualNetworkPeerings[0].RemoteVirtualNetwork.Id);

            // Delete Peering
            VirtualNetworkPeeringsDeleteOperation deleteOperation = await NetworkManagementClient.VirtualNetworkPeerings.StartDeleteAsync(resourceGroupName, vnet1Name, "peer1");

            await WaitForCompletionAsync(deleteOperation);

            listPeerAP = NetworkManagementClient.VirtualNetworkPeerings.ListAsync(resourceGroupName, vnet1Name);
            listPeer   = await listPeerAP.ToEnumerableAsync();

            Assert.IsEmpty(listPeer);

            peeringVnet = await NetworkManagementClient.VirtualNetworks.GetAsync(resourceGroupName, vnet1Name);

            Assert.AreEqual(vnet1Name, peeringVnet.Value.Name);
            Assert.IsEmpty(peeringVnet.Value.VirtualNetworkPeerings);

            // Delete Vnets
            await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, vnet1Name);

            await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, vnet2Name);
        }
Beispiel #9
0
        public async Task VirtualNetworkCheckIpAddressAvailabilityTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location = await NetworkManagementTestUtilities.GetResourceLocation(ResourceManagementClient, "Microsoft.Network/virtualNetworks");

            await ResourceGroupsOperations.CreateOrUpdateAsync(resourceGroupName, new ResourceGroup(location));

            string vnetName   = Recording.GenerateAssetName("azsmnet");
            string subnetName = Recording.GenerateAssetName("azsmnet");

            VirtualNetwork vnet = new VirtualNetwork()
            {
                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 Subnet()
                            {
                                Name = subnetName, AddressPrefix = "10.0.1.0/24"
                            } }
            };

            // Put Vnet
            VirtualNetworksCreateOrUpdateOperation putVnetResponseOperation = await NetworkManagementClient.VirtualNetworks.StartCreateOrUpdateAsync(resourceGroupName, vnetName, vnet);

            Response <VirtualNetwork> putVnetResponse = await WaitForCompletionAsync(putVnetResponseOperation);

            Assert.AreEqual("Succeeded", putVnetResponse.Value.ProvisioningState.ToString());

            Response <Subnet> getSubnetResponse = await NetworkManagementClient.Subnets.GetAsync(resourceGroupName, vnetName, subnetName);

            // Create Nic
            string nicName      = Recording.GenerateAssetName("azsmnet");
            string ipConfigName = Recording.GenerateAssetName("azsmnet");

            NetworkInterface nicParameters = new NetworkInterface()
            {
                Location         = location,
                Tags             = { { "key", "value" } },
                IpConfigurations =
                {
                    new NetworkInterfaceIPConfiguration()
                    {
                        Name = ipConfigName,
                        PrivateIPAllocationMethod = IPAllocationMethod.Static,
                        PrivateIPAddress          = "10.0.1.9",
                        Subnet = new Subnet()
                        {
                            Id = getSubnetResponse.Value.Id
                        }
                    }
                }
            };

            NetworkInterfacesCreateOrUpdateOperation putNicResponseOperation = await NetworkManagementClient.NetworkInterfaces.StartCreateOrUpdateAsync(resourceGroupName, nicName, nicParameters);

            await WaitForCompletionAsync(putNicResponseOperation);

            // Check Ip Address availability API
            Response <IPAddressAvailabilityResult> responseAvailable = await NetworkManagementClient.VirtualNetworks.CheckIPAddressAvailabilityAsync(resourceGroupName, vnetName, "10.0.1.10");

            Assert.True(responseAvailable.Value.Available);
            Assert.IsEmpty(responseAvailable.Value.AvailableIPAddresses);

            Response <IPAddressAvailabilityResult> responseTaken = await NetworkManagementClient.VirtualNetworks.CheckIPAddressAvailabilityAsync(resourceGroupName, vnetName, "10.0.1.9");

            Assert.False(responseTaken.Value.Available);
            Assert.AreEqual(5, responseTaken.Value.AvailableIPAddresses.Count);

            await NetworkManagementClient.NetworkInterfaces.StartDeleteAsync(resourceGroupName, nicName);

            await NetworkManagementClient.VirtualNetworks.StartDeleteAsync(resourceGroupName, vnetName);
        }