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"); //NetworkWatcher properties = new NetworkWatcher { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, "NetworkWatcherRG", "NetworkWatcher_westus2", properties); string connectionMonitorName = Recording.GenerateAssetName("azsmnet"); var cm = new ConnectionMonitorInput { Location = location, Source = new ConnectionMonitorSource(vm.Id), Destination = new ConnectionMonitorDestination { Address = "bing.com", Port = 80 }, MonitoringIntervalInSeconds = 30 }; var putConnectionMonitorOperation = await ConnectionMonitors.CreateOrUpdateAsync(true, connectionMonitorName, cm); await putConnectionMonitorOperation.WaitForCompletionAsync();; Operation connectionMonitorsStartOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.StartAsync(true); await connectionMonitorsStartOperation.WaitForCompletionResponseAsync();; Operation connectionMonitorsStopOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.StopAsync(true); await connectionMonitorsStopOperation.WaitForCompletionResponseAsync();; Operation <ConnectionMonitorQueryResult> queryResultOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.QueryAsync(true); 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"); //NetworkWatcher properties = new NetworkWatcher { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, "NetworkWatcherRG", "NetworkWatcher_westus2", properties); string connectionMonitorName = Recording.GenerateAssetName("azsmnet"); var cm = new ConnectionMonitorInput { Location = location, Source = new ConnectionMonitorSource(vm.Id), Destination = new ConnectionMonitorDestination { Address = "bing.com", Port = 80 }, MonitoringIntervalInSeconds = 30, AutoStart = false }; var putConnectionMonitorOperation = await ConnectionMonitors.CreateOrUpdateAsync(true, connectionMonitorName, cm); Response <ConnectionMonitor> putConnectionMonitor = await putConnectionMonitorOperation.WaitForCompletionAsync();; Assert.AreEqual("NotStarted", putConnectionMonitor.Value.Data.MonitoringStatus); Operation connectionMonitorsStartOperation = await ConnectionMonitors.Get(connectionMonitorName).Value.StartAsync(true); await connectionMonitorsStartOperation.WaitForCompletionResponseAsync();; Response <ConnectionMonitor> getConnectionMonitor = await ConnectionMonitors.GetAsync(connectionMonitorName); Assert.AreEqual("Running", getConnectionMonitor.Value.Data.MonitoringStatus); }
public async Task PutConnectionMonitorTest() { 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 = "cm"; var cm = new ConnectionMonitorInput { 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); Response <ConnectionMonitorResource> putConnectionMonitor = await putConnectionMonitorOperation.WaitForCompletionAsync();; Assert.AreEqual("Running", putConnectionMonitor.Value.Data.MonitoringStatus); Assert.AreEqual("centraluseuap", putConnectionMonitor.Value.Data.Location); Assert.AreEqual(30, putConnectionMonitor.Value.Data.MonitoringIntervalInSeconds); Assert.AreEqual(connectionMonitorName, putConnectionMonitor.Value.Data.Name); Assert.AreEqual(vm.Id, putConnectionMonitor.Value.Data.Source.ResourceId); Assert.AreEqual("bing.com", putConnectionMonitor.Value.Data.Destination.Address); Assert.AreEqual(80, putConnectionMonitor.Value.Data.Destination.Port); }
public async virtual Task <ConnectionMonitorCreateOrUpdateOperation> CreateOrUpdateAsync(bool waitForCompletion, string connectionMonitorName, ConnectionMonitorInput parameters, string migrate = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(connectionMonitorName, nameof(connectionMonitorName)); if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _connectionMonitorClientDiagnostics.CreateScope("ConnectionMonitorCollection.CreateOrUpdate"); scope.Start(); try { var response = await _connectionMonitorRestClient.CreateOrUpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, connectionMonitorName, parameters, migrate, cancellationToken).ConfigureAwait(false); var operation = new ConnectionMonitorCreateOrUpdateOperation(ArmClient, _connectionMonitorClientDiagnostics, Pipeline, _connectionMonitorRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, connectionMonitorName, parameters, migrate).Request, response); if (waitForCompletion) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public async Task <Response> CreateOrUpdateAsync(string subscriptionId, string resourceGroupName, string networkWatcherName, string connectionMonitorName, ConnectionMonitorInput parameters, string migrate = null, CancellationToken cancellationToken = default) { if (subscriptionId == null) { throw new ArgumentNullException(nameof(subscriptionId)); } if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (networkWatcherName == null) { throw new ArgumentNullException(nameof(networkWatcherName)); } if (connectionMonitorName == null) { throw new ArgumentNullException(nameof(connectionMonitorName)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var message = CreateCreateOrUpdateRequest(subscriptionId, resourceGroupName, networkWatcherName, connectionMonitorName, parameters, migrate); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: case 201: return(message.Response); default: throw await _clientDiagnostics.CreateRequestFailedExceptionAsync(message.Response).ConfigureAwait(false); } }
internal HttpMessage CreateCreateOrUpdateRequest(string subscriptionId, string resourceGroupName, string networkWatcherName, string connectionMonitorName, ConnectionMonitorInput parameters, 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 content = new Utf8JsonRequestContent(); content.JsonWriter.WriteObjectValue(parameters); request.Content = content; message.SetProperty("UserAgentOverride", _userAgent); return(message); }
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"); //NetworkWatcher properties = new NetworkWatcher { Location = location }; //await networkWatcherCollection.CreateOrUpdateAsync(true, "NetworkWatcherRG", "NetworkWatcher_westus2", properties); string connectionMonitorName1 = Recording.GenerateAssetName("azsmnet"); string connectionMonitorName2 = Recording.GenerateAssetName("azsmnet"); var cm = new ConnectionMonitorInput { Location = location, Source = new ConnectionMonitorSource(vm.Id), Destination = new ConnectionMonitorDestination { Address = "bing.com", Port = 80 }, MonitoringIntervalInSeconds = 30, AutoStart = false }; var connectionMonitor1Operation = await ConnectionMonitors.CreateOrUpdateAsync(true, connectionMonitorName1, cm); await connectionMonitor1Operation.WaitForCompletionAsync();; var connectionMonitor2Operation = await ConnectionMonitors.CreateOrUpdateAsync(true, connectionMonitorName2, cm); var connectionMonitor2 = (await connectionMonitor2Operation.WaitForCompletionAsync()).Value; AsyncPageable <ConnectionMonitor> getConnectionMonitors1AP = ConnectionMonitors.GetAllAsync(); Task <List <ConnectionMonitor> > getConnectionMonitors1 = getConnectionMonitors1AP.ToEnumerableAsync(); Assert.AreEqual(2, getConnectionMonitors1.Result.Count); var operation = await connectionMonitor2.DeleteAsync(true); 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 <ConnectionMonitor> getConnectionMonitors2 = ConnectionMonitors.GetAllAsync(); Has.One.EqualTo(getConnectionMonitors2); }
public virtual ConnectionMonitorCreateOrUpdateOperation CreateOrUpdate(string connectionMonitorName, ConnectionMonitorInput parameters, string migrate = null, bool waitForCompletion = true, CancellationToken cancellationToken = default) { if (connectionMonitorName == null) { throw new ArgumentNullException(nameof(connectionMonitorName)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var scope = _clientDiagnostics.CreateScope("ConnectionMonitorCollection.CreateOrUpdate"); scope.Start(); try { var response = _restClient.CreateOrUpdate(Id.ResourceGroupName, Id.Name, connectionMonitorName, parameters, migrate, cancellationToken); var operation = new ConnectionMonitorCreateOrUpdateOperation(Parent, _clientDiagnostics, Pipeline, _restClient.CreateCreateOrUpdateRequest(Id.ResourceGroupName, Id.Name, connectionMonitorName, parameters, migrate).Request, response); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public virtual ArmOperation <ConnectionMonitor> CreateOrUpdate(bool waitForCompletion, string connectionMonitorName, ConnectionMonitorInput parameters, string migrate = null, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(connectionMonitorName, nameof(connectionMonitorName)); Argument.AssertNotNull(parameters, nameof(parameters)); using var scope = _connectionMonitorClientDiagnostics.CreateScope("ConnectionMonitorCollection.CreateOrUpdate"); scope.Start(); try { var response = _connectionMonitorRestClient.CreateOrUpdate(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, connectionMonitorName, parameters, migrate, cancellationToken); var operation = new NetworkArmOperation <ConnectionMonitor>(new ConnectionMonitorOperationSource(Client), _connectionMonitorClientDiagnostics, Pipeline, _connectionMonitorRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, Id.Name, connectionMonitorName, parameters, migrate).Request, response, OperationFinalStateVia.AzureAsyncOperation); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public Response CreateOrUpdate(string resourceGroupName, string networkWatcherName, string connectionMonitorName, ConnectionMonitorInput parameters, string migrate = null, CancellationToken cancellationToken = default) { if (resourceGroupName == null) { throw new ArgumentNullException(nameof(resourceGroupName)); } if (networkWatcherName == null) { throw new ArgumentNullException(nameof(networkWatcherName)); } if (connectionMonitorName == null) { throw new ArgumentNullException(nameof(connectionMonitorName)); } if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } using var message = CreateCreateOrUpdateRequest(resourceGroupName, networkWatcherName, connectionMonitorName, parameters, migrate); _pipeline.Send(message, cancellationToken); switch (message.Response.Status) { case 200: case 201: return(message.Response); default: throw _clientDiagnostics.CreateRequestFailedException(message.Response); } }
public Response CreateOrUpdate(string subscriptionId, string resourceGroupName, string networkWatcherName, string connectionMonitorName, ConnectionMonitorInput parameters, 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(parameters, nameof(parameters)); using var message = CreateCreateOrUpdateRequest(subscriptionId, resourceGroupName, networkWatcherName, connectionMonitorName, parameters, migrate); _pipeline.Send(message, cancellationToken); switch (message.Response.Status) { case 200: case 201: return(message.Response); default: throw new RequestFailedException(message.Response); } }