/// <summary> /// Updates a distributed availability group replication mode. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group that contains the resource. You can obtain /// this value from the Azure Resource Manager API or the portal. /// </param> /// <param name='managedInstanceName'> /// The name of the managed instance. /// </param> /// <param name='distributedAvailabilityGroupName'> /// The distributed availability group name. /// </param> /// <param name='parameters'> /// The distributed availability group info. /// </param> public static DistributedAvailabilityGroup BeginUpdate(this IDistributedAvailabilityGroupsOperations operations, string resourceGroupName, string managedInstanceName, string distributedAvailabilityGroupName, DistributedAvailabilityGroup parameters) { return(operations.BeginUpdateAsync(resourceGroupName, managedInstanceName, distributedAvailabilityGroupName, parameters).GetAwaiter().GetResult()); }
/// <summary> /// Updates a distributed availability group replication mode. /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='resourceGroupName'> /// The name of the resource group that contains the resource. You can obtain /// this value from the Azure Resource Manager API or the portal. /// </param> /// <param name='managedInstanceName'> /// The name of the managed instance. /// </param> /// <param name='distributedAvailabilityGroupName'> /// The distributed availability group name. /// </param> /// <param name='parameters'> /// The distributed availability group info. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <DistributedAvailabilityGroup> BeginUpdateAsync(this IDistributedAvailabilityGroupsOperations operations, string resourceGroupName, string managedInstanceName, string distributedAvailabilityGroupName, DistributedAvailabilityGroup parameters, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, managedInstanceName, distributedAvailabilityGroupName, parameters, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public void TestDistributedAvailabilityGroup() { string suiteName = this.GetType().Name; using (SqlManagementTestContext context = new SqlManagementTestContext(this)) { // Test setup (rg, mi): SqlManagementClient sqlClient = context.GetClient <SqlManagementClient>(); //ResourceGroup rg = new ResourceGroup(location: "eastus2euap", id: "/subscriptions/8313371e-0879-428e-b1da-6353575a9192/resourceGroups/CustomerExperienceTeam_RG", name: "CustomerExperienceTeam_RG"); //ManagedInstance managedInstance = sqlClient.ManagedInstances.Get(rg.Name, "chimera-ps-cli-v2"); ResourceGroup rg = context.CreateResourceGroup(ManagedInstanceTestUtilities.Region); ManagedInstance managedInstance = context.CreateManagedInstance(rg); Assert.NotNull(managedInstance); var resourceGroupName = rg.Name; var managedInstanceName = managedInstance.Name; var dagName = "TestDAG"; var dagParams = new DistributedAvailabilityGroup() { TargetDatabase = "testdb", SourceEndpoint = "TCP://SERVER:7022", PrimaryAvailabilityGroupName = "BoxLocalAg1", SecondaryAvailabilityGroupName = "testcl", }; var invalidDAG1 = new DistributedAvailabilityGroup() { //TargetDatabase = "testdb", SourceEndpoint = "TCP://SERVER:7022", PrimaryAvailabilityGroupName = "BoxLocalAg1", SecondaryAvailabilityGroupName = "testcl", }; var invalidDAG2 = new DistributedAvailabilityGroup() { TargetDatabase = "testdb", //SourceEndpoint = "TCP://SERVER:7022", PrimaryAvailabilityGroupName = "BoxLocalAg1", SecondaryAvailabilityGroupName = "testcl", }; var invalidDAG3 = new DistributedAvailabilityGroup() { TargetDatabase = "testdb", SourceEndpoint = "TCP://SERVER:7022", //PrimaryAvailabilityGroupName = "BoxLocalAg1", SecondaryAvailabilityGroupName = "testcl", }; var invalidDAG4 = new DistributedAvailabilityGroup() { TargetDatabase = "testdb", SourceEndpoint = "TCP://SERVER:7022", PrimaryAvailabilityGroupName = "BoxLocalAg1", //SecondaryAvailabilityGroupName = "testcl", }; var invalidDAG5 = new DistributedAvailabilityGroup(); var exCreate1 = Assert.Throws <CloudException>(() => sqlClient.DistributedAvailabilityGroups.CreateOrUpdate(resourceGroupName, managedInstanceName, "invalid_dag1", invalidDAG1)); var exCreate2 = Assert.Throws <CloudException>(() => sqlClient.DistributedAvailabilityGroups.CreateOrUpdate(resourceGroupName, managedInstanceName, "invalid_dag2", invalidDAG2)); var exCreate3 = Assert.Throws <CloudException>(() => sqlClient.DistributedAvailabilityGroups.CreateOrUpdate(resourceGroupName, managedInstanceName, "invalid_dag3", invalidDAG3)); var exCreate4 = Assert.Throws <CloudException>(() => sqlClient.DistributedAvailabilityGroups.CreateOrUpdate(resourceGroupName, managedInstanceName, "invalid_dag4", invalidDAG4)); var exCreate5 = Assert.Throws <CloudException>(() => sqlClient.DistributedAvailabilityGroups.CreateOrUpdate(resourceGroupName, managedInstanceName, "invalid_dag5", invalidDAG5)); Assert.Equal("InvalidParameterValue", exCreate1.Body.Code); Assert.Equal("InvalidParameterValue", exCreate2.Body.Code); Assert.Equal("InvalidParameterValue", exCreate3.Body.Code); Assert.Equal("InvalidParameterValue", exCreate4.Body.Code); var upsertResp = sqlClient.DistributedAvailabilityGroups.BeginCreateOrUpdate(resourceGroupName, managedInstanceName, dagName, dagParams); var listResp = sqlClient.DistributedAvailabilityGroups.ListByInstance(resourceGroupName, managedInstanceName); var tries = 0; while (listResp.Count() == 0 && ++tries <= 3) { TestUtilities.Wait(TimeSpan.FromSeconds(30)); listResp = sqlClient.DistributedAvailabilityGroups.ListByInstance(resourceGroupName, managedInstanceName); } var getResp = sqlClient.DistributedAvailabilityGroups.Get(resourceGroupName, managedInstanceName, dagName); Assert.NotNull(getResp); Assert.Single(listResp); Assert.Equal(dagParams.TargetDatabase, getResp.TargetDatabase); Assert.Equal(dagParams.SourceEndpoint, getResp.SourceEndpoint); Assert.Equal(dagParams.TargetDatabase, listResp.First().TargetDatabase); Assert.Equal(dagParams.SourceEndpoint, listResp.First().SourceEndpoint); sqlClient.DistributedAvailabilityGroups.Delete(resourceGroupName, managedInstanceName, dagName); var listRespEmpty = sqlClient.DistributedAvailabilityGroups.ListByInstance(resourceGroupName, managedInstanceName); Assert.Empty(listRespEmpty); var exceptionGet = Assert.Throws <CloudException>(() => sqlClient.DistributedAvailabilityGroups.Get(resourceGroupName, managedInstanceName, dagName)); Assert.Equal("ResourceNotFound", exceptionGet.Body.Code); } }