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)); } }
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); }
/// <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(); }
/// <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(); }