public async Task QueryConnectionMonitorTest() { string resourceGroupName = Recording.GenerateAssetName("azsmnet"); string location = "westus2"; 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); //TODO:There is no need to perform a separate create NetworkWatchers operation //Create network Watcher //string networkWatcherName = Recording.GenerateAssetName("azsmnet"); //NetworkWatcherResource properties = new NetworkWatcherResource { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, "NetworkWatcherRG", "NetworkWatcher_westus2", properties); string connectionMonitorName = Recording.GenerateAssetName("azsmnet"); var cm = new ConnectionMonitorCreateOrUpdateContent { Location = location, Source = new ConnectionMonitorSource(vm.Id), Destination = new ConnectionMonitorDestination { Address = "bing.com", Port = 80 }, MonitoringIntervalInSeconds = 30 }; var putConnectionMonitorOperation = await ConnectionMonitors.CreateOrUpdateAsync(WaitUntil.Completed, connectionMonitorName, cm); await putConnectionMonitorOperation.WaitForCompletionAsync();; Operation connectionMonitorsStartOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.StartAsync(WaitUntil.Completed); await connectionMonitorsStartOperation.WaitForCompletionResponseAsync();; Operation connectionMonitorsStopOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.StopAsync(WaitUntil.Completed); await connectionMonitorsStopOperation.WaitForCompletionResponseAsync();; Operation <ConnectionMonitorQueryResult> queryResultOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.QueryAsync(WaitUntil.Completed); Response <ConnectionMonitorQueryResult> queryResult = await queryResultOperation.WaitForCompletionAsync();; //Has.One.EqualTo(queryResult.States); Assert.AreEqual("Reachable", queryResult.Value.States[0].ConnectionState); Assert.AreEqual("InProgress", queryResult.Value.States[0].EvaluationState); Assert.AreEqual(2, queryResult.Value.States[0].Hops.Count); }
public async Task StartConnectionMonitorTest() { string resourceGroupName = Recording.GenerateAssetName("azsmnet"); string location = "westus2"; 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); //TODO:There is no need to perform a separate create NetworkWatchers operation //Create network Watcher //string networkWatcherName = Recording.GenerateAssetName("azsmnet"); //NetworkWatcherResource properties = new NetworkWatcherResource { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, "NetworkWatcherRG", "NetworkWatcher_westus2", properties); string connectionMonitorName = Recording.GenerateAssetName("azsmnet"); var cm = new ConnectionMonitorCreateOrUpdateContent { Location = location, Source = new ConnectionMonitorSource(vm.Id), Destination = new ConnectionMonitorDestination { Address = "bing.com", Port = 80 }, MonitoringIntervalInSeconds = 30, AutoStart = false }; var putConnectionMonitorOperation = await ConnectionMonitors.CreateOrUpdateAsync(WaitUntil.Completed, connectionMonitorName, cm); Response <ConnectionMonitorResource> putConnectionMonitor = await putConnectionMonitorOperation.WaitForCompletionAsync();; Assert.AreEqual("NotStarted", putConnectionMonitor.Value.Data.MonitoringStatus); Operation connectionMonitorsStartOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.StartAsync(WaitUntil.Completed); await connectionMonitorsStartOperation.WaitForCompletionResponseAsync();; Response <ConnectionMonitorResource> getConnectionMonitor = await ConnectionMonitors.GetAsync(connectionMonitorName); Assert.AreEqual("Running", getConnectionMonitor.Value.Data.MonitoringStatus); }
public async Task <Response> CreateOrUpdateAsync(string subscriptionId, string resourceGroupName, string networkWatcherName, string connectionMonitorName, ConnectionMonitorCreateOrUpdateContent content, string migrate = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(subscriptionId, nameof(subscriptionId)); Argument.AssertNotNullOrEmpty(resourceGroupName, nameof(resourceGroupName)); Argument.AssertNotNullOrEmpty(networkWatcherName, nameof(networkWatcherName)); Argument.AssertNotNullOrEmpty(connectionMonitorName, nameof(connectionMonitorName)); Argument.AssertNotNull(content, nameof(content)); using var message = CreateCreateOrUpdateRequest(subscriptionId, resourceGroupName, networkWatcherName, connectionMonitorName, content, migrate); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: case 201: return(message.Response); default: throw new RequestFailedException(message.Response); } }
internal HttpMessage CreateCreateOrUpdateRequest(string subscriptionId, string resourceGroupName, string networkWatcherName, string connectionMonitorName, ConnectionMonitorCreateOrUpdateContent content, string migrate) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Put; var uri = new RawRequestUriBuilder(); uri.Reset(_endpoint); uri.AppendPath("/subscriptions/", false); uri.AppendPath(subscriptionId, true); uri.AppendPath("/resourceGroups/", false); uri.AppendPath(resourceGroupName, true); uri.AppendPath("/providers/Microsoft.Network/networkWatchers/", false); uri.AppendPath(networkWatcherName, true); uri.AppendPath("/connectionMonitors/", false); uri.AppendPath(connectionMonitorName, true); uri.AppendQuery("api-version", _apiVersion, true); if (migrate != null) { uri.AppendQuery("migrate", migrate, true); } request.Uri = uri; request.Headers.Add("Accept", "application/json"); request.Headers.Add("Content-Type", "application/json"); var content0 = new Utf8JsonRequestContent(); content0.JsonWriter.WriteObjectValue(content); request.Content = content0; _userAgent.Apply(message); return(message); }
public virtual async Task <ArmOperation <ConnectionMonitorResource> > CreateOrUpdateAsync(WaitUntil waitUntil, string connectionMonitorName, ConnectionMonitorCreateOrUpdateContent content, string migrate = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(connectionMonitorName, nameof(connectionMonitorName)); Argument.AssertNotNull(content, nameof(content)); using var scope = _connectionMonitorClientDiagnostics.CreateScope("ConnectionMonitorCollection.CreateOrUpdate"); scope.Start(); try { var response = await _connectionMonitorRestClient.CreateOrUpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, connectionMonitorName, content, migrate, cancellationToken).ConfigureAwait(false); var operation = new NetworkArmOperation <ConnectionMonitorResource>(new ConnectionMonitorOperationSource(Client), _connectionMonitorClientDiagnostics, Pipeline, _connectionMonitorRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, connectionMonitorName, content, migrate).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitUntil == WaitUntil.Completed) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public async Task DeleteConnectionMonitorTest() { string resourceGroupName = Recording.GenerateAssetName("azsmnet"); string location = "westus2"; 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); //TODO:There is no need to perform a separate create NetworkWatchers operation //Create network Watcher //string networkWatcherName = Recording.GenerateAssetName("azsmnet"); //NetworkWatcherResource properties = new NetworkWatcherResource { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, "NetworkWatcherRG", "NetworkWatcher_westus2", properties); string connectionMonitorName1 = Recording.GenerateAssetName("azsmnet"); string connectionMonitorName2 = Recording.GenerateAssetName("azsmnet"); var cm = new ConnectionMonitorCreateOrUpdateContent { Location = location, Source = new ConnectionMonitorSource(vm.Id), Destination = new ConnectionMonitorDestination { Address = "bing.com", Port = 80 }, MonitoringIntervalInSeconds = 30, AutoStart = false }; var connectionMonitor1Operation = await ConnectionMonitors.CreateOrUpdateAsync(WaitUntil.Completed, connectionMonitorName1, cm); await connectionMonitor1Operation.WaitForCompletionAsync();; var connectionMonitor2Operation = await ConnectionMonitors.CreateOrUpdateAsync(WaitUntil.Completed, connectionMonitorName2, cm); var connectionMonitor2 = (await connectionMonitor2Operation.WaitForCompletionAsync()).Value; AsyncPageable <ConnectionMonitorResource> getConnectionMonitors1AP = ConnectionMonitors.GetAllAsync(); Task <List <ConnectionMonitorResource> > getConnectionMonitors1 = getConnectionMonitors1AP.ToEnumerableAsync(); Assert.AreEqual(2, getConnectionMonitors1.Result.Count); var operation = await connectionMonitor2.DeleteAsync(WaitUntil.Completed); await operation.WaitForCompletionResponseAsync(); // TODO: restore to use Delete of the specific resource collection: ADO 5998 //Operation connectionMonitorsDeleteOperation = await ConnectionMonitors.Get(connectionMonitorName2).Value.DeleteAsync(true); //await connectionMonitorsDeleteOperation.WaitForCompletionAsync();; AsyncPageable <ConnectionMonitorResource> getConnectionMonitors2 = ConnectionMonitors.GetAllAsync(); Has.One.EqualTo(getConnectionMonitors2); }