public async Task CheckConnectivityVmToInternetTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("azsmnet");

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

            string virtualMachineName       = Recording.GenerateAssetName("azsmnet");
            string networkInterfaceName     = Recording.GenerateAssetName("azsmnet");
            string networkSecurityGroupName = virtualMachineName + "-nsg";

            //Deploy VM with a template
            await CreateVm(
                resourcesClient : ResourceManagementClient,
                resourceGroupName : resourceGroupName,
                location : location,
                virtualMachineName : virtualMachineName,
                storageAccountName : Recording.GenerateAssetName("azsmnet"),
                networkInterfaceName : networkInterfaceName,
                networkSecurityGroupName : networkSecurityGroupName,
                diagnosticsStorageAccountName : Recording.GenerateAssetName("azsmnet"),
                deploymentName : Recording.GenerateAssetName("azsmnet"),
                adminPassword : Recording.GenerateAlphaNumericId("AzureSDKNetworkTest#")
                );

            Response <VirtualMachine> getVm = await ComputeManagementClient.VirtualMachines.GetAsync(resourceGroupName, virtualMachineName);

            //Deploy networkWatcherAgent on VM
            VirtualMachineExtension parameters = new VirtualMachineExtension(location)
            {
                Publisher          = "Microsoft.Azure.NetworkWatcher",
                TypeHandlerVersion = "1.4",
                TypePropertiesType = "NetworkWatcherAgentWindows"
            };

            VirtualMachineExtensionsCreateOrUpdateOperation createOrUpdateOperation = await ComputeManagementClient.VirtualMachineExtensions.StartCreateOrUpdateAsync(resourceGroupName, getVm.Value.Name, "NetworkWatcherAgent", parameters);

            await WaitForCompletionAsync(createOrUpdateOperation);

            //TODO:There is no need to perform a separate create NetworkWatchers operation
            //Create network Watcher
            //string networkWatcherName = Recording.GenerateAssetName("azsmnet");
            //NetworkWatcher properties = new NetworkWatcher { Location = location };
            //await NetworkManagementClient.NetworkWatchers.CreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", properties);

            ConnectivityParameters connectivityParameters =
                new ConnectivityParameters(new ConnectivitySource(getVm.Value.Id), new ConnectivityDestination {
                Address = "bing.com", Port = 80
            });

            Operation <ConnectivityInformation> connectivityCheckOperation = await NetworkManagementClient.NetworkWatchers.StartCheckConnectivityAsync("NetworkWatcherRG", "NetworkWatcher_westus2", connectivityParameters);

            Response <ConnectivityInformation> connectivityCheck = await WaitForCompletionAsync(connectivityCheckOperation);

            //Validation
            Assert.AreEqual("Reachable", connectivityCheck.Value.ConnectionStatus.ToString());
            Assert.AreEqual(0, connectivityCheck.Value.ProbesFailed);
            Assert.AreEqual("Source", connectivityCheck.Value.Hops.FirstOrDefault().Type);
            Assert.AreEqual("Internet", connectivityCheck.Value.Hops.LastOrDefault().Type);
        }
