示例#1
0
 /// <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());
 }
示例#2
0
 /// <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);
            }
        }