From 33fd3937356a1151891c32672f94b21309786e9b Mon Sep 17 00:00:00 2001 From: magodo Date: Mon, 22 Jun 2020 17:10:26 +0800 Subject: [PATCH 1/2] azurerm_hdinsights_*_cluster: loosen work node count validation --- azurerm/helpers/azure/hdinsight.go | 11 ++++++++--- .../hdinsight/hdinsight_hadoop_cluster_resource.go | 5 ++--- .../hdinsight/hdinsight_hbase_cluster_resource.go | 5 ++--- .../hdinsight_interactive_query_cluster_resource.go | 5 ++--- .../hdinsight/hdinsight_kafka_cluster_resource.go | 5 ++--- .../hdinsight_ml_services_cluster_resource.go | 7 +++---- .../hdinsight/hdinsight_rserver_cluster_resource.go | 7 +++---- .../hdinsight/hdinsight_spark_cluster_resource.go | 5 ++--- .../hdinsight/hdinsight_storm_cluster_resource.go | 8 +++----- 9 files changed, 27 insertions(+), 31 deletions(-) diff --git a/azurerm/helpers/azure/hdinsight.go b/azurerm/helpers/azure/hdinsight.go index 19c23aaaab08..458169943b62 100644 --- a/azurerm/helpers/azure/hdinsight.go +++ b/azurerm/helpers/azure/hdinsight.go @@ -520,7 +520,7 @@ func ExpandHDInsightsStorageAccounts(storageAccounts []interface{}, gen2storageA type HDInsightNodeDefinition struct { CanSpecifyInstanceCount bool MinInstanceCount int - MaxInstanceCount int + MaxInstanceCount *int CanSpecifyDisks bool MaxNumberOfDisksPerNode *int FixedMinInstanceCount *int32 @@ -665,6 +665,11 @@ func SchemaHDInsightNodeDefinition(schemaLocation string, definition HDInsightNo } if definition.CanSpecifyInstanceCount { + countValidation := validation.IntAtLeast(definition.MinInstanceCount) + if definition.MaxInstanceCount != nil { + countValidation = validation.IntBetween(definition.MinInstanceCount, *definition.MaxInstanceCount) + } + // TODO 3.0: remove this property result["min_instance_count"] = &schema.Schema{ Type: schema.TypeInt, @@ -672,12 +677,12 @@ func SchemaHDInsightNodeDefinition(schemaLocation string, definition HDInsightNo ForceNew: true, Computed: true, Deprecated: "this has been deprecated from the API and will be removed in version 3.0 of the provider", - ValidateFunc: validation.IntBetween(definition.MinInstanceCount, definition.MaxInstanceCount), + ValidateFunc: countValidation, } result["target_instance_count"] = &schema.Schema{ Type: schema.TypeInt, Required: true, - ValidateFunc: validation.IntBetween(definition.MinInstanceCount, definition.MaxInstanceCount), + ValidateFunc: countValidation, } } diff --git a/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go index b31f87c7813a..21601e484696 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go @@ -25,7 +25,7 @@ import ( var hdInsightHadoopClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(2)), @@ -34,14 +34,13 @@ var hdInsightHadoopClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightHadoopClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 25, CanSpecifyDisks: false, } var hdInsightHadoopClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(3)), diff --git a/azurerm/internal/services/hdinsight/hdinsight_hbase_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_hbase_cluster_resource.go index 31996c321c33..be83294e4972 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_hbase_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_hbase_cluster_resource.go @@ -21,7 +21,7 @@ import ( var hdInsightHBaseClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(2)), } @@ -29,14 +29,13 @@ var hdInsightHBaseClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightHBaseClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 23, CanSpecifyDisks: false, } var hdInsightHBaseClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(3)), } diff --git a/azurerm/internal/services/hdinsight/hdinsight_interactive_query_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_interactive_query_cluster_resource.go index 716978f9d6b6..6a4a909786d7 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_interactive_query_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_interactive_query_cluster_resource.go @@ -21,7 +21,7 @@ import ( var hdInsightInteractiveQueryClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(2)), } @@ -29,14 +29,13 @@ var hdInsightInteractiveQueryClusterHeadNodeDefinition = azure.HDInsightNodeDefi var hdInsightInteractiveQueryClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 9, CanSpecifyDisks: false, } var hdInsightInteractiveQueryClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(3)), } diff --git a/azurerm/internal/services/hdinsight/hdinsight_kafka_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_kafka_cluster_resource.go index dd04fe22f89c..d8f8ccb250cf 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_kafka_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_kafka_cluster_resource.go @@ -21,7 +21,7 @@ import ( var hdInsightKafkaClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(2)), } @@ -29,7 +29,6 @@ var hdInsightKafkaClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightKafkaClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 57, CanSpecifyDisks: true, MaxNumberOfDisksPerNode: utils.Int(8), } @@ -37,7 +36,7 @@ var hdInsightKafkaClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightKafkaClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(3)), } diff --git a/azurerm/internal/services/hdinsight/hdinsight_ml_services_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_ml_services_cluster_resource.go index 43d4defac063..3141c93a50fc 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_ml_services_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_ml_services_cluster_resource.go @@ -22,7 +22,7 @@ import ( var hdInsightMLServicesClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(2)), @@ -31,14 +31,13 @@ var hdInsightMLServicesClusterHeadNodeDefinition = azure.HDInsightNodeDefinition var hdInsightMLServicesClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 16, CanSpecifyDisks: false, } var hdInsightMLServicesClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(3)), @@ -47,7 +46,7 @@ var hdInsightMLServicesClusterZookeeperNodeDefinition = azure.HDInsightNodeDefin var hdInsightMLServicesClusterEdgeNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 1, - MaxInstanceCount: 1, + MaxInstanceCount: utils.Int(1), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(1)), } diff --git a/azurerm/internal/services/hdinsight/hdinsight_rserver_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_rserver_cluster_resource.go index 276686ac309b..6781520975a7 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_rserver_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_rserver_cluster_resource.go @@ -22,7 +22,7 @@ import ( var hdInsightRServerClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(2)), @@ -31,14 +31,13 @@ var hdInsightRServerClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightRServerClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 16, CanSpecifyDisks: false, } var hdInsightRServerClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(3)), @@ -47,7 +46,7 @@ var hdInsightRServerClusterZookeeperNodeDefinition = azure.HDInsightNodeDefiniti var hdInsightRServerClusterEdgeNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 1, - MaxInstanceCount: 1, + MaxInstanceCount: utils.Int(1), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(1)), } diff --git a/azurerm/internal/services/hdinsight/hdinsight_spark_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_spark_cluster_resource.go index 985d07ac52e4..6303ed1ed511 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_spark_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_spark_cluster_resource.go @@ -21,7 +21,7 @@ import ( var hdInsightSparkClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 2, - MaxInstanceCount: 2, + MaxInstanceCount: utils.Int(2), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(2)), } @@ -29,14 +29,13 @@ var hdInsightSparkClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightSparkClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - MaxInstanceCount: 19, CanSpecifyDisks: false, } var hdInsightSparkClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), FixedTargetInstanceCount: utils.Int32(int32(3)), CanSpecifyDisks: false, } diff --git a/azurerm/internal/services/hdinsight/hdinsight_storm_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_storm_cluster_resource.go index 22aaff44c613..9f66197d27c9 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_storm_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_storm_cluster_resource.go @@ -21,7 +21,7 @@ import ( var hdInsightStormClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 4, - MaxInstanceCount: 4, + MaxInstanceCount: utils.Int(4), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(2)), } @@ -29,15 +29,13 @@ var hdInsightStormClusterHeadNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightStormClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: true, MinInstanceCount: 1, - // can't find a hard limit - appears to be limited by the subscription; setting something sensible for now - MaxInstanceCount: 9999, - CanSpecifyDisks: false, + CanSpecifyDisks: false, } var hdInsightStormClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: 3, + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedTargetInstanceCount: utils.Int32(int32(3)), } From 316de59dfd5aad5e2abf53aa13404e7a239fac25 Mon Sep 17 00:00:00 2001 From: magodo Date: Tue, 23 Jun 2020 07:16:49 +0800 Subject: [PATCH 2/2] fix typo --- .../services/hdinsight/hdinsight_hadoop_cluster_resource.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go b/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go index 21601e484696..965ef9d5cd6b 100644 --- a/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go +++ b/azurerm/internal/services/hdinsight/hdinsight_hadoop_cluster_resource.go @@ -40,7 +40,7 @@ var hdInsightHadoopClusterWorkerNodeDefinition = azure.HDInsightNodeDefinition{ var hdInsightHadoopClusterZookeeperNodeDefinition = azure.HDInsightNodeDefinition{ CanSpecifyInstanceCount: false, MinInstanceCount: 3, - MaxInstanceCount: utils.Int(2), + MaxInstanceCount: utils.Int(3), CanSpecifyDisks: false, FixedMinInstanceCount: utils.Int32(int32(1)), FixedTargetInstanceCount: utils.Int32(int32(3)),