Example #2
0
        public async Task DeleteConnectionMonitorTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("azsmnet");

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

            string virtualMachineName       = Recording.GenerateAssetName("azsmnet");
            string networkInterfaceName     = Recording.GenerateAssetName("azsmnet");
            string networkSecurityGroupName = virtualMachineName + "-nsg";

            //Deploy VM with a template
            await CreateVm(
                resourcesClient : ResourceManagementClient,
                resourceGroupName : resourceGroupName,
                location : location,
                virtualMachineName : virtualMachineName,
                storageAccountName : Recording.GenerateAssetName("azsmnet"),
                networkInterfaceName : networkInterfaceName,
                networkSecurityGroupName : networkSecurityGroupName,
                diagnosticsStorageAccountName : Recording.GenerateAssetName("azsmnet"),
                deploymentName : Recording.GenerateAssetName("azsmnet"),
                adminPassword : Recording.GenerateAlphaNumericId("AzureSDKNetworkTest#")
                );

            Response <VirtualMachine> getVm = await ComputeManagementClient.VirtualMachines.GetAsync(resourceGroupName, virtualMachineName);

            //Deploy networkWatcherAgent on VM
            VirtualMachineExtension parameters = new VirtualMachineExtension(location)
            {
                Publisher          = "Microsoft.Azure.NetworkWatcher",
                TypeHandlerVersion = "1.4",
                TypePropertiesType = "NetworkWatcherAgentWindows"
            };

            VirtualMachineExtensionsCreateOrUpdateOperation createOrUpdateOperation = await ComputeManagementClient.VirtualMachineExtensions.StartCreateOrUpdateAsync(resourceGroupName, getVm.Value.Name, "NetworkWatcherAgent", parameters);

            await WaitForCompletionAsync(createOrUpdateOperation);

            //TODO:There is no need to perform a separate create NetworkWatchers operation
            //Create network Watcher
            //string networkWatcherName = Recording.GenerateAssetName("azsmnet");
            //NetworkWatcher properties = new NetworkWatcher { Location = location };
            //await NetworkManagementClient.NetworkWatchers.CreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", properties);

            string            connectionMonitorName1 = Recording.GenerateAssetName("azsmnet");
            string            connectionMonitorName2 = Recording.GenerateAssetName("azsmnet");
            ConnectionMonitor cm = new ConnectionMonitor
            {
                Location    = location,
                Source      = new ConnectionMonitorSource(getVm.Value.Id),
                Destination = new ConnectionMonitorDestination
                {
                    Address = "bing.com",
                    Port    = 80
                },
                MonitoringIntervalInSeconds = 30,
                AutoStart = false
            };

            Operation <ConnectionMonitorResult> connectionMonitor1Operation = await NetworkManagementClient.ConnectionMonitors.StartCreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", connectionMonitorName1, cm);

            await WaitForCompletionAsync(connectionMonitor1Operation);

            Operation <ConnectionMonitorResult> connectionMonitor2Operation = await NetworkManagementClient.ConnectionMonitors.StartCreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", connectionMonitorName2, cm);

            await WaitForCompletionAsync(connectionMonitor2Operation);

            AsyncPageable <ConnectionMonitorResult> getConnectionMonitors1AP = NetworkManagementClient.ConnectionMonitors.ListAsync("NetworkWatcherRG", "NetworkWatcher_westus2");
            Task <List <ConnectionMonitorResult> >  getConnectionMonitors1   = getConnectionMonitors1AP.ToEnumerableAsync();

            Assert.AreEqual(2, getConnectionMonitors1.Result.Count);

            ConnectionMonitorsDeleteOperation connectionMonitorsDeleteOperation = await NetworkManagementClient.ConnectionMonitors.StartDeleteAsync("NetworkWatcherRG", "NetworkWatcher_westus2", connectionMonitorName2);

            await WaitForCompletionAsync(connectionMonitorsDeleteOperation);

            AsyncPageable <ConnectionMonitorResult> getConnectionMonitors2 = NetworkManagementClient.ConnectionMonitors.ListAsync("NetworkWatcherRG", "NetworkWatcher_westus2");

            Has.One.EqualTo(getConnectionMonitors2);
        }
        public async Task PacketCaptureApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("azsmnet");

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

            string virtualMachineName       = Recording.GenerateAssetName("azsmnet");
            string networkInterfaceName     = Recording.GenerateAssetName("azsmnet");
            string networkSecurityGroupName = virtualMachineName + "-nsg";

            //Deploy VM with template
            await CreateVm(
                resourcesClient : ResourceManagementClient,
                resourceGroupName : resourceGroupName,
                location : location,
                virtualMachineName : virtualMachineName,
                storageAccountName : Recording.GenerateAssetName("azsmnet"),
                networkInterfaceName : networkInterfaceName,
                networkSecurityGroupName : networkSecurityGroupName,
                diagnosticsStorageAccountName : Recording.GenerateAssetName("azsmnet"),
                deploymentName : Recording.GenerateAssetName("azsmnet"),
                adminPassword : Recording.GenerateAlphaNumericId("AzureSDKNetworkTest#")
                );

            Response <VirtualMachine> getVm = await ComputeManagementClient.VirtualMachines.GetAsync(resourceGroupName, virtualMachineName);

            //Deploy networkWatcherAgent on VM
            VirtualMachineExtension parameters = new VirtualMachineExtension(location)
            {
                Publisher          = "Microsoft.Azure.NetworkWatcher",
                TypeHandlerVersion = "1.4",
                TypePropertiesType = "NetworkWatcherAgentWindows"
            };

            VirtualMachineExtensionsCreateOrUpdateOperation createOrUpdateOperation = await ComputeManagementClient.VirtualMachineExtensions.StartCreateOrUpdateAsync(resourceGroupName, getVm.Value.Name, "NetworkWatcherAgent", parameters);

            await WaitForCompletionAsync(createOrUpdateOperation);

            //TODO:There is no need to perform a separate create NetworkWatchers operation
            //Create network Watcher
            //string networkWatcherName = Recording.GenerateAssetName("azsmnet");
            //NetworkWatcher properties = new NetworkWatcher { Location = location };
            //await NetworkManagementClient.NetworkWatchers.CreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", properties);

            string pcName1 = "pc1";
            string pcName2 = "pc2";

            PacketCapture pcProperties = new PacketCapture(getVm.Value.Id, new PacketCaptureStorageLocation {
                FilePath = @"C:\tmp\Capture.cap"
            });

            PacketCapturesCreateOperation createPacketCapture1Operation = await NetworkManagementClient.PacketCaptures.StartCreateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName1, pcProperties);

            Response <PacketCaptureResult> createPacketCapture1 = await WaitForCompletionAsync(createPacketCapture1Operation);

            Response <PacketCaptureResult> getPacketCapture = await NetworkManagementClient.PacketCaptures.GetAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName1);

            PacketCapturesGetStatusOperation queryPCOperation = await NetworkManagementClient.PacketCaptures.StartGetStatusAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName1);

            await WaitForCompletionAsync(queryPCOperation);

            //Validation
            Assert.AreEqual(pcName1, createPacketCapture1.Value.Name);
            Assert.AreEqual(1073741824, createPacketCapture1.Value.TotalBytesPerSession);
            Assert.AreEqual(0, createPacketCapture1.Value.BytesToCapturePerPacket);
            Assert.AreEqual(18000, createPacketCapture1.Value.TimeLimitInSeconds);
            Assert.AreEqual(@"C:\tmp\Capture.cap", createPacketCapture1.Value.StorageLocation.FilePath);
            Assert.AreEqual("Succeeded", getPacketCapture.Value.ProvisioningState.ToString());

            PacketCapturesCreateOperation packetCapturesCreateOperation = await NetworkManagementClient.PacketCaptures.StartCreateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName2, pcProperties);

            await WaitForCompletionAsync(packetCapturesCreateOperation);

            AsyncPageable <PacketCaptureResult> listPCByRg1AP = NetworkManagementClient.PacketCaptures.ListAsync("NetworkWatcherRG", "NetworkWatcher_westus2");
            List <PacketCaptureResult>          listPCByRg1   = await listPCByRg1AP.ToEnumerableAsync();

            PacketCapturesStopOperation packetCapturesStopOperation = await NetworkManagementClient.PacketCaptures.StartStopAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName1);

            await WaitForCompletionAsync(packetCapturesStopOperation);

            PacketCapturesGetStatusOperation queryPCAfterStopOperation = await NetworkManagementClient.PacketCaptures.StartGetStatusAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName1);

            Response <PacketCaptureQueryStatusResult> queryPCAfterStop = await WaitForCompletionAsync(queryPCAfterStopOperation);

            PacketCapturesDeleteOperation packetCapturesDeleteOperation = await NetworkManagementClient.PacketCaptures.StartDeleteAsync("NetworkWatcherRG", "NetworkWatcher_westus2", pcName1);

            await WaitForCompletionAsync(packetCapturesDeleteOperation);

            AsyncPageable <PacketCaptureResult> listPCByRg2 = NetworkManagementClient.PacketCaptures.ListAsync("NetworkWatcherRG", "NetworkWatcher_westus2");

            //Validation
            Assert.AreEqual(2, listPCByRg1.Count());
            Assert.AreEqual("Stopped", queryPCAfterStop.Value.PacketCaptureStatus.ToString());
            Assert.AreEqual("Manual", queryPCAfterStop.Value.StopReason);
            Has.One.EqualTo(listPCByRg2);
        }
