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); }
public async Task CheckConnectivityVmToInternetTest() { string resourceGroupName = Recording.GenerateAssetName("azsmnet"); string location = TestEnvironment.Location; var resourceGroup = await CreateResourceGroup(resourceGroupName, location); string virtualMachineName = Recording.GenerateAssetName("azsmnet"); string networkInterfaceName = Recording.GenerateAssetName("azsmnet"); string networkSecurityGroupName = virtualMachineName + "-nsg"; //Deploy VM with a template var vm = await CreateWindowsVM(virtualMachineName, networkInterfaceName, location, resourceGroup); //Deploy networkWatcherAgent on VM await deployWindowsNetworkAgent(virtualMachineName, location, resourceGroup); //Create network Watcher string networkWatcherName = Recording.GenerateAssetName("azsmnet"); var properties = new NetworkWatcherData { Location = location }; await resourceGroup.GetNetworkWatchers().CreateOrUpdateAsync(true, networkWatcherName, properties); ConnectivityParameters connectivityParameters = new ConnectivityParameters(new ConnectivitySource(vm.Id), new ConnectivityDestination { Address = "bing.com", Port = 80 }); Operation <ConnectivityInformation> connectivityCheckOperation = await GetResourceGroup("NetworkWatcherRG").GetNetworkWatchers().Get("NetworkWatcher_westus2").Value.CheckConnectivityAsync(true, connectivityParameters); Response <ConnectivityInformation> connectivityCheck = await connectivityCheckOperation.WaitForCompletionAsync();; //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); }
/// <summary> /// Verifies the possibility of establishing a direct TCP connection from a /// virtual machine to a given endpoint including another VM or an arbitrary /// remote server. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the network watcher resource group. /// </param> /// <param name='networkWatcherName'> /// The name of the network watcher resource. /// </param> /// <param name='parameters'> /// Parameters that determine how the connectivity check will be performed. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <ConnectivityInformationInner> BeginCheckConnectivityAsync(this INetworkWatchersOperations operations, string resourceGroupName, string networkWatcherName, ConnectivityParameters parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginCheckConnectivityWithHttpMessagesAsync(resourceGroupName, networkWatcherName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public void CheckConnectivityVmToInternetTest() { var handler1 = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; var handler2 = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; var handler3 = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; using (MockContext context = MockContext.Start(this.GetType())) { var resourcesClient = ResourcesManagementTestUtilities.GetResourceManagementClientWithHandler(context, handler1, true); var networkManagementClient = NetworkManagementTestUtilities.GetNetworkManagementClientWithHandler(context, handler2); var computeManagementClient = NetworkManagementTestUtilities.GetComputeManagementClientWithHandler(context, handler3); string location = "westcentralus"; string resourceGroupName = TestUtilities.GenerateName(); resourcesClient.ResourceGroups.CreateOrUpdate(resourceGroupName, new ResourceGroup { Location = location }); string virtualMachineName = TestUtilities.GenerateName(); string networkInterfaceName = TestUtilities.GenerateName(); string networkSecurityGroupName = virtualMachineName + "-nsg"; //Deploy VM with a template DeploymentUpdate.CreateVm( resourcesClient: resourcesClient, resourceGroupName: resourceGroupName, location: location, virtualMachineName: virtualMachineName, storageAccountName: TestUtilities.GenerateName(), networkInterfaceName: networkInterfaceName, networkSecurityGroupName: networkSecurityGroupName, diagnosticsStorageAccountName: TestUtilities.GenerateName(), deploymentName: TestUtilities.GenerateName() ); var getVm = computeManagementClient.VirtualMachines.Get(resourceGroupName, virtualMachineName); //Deploy networkWatcherAgent on VM VirtualMachineExtension parameters = new VirtualMachineExtension(); parameters.Publisher = "Microsoft.Azure.NetworkWatcher.Edp"; parameters.TypeHandlerVersion = "1.4"; parameters.VirtualMachineExtensionType = "NetworkWatcherAgentWindows"; parameters.Location = location; var addExtension = computeManagementClient.VirtualMachineExtensions.CreateOrUpdate(resourceGroupName, getVm.Name, "NetworkWatcherAgent", parameters); string networkWatcherName = TestUtilities.GenerateName(); NetworkWatcher properties = new NetworkWatcher(); properties.Location = location; //Create network Watcher var createNetworkWatcher = networkManagementClient.NetworkWatchers.CreateOrUpdate(resourceGroupName, networkWatcherName, properties); ConnectivityParameters connectivityParameters = new ConnectivityParameters(); connectivityParameters.Source = new ConnectivitySource(); connectivityParameters.Source.ResourceId = getVm.Id; connectivityParameters.Destination = new ConnectivityDestination(); connectivityParameters.Destination.Address = "bing.com"; connectivityParameters.Destination.Port = 80; var connectivityCheck = networkManagementClient.NetworkWatchers.CheckConnectivity(resourceGroupName, networkWatcherName, connectivityParameters); //Validation Assert.Equal("Reachable", connectivityCheck.ConnectionStatus); Assert.Equal(0, connectivityCheck.ProbesFailed); Assert.Equal("Source", connectivityCheck.Hops.FirstOrDefault().Type); Assert.Equal("Internet", connectivityCheck.Hops.LastOrDefault().Type); } }