From 747b692a34bb2adf9e3448125836d659b3a62365 Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Tue, 8 Sep 2020 12:56:58 +0200 Subject: [PATCH 1/7] Add validation function for eventhub datasource to accept dollar sign --- azurerm/helpers/azure/eventhub.go | 7 +++++++ .../eventhub/eventhub_consumer_group_data_source.go | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/azurerm/helpers/azure/eventhub.go b/azurerm/helpers/azure/eventhub.go index 43b193bd000b..ffa84d90d21a 100644 --- a/azurerm/helpers/azure/eventhub.go +++ b/azurerm/helpers/azure/eventhub.go @@ -32,6 +32,13 @@ func ValidateEventHubConsumerName() schema.SchemaValidateFunc { ) } +func ValidateEventHubConsumerDataSourceName() schema.SchemaValidateFunc { + return validation.StringMatch( + regexp.MustCompile("^[a-zA-Z0-9]([-._$$a-zA-Z0-9]{0,48}[a-zA-Z0-9])?$"), + "The consumer group name can contain only letters, numbers, periods (.), hyphens (-),and underscores (_), up to 50 characters, and it must begin and end with a letter or number.", + ) +} + func ValidateEventHubAuthorizationRuleName() schema.SchemaValidateFunc { return validation.StringMatch( regexp.MustCompile("^[a-zA-Z0-9]([-._a-zA-Z0-9]{0,48}[a-zA-Z0-9])?$"), diff --git a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go index c79004c7375a..6738adfd2725 100644 --- a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go +++ b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go @@ -23,7 +23,7 @@ func dataSourceEventHubConsumerGroup() *schema.Resource { "name": { Type: schema.TypeString, Required: true, - ValidateFunc: azure.ValidateEventHubConsumerName(), + ValidateFunc: azure.ValidateEventHubConsumerDataSourceName(), }, "namespace_name": { From d6a3209fb4eb4e840896f78d40ce41a1eecfb2e4 Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Tue, 8 Sep 2020 13:03:24 +0200 Subject: [PATCH 2/7] Add a test --- ...venthub_consumer_group_data_source_test.go | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/azurerm/internal/services/eventhub/tests/eventhub_consumer_group_data_source_test.go b/azurerm/internal/services/eventhub/tests/eventhub_consumer_group_data_source_test.go index 3802cf8da05d..edd20c779fb4 100644 --- a/azurerm/internal/services/eventhub/tests/eventhub_consumer_group_data_source_test.go +++ b/azurerm/internal/services/eventhub/tests/eventhub_consumer_group_data_source_test.go @@ -27,6 +27,25 @@ func TestAccDataSourceAzureRMEventHubConsumerGroup_complete(t *testing.T) { }) } +func TestAccDataSourceAzureRMEventHubConsumerGroupDefault_complete(t *testing.T) { + data := acceptance.BuildTestData(t, "data.azurerm_eventhub_consumer_group", "test") + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acceptance.PreCheck(t) }, + Providers: acceptance.SupportedProviders, + CheckDestroy: testCheckAzureRMEventHubConsumerGroupDestroy, + Steps: []resource.TestStep{ + { + Config: testAccDataSourceAzureRMEventHubConsumerGroupDefault_complete(data), + Check: resource.ComposeTestCheckFunc( + testCheckAzureRMEventHubConsumerGroupExists(data.ResourceName), + resource.TestCheckResourceAttr(data.ResourceName, "user_metadata", "some-meta-data"), + ), + }, + }, + }) +} + func testAccDataSourceAzureRMEventHubConsumerGroup_complete(data acceptance.TestData) string { return fmt.Sprintf(` provider "azurerm" { @@ -69,3 +88,38 @@ data "azurerm_eventhub_consumer_group" "test" { } `, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger, data.RandomInteger) } + +func testAccDataSourceAzureRMEventHubConsumerGroupDefault_complete(data acceptance.TestData) string { + return fmt.Sprintf(` +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "test" { + name = "acctestRG-%d" + location = "%s" +} + +resource "azurerm_eventhub_namespace" "test" { + name = "acctesteventhubnamespace-%d" + location = azurerm_resource_group.test.location + resource_group_name = azurerm_resource_group.test.name + sku = "Standard" +} + +resource "azurerm_eventhub" "test" { + name = "acctesteventhub-%d" + namespace_name = azurerm_eventhub_namespace.test.name + resource_group_name = azurerm_resource_group.test.name + partition_count = 2 + message_retention = 7 +} + +data "azurerm_eventhub_consumer_group" "test" { + name = "$Default" + namespace_name = azurerm_eventhub_namespace.test.name + eventhub_name = azurerm_eventhub.test.name + resource_group_name = azurerm_resource_group.test.name +} +`, data.RandomInteger, data.Locations.Primary, data.RandomInteger, data.RandomInteger) +} From 715eeba9fe76f2f960951a832d9205f46e85e80e Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Tue, 8 Sep 2020 18:38:22 +0200 Subject: [PATCH 3/7] Update azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go Co-authored-by: Steve <11830746+jackofallops@users.noreply.github.com> --- .../services/eventhub/eventhub_consumer_group_data_source.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go index 6738adfd2725..5abfbb0868f6 100644 --- a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go +++ b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go @@ -23,7 +23,10 @@ func dataSourceEventHubConsumerGroup() *schema.Resource { "name": { Type: schema.TypeString, Required: true, - ValidateFunc: azure.ValidateEventHubConsumerDataSourceName(), + ValidateFunc: validation.Any( + azure.ValidateEventHubConsumerName(), + validation.StringInSlice([]string{"$Default"}, + ) }, "namespace_name": { From 98bb1f73d3f611c14f105446aab0d9e590494901 Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Tue, 8 Sep 2020 18:41:00 +0200 Subject: [PATCH 4/7] Remove extra function --- azurerm/helpers/azure/eventhub.go | 7 ------- 1 file changed, 7 deletions(-) diff --git a/azurerm/helpers/azure/eventhub.go b/azurerm/helpers/azure/eventhub.go index ffa84d90d21a..43b193bd000b 100644 --- a/azurerm/helpers/azure/eventhub.go +++ b/azurerm/helpers/azure/eventhub.go @@ -32,13 +32,6 @@ func ValidateEventHubConsumerName() schema.SchemaValidateFunc { ) } -func ValidateEventHubConsumerDataSourceName() schema.SchemaValidateFunc { - return validation.StringMatch( - regexp.MustCompile("^[a-zA-Z0-9]([-._$$a-zA-Z0-9]{0,48}[a-zA-Z0-9])?$"), - "The consumer group name can contain only letters, numbers, periods (.), hyphens (-),and underscores (_), up to 50 characters, and it must begin and end with a letter or number.", - ) -} - func ValidateEventHubAuthorizationRuleName() schema.SchemaValidateFunc { return validation.StringMatch( regexp.MustCompile("^[a-zA-Z0-9]([-._a-zA-Z0-9]{0,48}[a-zA-Z0-9])?$"), From 15d21c0efb0abf4541f0f3e9b08eb81acf4c6f4e Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Wed, 9 Sep 2020 00:25:38 +0200 Subject: [PATCH 5/7] Fix validation syntax --- .../services/eventhub/eventhub_consumer_group_data_source.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go index 5abfbb0868f6..eb377f301e06 100644 --- a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go +++ b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go @@ -2,6 +2,7 @@ package eventhub import ( "fmt" + "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "time" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" @@ -25,8 +26,8 @@ func dataSourceEventHubConsumerGroup() *schema.Resource { Required: true, ValidateFunc: validation.Any( azure.ValidateEventHubConsumerName(), - validation.StringInSlice([]string{"$Default"}, - ) + validation.StringInSlice([]string{"$Default"}, false), + ), }, "namespace_name": { From 37dbc4a2d1673e105a4411a052a821bd7bdde52d Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Wed, 9 Sep 2020 01:07:02 +0200 Subject: [PATCH 6/7] fmt --- .../eventhub/eventhub_consumer_group_data_source.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go index eb377f301e06..6ce7faf354ec 100644 --- a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go +++ b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go @@ -22,12 +22,12 @@ func dataSourceEventHubConsumerGroup() *schema.Resource { Schema: map[string]*schema.Schema{ "name": { - Type: schema.TypeString, - Required: true, + Type: schema.TypeString, + Required: true, ValidateFunc: validation.Any( azure.ValidateEventHubConsumerName(), validation.StringInSlice([]string{"$Default"}, false), - ), + ), }, "namespace_name": { From 35f71edc93f8c616dfbc1dcdbec69168f135ad65 Mon Sep 17 00:00:00 2001 From: Vladimir Lazarenko Date: Wed, 9 Sep 2020 09:11:49 +0200 Subject: [PATCH 7/7] Ordering of imports --- .../services/eventhub/eventhub_consumer_group_data_source.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go index 6ce7faf354ec..60bf2c12ca4f 100644 --- a/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go +++ b/azurerm/internal/services/eventhub/eventhub_consumer_group_data_source.go @@ -2,10 +2,10 @@ package eventhub import ( "fmt" - "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "time" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" + "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients" "github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/timeouts"