Example #4
0
        public async Task PutConnectionMonitorTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("azsmnet");

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

            string virtualMachineName       = Recording.GenerateAssetName("azsmnet");
            string networkInterfaceName     = Recording.GenerateAssetName("azsmnet");
            string networkSecurityGroupName = virtualMachineName + "-nsg";

            //Deploy VM with a template
            await CreateVm(
                resourcesClient : ResourceManagementClient,
                resourceGroupName : resourceGroupName,
                location : location,
                virtualMachineName : virtualMachineName,
                storageAccountName : Recording.GenerateAssetName("azsmnet"),
                networkInterfaceName : networkInterfaceName,
                networkSecurityGroupName : networkSecurityGroupName,
                diagnosticsStorageAccountName : Recording.GenerateAssetName("azsmnet"),
                deploymentName : Recording.GenerateAssetName("azsmnet"),
                adminPassword : Recording.GenerateAlphaNumericId("AzureSDKNetworkTest#")
                );

            Response <VirtualMachine> getVm = await ComputeManagementClient.VirtualMachines.GetAsync(resourceGroupName, virtualMachineName);

            //Deploy networkWatcherAgent on VM
            VirtualMachineExtension parameters = new VirtualMachineExtension(location)
            {
                Publisher          = "Microsoft.Azure.NetworkWatcher",
                TypeHandlerVersion = "1.4",
                TypePropertiesType = "NetworkWatcherAgentWindows"
            };

            VirtualMachineExtensionsCreateOrUpdateOperation createOrUpdateOperation = await ComputeManagementClient.VirtualMachineExtensions.StartCreateOrUpdateAsync(resourceGroupName, getVm.Value.Name, "NetworkWatcherAgent", parameters);

            await WaitForCompletionAsync(createOrUpdateOperation);

            //TODO:There is no need to perform a separate create NetworkWatchers operation
            //Create network Watcher
            //string networkWatcherName = Recording.GenerateAssetName("azsmnet");
            //NetworkWatcher properties = new NetworkWatcher { Location = location };
            //await NetworkManagementClient.NetworkWatchers.CreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", properties);

            string            connectionMonitorName = "cm";
            ConnectionMonitor cm = new ConnectionMonitor
            {
                Location    = location,
                Source      = new ConnectionMonitorSource(getVm.Value.Id),
                Destination = new ConnectionMonitorDestination
                {
                    Address = "bing.com",
                    Port    = 80
                },
                MonitoringIntervalInSeconds = 30
            };

            Operation <ConnectionMonitorResult> putConnectionMonitorOperation = await NetworkManagementClient.ConnectionMonitors.StartCreateOrUpdateAsync("NetworkWatcherRG", "NetworkWatcher_westus2", connectionMonitorName, cm);

            Response <ConnectionMonitorResult> putConnectionMonitor = await WaitForCompletionAsync(putConnectionMonitorOperation);

            Assert.AreEqual("Running", putConnectionMonitor.Value.MonitoringStatus);
            Assert.AreEqual("centraluseuap", putConnectionMonitor.Value.Location);
            Assert.AreEqual(30, putConnectionMonitor.Value.MonitoringIntervalInSeconds);
            Assert.AreEqual(connectionMonitorName, putConnectionMonitor.Value.Name);
            Assert.AreEqual(getVm.Value.Id, putConnectionMonitor.Value.Source.ResourceId);
            Assert.AreEqual("bing.com", putConnectionMonitor.Value.Destination.Address);
            Assert.AreEqual(80, putConnectionMonitor.Value.Destination.Port);
        }