/// <summary>
 /// Gets a SQL virtual machine group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// 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='sqlVirtualMachineGroupName'>
 /// Name of the SQL virtual machine group.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <SqlVirtualMachineGroup> GetAsync(this ISqlVirtualMachineGroupsOperations operations, string resourceGroupName, string sqlVirtualMachineGroupName, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, sqlVirtualMachineGroupName, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public void TestCreateUpdateGetSqlVirtualMachineGroup()
        {
            using (SqlVirtualMachineTestContext context = new SqlVirtualMachineTestContext(this))
            {
                // Create SQL VM group
                ISqlVirtualMachineGroupsOperations sqlOperations = context.getSqlClient().SqlVirtualMachineGroups;
                StorageAccount         storageAccount            = VirtualMachineTestBase.CreateStorageAccount(context);
                SqlVirtualMachineGroup group = SqlVirtualMachineTestBase.CreateSqlVirtualMachineGroup(context, storageAccount, "test-group");

                // Update
                string key = "test", value = "updateTag";
                sqlOperations.Update(context.resourceGroup.Name, group.Name, new SqlVirtualMachineGroupUpdate()
                {
                    Tags = new Dictionary <string, string>
                    {
                        { key, value }
                    }
                });

                // Get
                SqlVirtualMachineGroup group2 = sqlOperations.Get(context.resourceGroup.Name, group.Name);
                SqlVirtualMachineTestBase.ValidateSqlVirtualMachineGroups(group, group2, false);
                Assert.Equal(1, group2.Tags.Keys.Count);
                Assert.Equal(value, group2.Tags[key]);
            }
        }
 /// <summary>
 /// Gets all SQL virtual machine groups in a subscription.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='nextPageLink'>
 /// The NextLink from the previous successful call to List operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <IPage <SqlVirtualMachineGroup> > ListNextAsync(this ISqlVirtualMachineGroupsOperations operations, string nextPageLink, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ListNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
        public void TestListSqlVirtualMachineGroup()
        {
            using (SqlVirtualMachineTestContext context = new SqlVirtualMachineTestContext(this))
            {
                // Create SQL VM group
                ISqlVirtualMachineGroupsOperations sqlOperations = context.getSqlClient().SqlVirtualMachineGroups;
                StorageAccount         storageAccount            = VirtualMachineTestBase.CreateStorageAccount(context);
                SqlVirtualMachineGroup group = SqlVirtualMachineTestBase.CreateSqlVirtualMachineGroup(context, storageAccount, "test-group");

                // List
                IPage <SqlVirtualMachineGroup>       list = sqlOperations.List();
                IEnumerator <SqlVirtualMachineGroup> iter = list.GetEnumerator();
                int count = 0;
                while (iter.MoveNext())
                {
                    SqlVirtualMachineGroup group2 = iter.Current;
                    if (group.Id.Equals(group2.Id))
                    {
                        SqlVirtualMachineTestBase.ValidateSqlVirtualMachineGroups(group, group2);
                        count++;
                    }
                }
                iter.Dispose();
                Assert.Equal(1, count);
            }
        }
        public static SqlVirtualMachineGroup CreateSqlVirtualMachineGroup(SqlVirtualMachineTestContext context, StorageAccount storageAccount, string groupName = null, WsfcDomainProfile profile = null)
        {
            ISqlVirtualMachineGroupsOperations sqlOperations      = context.getSqlClient().SqlVirtualMachineGroups;
            StorageAccountListKeysResult       storageAccountKeys = context.client.storageClient.StorageAccounts.ListKeys(context.resourceGroup.Name, storageAccount.Name);
            IEnumerator <StorageAccountKey>    iter = storageAccountKeys.Keys.GetEnumerator();

            iter.MoveNext();
            string key         = iter.Current.Value;
            string blobAccount = storageAccount.PrimaryEndpoints.Blob;

            if (groupName == null)
            {
                groupName = context.generateResourceName();
            }
            SqlVirtualMachineGroup group = sqlOperations.CreateOrUpdate(context.resourceGroup.Name, groupName, new SqlVirtualMachineGroup
            {
                Location          = context.location,
                SqlImageOffer     = Constants.imageOffer,
                SqlImageSku       = Constants.imageSku,
                WsfcDomainProfile = (profile != null)? profile : new WsfcDomainProfile
                {
                    SqlServiceAccount        = getUsername(Constants.sqlService, Constants.domainName),
                    ClusterOperatorAccount   = getUsername(Constants.adminLogin, Constants.domainName),
                    DomainFqdn               = Constants.domainName + ".com",
                    StorageAccountUrl        = blobAccount,
                    StorageAccountPrimaryKey = key
                }
            });

            group.Validate();
            return(group);
        }
        public void TestCreateGetDeleteSqlVirtualMachineGroup()
        {
            using (SqlVirtualMachineTestContext context = new SqlVirtualMachineTestContext(this))
            {
                // Create SQL VM group
                ISqlVirtualMachineGroupsOperations sqlOperations = context.getSqlClient().SqlVirtualMachineGroups;
                StorageAccount         storageAccount            = VirtualMachineTestBase.CreateStorageAccount(context);
                SqlVirtualMachineGroup group = SqlVirtualMachineTestBase.CreateSqlVirtualMachineGroup(context, storageAccount, "test-group");

                // Recover
                SqlVirtualMachineGroup group2 = sqlOperations.Get(context.resourceGroup.Name, group.Name);
                SqlVirtualMachineTestBase.ValidateSqlVirtualMachineGroups(group, group2);

                // Delete
                sqlOperations.Delete(context.resourceGroup.Name, group.Name);

                // Recover
                IPage <SqlVirtualMachineGroup>       list = sqlOperations.ListByResourceGroup(context.resourceGroup.Name);
                IEnumerator <SqlVirtualMachineGroup> iter = list.GetEnumerator();
                Assert.False(iter.MoveNext());
            }
        }
 /// <summary>
 /// Creates or updates a SQL virtual machine group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// 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='sqlVirtualMachineGroupName'>
 /// Name of the SQL virtual machine group.
 /// </param>
 /// <param name='parameters'>
 /// The SQL virtual machine group.
 /// </param>
 public static SqlVirtualMachineGroup CreateOrUpdate(this ISqlVirtualMachineGroupsOperations operations, string resourceGroupName, string sqlVirtualMachineGroupName, SqlVirtualMachineGroup parameters)
 {
     return(operations.CreateOrUpdateAsync(resourceGroupName, sqlVirtualMachineGroupName, parameters).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Gets all SQL virtual machine groups in a subscription.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='nextPageLink'>
 /// The NextLink from the previous successful call to List operation.
 /// </param>
 public static IPage <SqlVirtualMachineGroup> ListNext(this ISqlVirtualMachineGroupsOperations operations, string nextPageLink)
 {
     return(operations.ListNextAsync(nextPageLink).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Gets a SQL virtual machine group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// 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='sqlVirtualMachineGroupName'>
 /// Name of the SQL virtual machine group.
 /// </param>
 public static SqlVirtualMachineGroup Get(this ISqlVirtualMachineGroupsOperations operations, string resourceGroupName, string sqlVirtualMachineGroupName)
 {
     return(operations.GetAsync(resourceGroupName, sqlVirtualMachineGroupName).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Deletes a SQL virtual machine group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// 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='sqlVirtualMachineGroupName'>
 /// Name of the SQL virtual machine group.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task BeginDeleteAsync(this ISqlVirtualMachineGroupsOperations operations, string resourceGroupName, string sqlVirtualMachineGroupName, CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.BeginDeleteWithHttpMessagesAsync(resourceGroupName, sqlVirtualMachineGroupName, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <summary>
 /// Deletes a SQL virtual machine group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// 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='sqlVirtualMachineGroupName'>
 /// Name of the SQL virtual machine group.
 /// </param>
 public static void BeginDelete(this ISqlVirtualMachineGroupsOperations operations, string resourceGroupName, string sqlVirtualMachineGroupName)
 {
     operations.BeginDeleteAsync(resourceGroupName, sqlVirtualMachineGroupName).GetAwaiter().GetResult();
 }
 /// <summary>
 /// Gets all SQL virtual machine groups in a subscription.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 public static IPage <SqlVirtualMachineGroup> List(this ISqlVirtualMachineGroupsOperations operations)
 {
     return(operations.ListAsync().GetAwaiter().GetResult());
 }
 /// <summary>
 /// Gets all SQL virtual machine groups in a resource group.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Name of the resource group that contains the resource. You can obtain this
 /// value from the Azure Resource Manager API or the portal.
 /// </param>
 public static IPage <SqlVirtualMachineGroup> ListByResourceGroup(this ISqlVirtualMachineGroupsOperations operations, string resourceGroupName)
 {
     return(operations.ListByResourceGroupAsync(resourceGroupName).GetAwaiter().GetResult());
 }