public override void ExecuteCmdlet()
        {
            if (this.IsParameterBound(c => c.ResourceId))
            {
                var resourceIdentifier = new ResourceIdentifier(ResourceId);
                this.ClusterName       = resourceIdentifier.ResourceName;
                this.ResourceGroupName = resourceIdentifier.ResourceGroupName;
            }

            if (this.IsParameterBound(c => c.InputObject))
            {
                this.ClusterName       = this.InputObject.Name;
                this.ResourceGroupName = this.InputObject.ResourceGroup;
            }

            if (ResourceGroupName == null)
            {
                ResourceGroupName = GetResourceGroupByAccountName(ClusterName);
            }

            if (ShouldProcess(ClusterName))
            {
                AutoscaleConfigurationUpdateParameter parameter = new AutoscaleConfigurationUpdateParameter();
                HDInsightManagementClient.UpdateAutoScaleConfiguration(ResourceGroupName, ClusterName, parameter);

                Cluster cluster = HDInsightManagementClient.Get(ResourceGroupName, ClusterName);
                WriteObject(new AzureHDInsightCluster(cluster));
            }
        }
Пример #2
0
        public void TestUpdateAutoScaleConfiguration()
        {
            TestInitialize();

            //create a cluster without autoscale config
            string clusterName  = TestUtilities.GenerateName("hdisdk-updateautoscale");
            var    createParams = CommonData.PrepareClusterCreateParamsForWasb();

            createParams.Location = "South Central US";

            var cluster = HDInsightClient.Clusters.Create(CommonData.ResourceGroupName, clusterName, createParams);

            ValidateCluster(clusterName, createParams, cluster);

            var clusterWithoutAutoscale = HDInsightClient.Clusters.Get(CommonData.ResourceGroupName, clusterName);

            Assert.Null(cluster.Properties.ComputeProfile.Roles.First(role => role.Name.Equals("workernode")).AutoscaleConfiguration);

            // enable autoscale
            AutoscaleConfigurationUpdateParameter loadBasedAutoScaleConfig = new AutoscaleConfigurationUpdateParameter
            {
                Autoscale = new Autoscale
                {
                    Capacity = new AutoscaleCapacity
                    {
                        MinInstanceCount = 3,
                        MaxInstanceCount = 4
                    }
                }
            };

            HDInsightClient.Clusters.UpdateAutoScaleConfiguration(CommonData.ResourceGroupName, clusterName, loadBasedAutoScaleConfig);
            var clusterEnabledAutoScale = HDInsightClient.Clusters.Get(CommonData.ResourceGroupName, clusterName);

            ValidateAutoScaleConfig(loadBasedAutoScaleConfig.Autoscale, clusterEnabledAutoScale.Properties.ComputeProfile.Roles.First(role => role.Name.Equals("workernode")).AutoscaleConfiguration);

            // disable autoscale
            loadBasedAutoScaleConfig.Autoscale = null;
            HDInsightClient.Clusters.UpdateAutoScaleConfiguration(CommonData.ResourceGroupName, clusterName, loadBasedAutoScaleConfig);
            var clusterDisabledAutoScale = HDInsightClient.Clusters.Get(CommonData.ResourceGroupName, clusterName);

            Assert.Null(clusterDisabledAutoScale.Properties.ComputeProfile.Roles.First(role => role.Name.Equals("workernode")).AutoscaleConfiguration);
        }
 public virtual void UpdateAutoScaleConfiguration(string resourceGroupName, string clusterName, AutoscaleConfigurationUpdateParameter autoscaleConfigurationUpdateParameter)
 {
     HdInsightManagementClient.Clusters.UpdateAutoScaleConfiguration(resourceGroupName, clusterName, autoscaleConfigurationUpdateParameter);
 }
Пример #4
0
 /// <summary>
 /// Updates the Autoscale Configuration for HDInsight cluster.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='clusterName'>
 /// The name of the cluster.
 /// </param>
 /// <param name='parameters'>
 /// The parameters for the update autoscale configuration operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task BeginUpdateAutoScaleConfigurationAsync(this IClustersOperations operations, string resourceGroupName, string clusterName, AutoscaleConfigurationUpdateParameter parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.BeginUpdateAutoScaleConfigurationWithHttpMessagesAsync(resourceGroupName, clusterName, parameters, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
Пример #5
0
 /// <summary>
 /// Updates the Autoscale Configuration for HDInsight cluster.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group.
 /// </param>
 /// <param name='clusterName'>
 /// The name of the cluster.
 /// </param>
 /// <param name='parameters'>
 /// The parameters for the update autoscale configuration operation.
 /// </param>
 public static void BeginUpdateAutoScaleConfiguration(this IClustersOperations operations, string resourceGroupName, string clusterName, AutoscaleConfigurationUpdateParameter parameters)
 {
     operations.BeginUpdateAutoScaleConfigurationAsync(resourceGroupName, clusterName, parameters).GetAwaiter().GetResult();
 }