From 5dfbdfec5202d2bdb756ae459dbcc33bfde3f621 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Wed, 7 Sep 2022 23:03:03 +0000 Subject: [PATCH 01/24] feat: added hand writtent test for eventarc channel acceptance test --- .../tests/resource_eventarc_channel_test.go | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go new file mode 100644 index 000000000000..f1338c369b64 --- /dev/null +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go @@ -0,0 +1,206 @@ +package google + +import ( + "context" + "fmt" + "strings" + "testing" + + dcl "github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl" + eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc/beta" + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) + +func TestAccEventarcChannel_MinimalChannel(t *testing.T) { + t.Parallel() + + context := map[string]interface{}{ + "project_name": getTestProjectFromEnv(), + "region": getTestRegionFromEnv(), + "random_suffix": randString(t, 10), + } + + vcrTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), + Steps: []resource.TestStep{ + { + Config: testAccEventarcChannel_MinimalChannel(context), + }, + { + ResourceName: "google_eventarc_channel.primary", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} +func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { + t.Parallel() + + region := getTestRegionFromEnv() + key1 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key1") + key2 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key2") + + context := map[string]interface{}{ + "billing_acct": getTestBillingAccountFromEnv(t), + "org_id": getTestOrgFromEnv(t), + "region": region, + "project_name": getTestProjectFromEnv(), + "key_ring": GetResourceNameFromSelfLink(key1.KeyRing.Name), + "key1": GetResourceNameFromSelfLink(key1.CryptoKey.Name), + "key2": GetResourceNameFromSelfLink(key2.CryptoKey.Name), + "random_suffix": randString(t, 10), + } + + vcrTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), + Steps: []resource.TestStep{ + { + Config: testAccEventarcChannel_BasicHandWritten(context), + }, + { + ResourceName: "google_eventarc_channel.primary", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccEventarcChannel_BasicHandWrittenUpdate0(context), + }, + { + ResourceName: "google_eventarc_channel.primary", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccEventarcChannel_MinimalChannel(context map[string]interface{}) string { + return Nprintf(` +resource "google_eventarc_channel" "primary" { + location = "%{region}" + name = "tf-test-channel%{random_suffix}" + project = "%{project_name}" +} + + +`, context) +} + +func testAccEventarcChannel_BasicHandWritten(context map[string]interface{}) string { + return Nprintf(` +data "google_project" "test_project" { + project_id = "%{project_name}" +} + +data "google_kms_key_ring" "test_key_ring" { + name = "%{key_ring}" + location = "us-central1" +} + +data "google_kms_crypto_key" "key1" { + name = "%{key1}" + key_ring = data.google_kms_key_ring.test_key_ring.id +} + +resource "google_kms_crypto_key_iam_binding" "key1_binding" { + crypto_key_id = data.google_kms_crypto_key.key1.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] +} + +resource "google_eventarc_channel" "primary" { + location = "%{region}" + name = "tf-test-name%{random_suffix}" + project = "${data.google_project.test_project.project_id}" + crypto_key_name = "${data.google_kms_crypto_key.key1.id}" + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key1_binding] +} +`, context) +} + +func testAccEventarcChannel_BasicHandWrittenUpdate0(context map[string]interface{}) string { + return Nprintf(` + data "google_project" "test_project" { + project_id = "%{project_name}" + } + + data "google_kms_key_ring" "test_key_ring" { + name = "%{key_ring}" + location = "us-central1" + } + + data "google_kms_crypto_key" "key2" { + name = "%{key2}" + key_ring = data.google_kms_key_ring.test_key_ring.id + } + + resource "google_kms_crypto_key_iam_binding" "key2_binding" { + crypto_key_id = data.google_kms_crypto_key.key2.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] + } + + resource "google_eventarc_channel" "primary" { + location = "%{region}" + name = "tf-test-name%{random_suffix}" + project = "${data.google_project.test_project.project_id}" + crypto_key_name= "${data.google_kms_crypto_key.key2.id}" + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key2_binding] + } +`, context) +} + +func testAccCheckEventarcChannelDestroyProducer(t *testing.T) func(s *terraform.State) error { + return func(s *terraform.State) error { + for name, rs := range s.RootModule().Resources { + if rs.Type != "rs.google_eventarc_channel" { + continue + } + if strings.HasPrefix(name, "data.") { + continue + } + + config := googleProviderConfig(t) + + billingProject := "" + if config.BillingProject != "" { + billingProject = config.BillingProject + } + + obj := &eventarc.Channel{ + Location: dcl.String(rs.Primary.Attributes["location"]), + Name: dcl.String(rs.Primary.Attributes["name"]), + CryptoKeyName: dcl.String(rs.Primary.Attributes["crypto_key_name"]), + Project: dcl.StringOrNil(rs.Primary.Attributes["project"]), + ThirdPartyProvider: dcl.String(rs.Primary.Attributes["third_party_provider"]), + ActivationToken: dcl.StringOrNil(rs.Primary.Attributes["activation_token"]), + CreateTime: dcl.StringOrNil(rs.Primary.Attributes["create_time"]), + PubsubTopic: dcl.StringOrNil(rs.Primary.Attributes["pubsub_topic"]), + State: eventarc.ChannelStateEnumRef(rs.Primary.Attributes["state"]), + Uid: dcl.StringOrNil(rs.Primary.Attributes["uid"]), + UpdateTime: dcl.StringOrNil(rs.Primary.Attributes["update_time"]), + } + + client := NewDCLEventarcClient(config, config.userAgent, billingProject, 0) + _, err := client.GetChannel(context.Background(), obj) + if err == nil { + return fmt.Errorf("google_eventarc_channel still exists %v", obj) + } + } + return nil + } +} From 23be6f13c6a90a42bf7ee14a09a23b03c7f00a2c Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Thu, 8 Sep 2022 23:00:23 +0000 Subject: [PATCH 02/24] fix: able to now generate doc's without generating sample --- tpgtools/overrides/eventarc/beta/channel.yaml | 0 tpgtools/overrides/eventarc/channel.yaml | 0 .../eventarc/samples/channel/basic.tf.tmpl | 31 +++++++++++++++++++ .../eventarc/samples/channel/basic.yaml | 11 +++++++ .../eventarc/samples/channel/meta.yaml | 5 +++ 5 files changed, 47 insertions(+) create mode 100644 tpgtools/overrides/eventarc/beta/channel.yaml create mode 100644 tpgtools/overrides/eventarc/channel.yaml create mode 100644 tpgtools/overrides/eventarc/samples/channel/basic.tf.tmpl create mode 100644 tpgtools/overrides/eventarc/samples/channel/basic.yaml create mode 100644 tpgtools/overrides/eventarc/samples/channel/meta.yaml diff --git a/tpgtools/overrides/eventarc/beta/channel.yaml b/tpgtools/overrides/eventarc/beta/channel.yaml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tpgtools/overrides/eventarc/channel.yaml b/tpgtools/overrides/eventarc/channel.yaml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/tpgtools/overrides/eventarc/samples/channel/basic.tf.tmpl b/tpgtools/overrides/eventarc/samples/channel/basic.tf.tmpl new file mode 100644 index 000000000000..b1f4e3e8a86e --- /dev/null +++ b/tpgtools/overrides/eventarc/samples/channel/basic.tf.tmpl @@ -0,0 +1,31 @@ +data "google_project" "test_project" { + project_id = "{{project-id}}" +} + +data "google_kms_key_ring" "test_key_ring" { + name = "{{keyring}}" + location = "{{region}}" +} + +data "google_kms_crypto_key" "key" { + name = "{{key}}" + key_ring = data.google_kms_key_ring.test_key_ring.id +} + +resource "google_kms_crypto_key_iam_binding" "key1_binding" { + crypto_key_id = data.google_kms_crypto_key.key1.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] +} + +resource "google_eventarc_channel" "primary" { + location = "{{region}}" + name = "{{channel}}" + project = "${data.google_project.test_project.project_id}" + crypto_key_name = "${data.google_kms_crypto_key.key1.id}" + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/{{region}}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key1_binding] +} \ No newline at end of file diff --git a/tpgtools/overrides/eventarc/samples/channel/basic.yaml b/tpgtools/overrides/eventarc/samples/channel/basic.yaml new file mode 100644 index 000000000000..b90664e7577d --- /dev/null +++ b/tpgtools/overrides/eventarc/samples/channel/basic.yaml @@ -0,0 +1,11 @@ +variables: + - name: "project-id" + type: "project" + - name: "region" + type: "region" + - name: "keyring" + type: "resource_name" + - name: "key" + type: "resource_name" + - name: "channel" + type: "resource_name" diff --git a/tpgtools/overrides/eventarc/samples/channel/meta.yaml b/tpgtools/overrides/eventarc/samples/channel/meta.yaml new file mode 100644 index 000000000000..2666d0fdc0be --- /dev/null +++ b/tpgtools/overrides/eventarc/samples/channel/meta.yaml @@ -0,0 +1,5 @@ +# meta.yaml +# +# +test_hide: + - basic.tf.tmpl From be4a1740efb0405a473a3fa14908485eec5d1d02 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 13:40:18 +0000 Subject: [PATCH 03/24] nit: removed minimal test --- .../tests/resource_eventarc_channel_test.go | 119 ++++++------------ 1 file changed, 41 insertions(+), 78 deletions(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go index f1338c369b64..74397c50b826 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go @@ -12,31 +12,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" ) -func TestAccEventarcChannel_MinimalChannel(t *testing.T) { - t.Parallel() - - context := map[string]interface{}{ - "project_name": getTestProjectFromEnv(), - "region": getTestRegionFromEnv(), - "random_suffix": randString(t, 10), - } - - vcrTest(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, - Providers: testAccProviders, - CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), - Steps: []resource.TestStep{ - { - Config: testAccEventarcChannel_MinimalChannel(context), - }, - { - ResourceName: "google_eventarc_channel.primary", - ImportState: true, - ImportStateVerify: true, - }, - }, - }) -} func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { t.Parallel() @@ -80,18 +55,6 @@ func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { }) } -func testAccEventarcChannel_MinimalChannel(context map[string]interface{}) string { - return Nprintf(` -resource "google_eventarc_channel" "primary" { - location = "%{region}" - name = "tf-test-channel%{random_suffix}" - project = "%{project_name}" -} - - -`, context) -} - func testAccEventarcChannel_BasicHandWritten(context map[string]interface{}) string { return Nprintf(` data "google_project" "test_project" { @@ -102,65 +65,65 @@ data "google_kms_key_ring" "test_key_ring" { name = "%{key_ring}" location = "us-central1" } - + data "google_kms_crypto_key" "key1" { name = "%{key1}" key_ring = data.google_kms_key_ring.test_key_ring.id } resource "google_kms_crypto_key_iam_binding" "key1_binding" { - crypto_key_id = data.google_kms_crypto_key.key1.id - role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" - - members = [ - "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", - ] + crypto_key_id = data.google_kms_crypto_key.key1.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] } resource "google_eventarc_channel" "primary" { - location = "%{region}" - name = "tf-test-name%{random_suffix}" - project = "${data.google_project.test_project.project_id}" - crypto_key_name = "${data.google_kms_crypto_key.key1.id}" - third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" - depends_on = [google_kms_crypto_key_iam_binding.key1_binding] +location = "%{region}" +name = "tf-test-name%{random_suffix}" +project = "${data.google_project.test_project.project_id}" +crypto_key_name = "${data.google_kms_crypto_key.key1.id}" +third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" +depends_on = [google_kms_crypto_key_iam_binding.key1_binding] } `, context) } func testAccEventarcChannel_BasicHandWrittenUpdate0(context map[string]interface{}) string { return Nprintf(` - data "google_project" "test_project" { - project_id = "%{project_name}" - } +data "google_project" "test_project" { + project_id = "%{project_name}" +} - data "google_kms_key_ring" "test_key_ring" { - name = "%{key_ring}" - location = "us-central1" - } - - data "google_kms_crypto_key" "key2" { - name = "%{key2}" - key_ring = data.google_kms_key_ring.test_key_ring.id - } +data "google_kms_key_ring" "test_key_ring" { + name = "%{key_ring}" + location = "us-central1" +} + +data "google_kms_crypto_key" "key2" { + name = "%{key2}" + key_ring = data.google_kms_key_ring.test_key_ring.id +} - resource "google_kms_crypto_key_iam_binding" "key2_binding" { - crypto_key_id = data.google_kms_crypto_key.key2.id - role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" - - members = [ - "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", - ] - } +resource "google_kms_crypto_key_iam_binding" "key2_binding" { + crypto_key_id = data.google_kms_crypto_key.key2.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] +} - resource "google_eventarc_channel" "primary" { - location = "%{region}" - name = "tf-test-name%{random_suffix}" - project = "${data.google_project.test_project.project_id}" - crypto_key_name= "${data.google_kms_crypto_key.key2.id}" - third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" - depends_on = [google_kms_crypto_key_iam_binding.key2_binding] - } +resource "google_eventarc_channel" "primary" { + location = "%{region}" + name = "tf-test-name%{random_suffix}" + project = "${data.google_project.test_project.project_id}" + crypto_key_name= "${data.google_kms_crypto_key.key2.id}" + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key2_binding] +} `, context) } From 8a3daa049812e258b05bc56f007791cec92b7ef6 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 15:07:01 +0000 Subject: [PATCH 04/24] fix: updating DCL v.1.20.1 --- mmv1/third_party/terraform/go.mod.erb | 2 +- mmv1/third_party/terraform/go.sum | 2 ++ tpgtools/go.mod | 3 +-- tpgtools/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/mmv1/third_party/terraform/go.mod.erb b/mmv1/third_party/terraform/go.mod.erb index 9dd7c5f05e9d..4e224cd7dd99 100644 --- a/mmv1/third_party/terraform/go.mod.erb +++ b/mmv1/third_party/terraform/go.mod.erb @@ -5,7 +5,7 @@ go 1.18 require ( cloud.google.com/go/bigtable v1.16.0 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.19.0 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 github.com/apparentlymart/go-cidr v1.1.0 github.com/client9/misspell v0.3.4 github.com/davecgh/go-spew v1.1.1 diff --git a/mmv1/third_party/terraform/go.sum b/mmv1/third_party/terraform/go.sum index 02b86cb57ec3..bc599aa56cb3 100644 --- a/mmv1/third_party/terraform/go.sum +++ b/mmv1/third_party/terraform/go.sum @@ -1515,3 +1515,5 @@ rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/A97+HDHSK35yPKsg7hEUe9wYGPM91LppirAE+Xv6M= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= diff --git a/tpgtools/go.mod b/tpgtools/go.mod index 79d640ed7c9a..007332b6ece4 100644 --- a/tpgtools/go.mod +++ b/tpgtools/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( bitbucket.org/creachadair/stringset v0.0.9 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.19.0 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/hashicorp/errwrap v1.0.0 github.com/hashicorp/hcl v1.0.0 @@ -23,7 +23,6 @@ require ( github.com/golang/protobuf v1.4.2 // indirect github.com/google/go-cmp v0.5.8 // indirect github.com/google/go-cpy v0.0.0-20211218193943-a9c933c06932 // indirect - github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect github.com/hashicorp/go-multierror v1.0.0 // indirect github.com/hashicorp/go-uuid v1.0.1 // indirect diff --git a/tpgtools/go.sum b/tpgtools/go.sum index 2dbc38d3c966..0b76d27e475b 100644 --- a/tpgtools/go.sum +++ b/tpgtools/go.sum @@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.19.0 h1:4YAtk4xuOCxUSkGdwlDhkX7DTP4VwLZCoebGGEsU+U4= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.19.0/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/A97+HDHSK35yPKsg7hEUe9wYGPM91LppirAE+Xv6M= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= From 9009d25604738587ab480b3feb6f3ba97960c8c3 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 15:49:50 +0000 Subject: [PATCH 05/24] fix: changed test file to ruby template file to check version, to get right eventarc service --- .../resource_eventarc_channel_test.go.erb | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb new file mode 100644 index 000000000000..b8e220015ee1 --- /dev/null +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -0,0 +1,174 @@ +<% autogen_exception -%> +package google + +import ( + "context" + "fmt" + "strings" + "testing" + + dcl "github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl" + <% if version == "ga" -%> + eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc" + <% else -%> + eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc/beta" + <% end -%> + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) + +func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { + t.Parallel() + + region := getTestRegionFromEnv() + key1 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key1") + key2 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key2") + + context := map[string]interface{}{ + "billing_acct": getTestBillingAccountFromEnv(t), + "org_id": getTestOrgFromEnv(t), + "region": region, + "project_name": getTestProjectFromEnv(), + "key_ring": GetResourceNameFromSelfLink(key1.KeyRing.Name), + "key1": GetResourceNameFromSelfLink(key1.CryptoKey.Name), + "key2": GetResourceNameFromSelfLink(key2.CryptoKey.Name), + "random_suffix": randString(t, 10), + } + + vcrTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), + Steps: []resource.TestStep{ + { + Config: testAccEventarcChannel_BasicHandWritten(context), + }, + { + ResourceName: "google_eventarc_channel.primary", + ImportState: true, + ImportStateVerify: true, + }, + { + Config: testAccEventarcChannel_BasicHandWrittenUpdate0(context), + }, + { + ResourceName: "google_eventarc_channel.primary", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccEventarcChannel_BasicHandWritten(context map[string]interface{}) string { + return Nprintf(` +data "google_project" "test_project" { + project_id = "%{project_name}" +} + +data "google_kms_key_ring" "test_key_ring" { + name = "%{key_ring}" + location = "us-central1" +} + +data "google_kms_crypto_key" "key1" { + name = "%{key1}" + key_ring = data.google_kms_key_ring.test_key_ring.id +} + +resource "google_kms_crypto_key_iam_binding" "key1_binding" { + crypto_key_id = data.google_kms_crypto_key.key1.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] +} + +resource "google_eventarc_channel" "primary" { +location = "%{region}" +name = "tf-test-name%{random_suffix}" +project = "${data.google_project.test_project.project_id}" +crypto_key_name = "${data.google_kms_crypto_key.key1.id}" +third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" +depends_on = [google_kms_crypto_key_iam_binding.key1_binding] +} +`, context) +} + +func testAccEventarcChannel_BasicHandWrittenUpdate0(context map[string]interface{}) string { + return Nprintf(` +data "google_project" "test_project" { + project_id = "%{project_name}" +} + +data "google_kms_key_ring" "test_key_ring" { + name = "%{key_ring}" + location = "us-central1" +} + +data "google_kms_crypto_key" "key2" { + name = "%{key2}" + key_ring = data.google_kms_key_ring.test_key_ring.id +} + +resource "google_kms_crypto_key_iam_binding" "key2_binding" { + crypto_key_id = data.google_kms_crypto_key.key2.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] +} + +resource "google_eventarc_channel" "primary" { + location = "%{region}" + name = "tf-test-name%{random_suffix}" + project = "${data.google_project.test_project.project_id}" + crypto_key_name= "${data.google_kms_crypto_key.key2.id}" + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key2_binding] +} +`, context) +} + +func testAccCheckEventarcChannelDestroyProducer(t *testing.T) func(s *terraform.State) error { + return func(s *terraform.State) error { + for name, rs := range s.RootModule().Resources { + if rs.Type != "rs.google_eventarc_channel" { + continue + } + if strings.HasPrefix(name, "data.") { + continue + } + + config := googleProviderConfig(t) + + billingProject := "" + if config.BillingProject != "" { + billingProject = config.BillingProject + } + + obj := &eventarc.Channel{ + Location: dcl.String(rs.Primary.Attributes["location"]), + Name: dcl.String(rs.Primary.Attributes["name"]), + CryptoKeyName: dcl.String(rs.Primary.Attributes["crypto_key_name"]), + Project: dcl.StringOrNil(rs.Primary.Attributes["project"]), + ThirdPartyProvider: dcl.String(rs.Primary.Attributes["third_party_provider"]), + ActivationToken: dcl.StringOrNil(rs.Primary.Attributes["activation_token"]), + CreateTime: dcl.StringOrNil(rs.Primary.Attributes["create_time"]), + PubsubTopic: dcl.StringOrNil(rs.Primary.Attributes["pubsub_topic"]), + State: eventarc.ChannelStateEnumRef(rs.Primary.Attributes["state"]), + Uid: dcl.StringOrNil(rs.Primary.Attributes["uid"]), + UpdateTime: dcl.StringOrNil(rs.Primary.Attributes["update_time"]), + } + + client := NewDCLEventarcClient(config, config.userAgent, billingProject, 0) + _, err := client.GetChannel(context.Background(), obj) + if err == nil { + return fmt.Errorf("google_eventarc_channel still exists %v", obj) + } + } + return nil + } +} From 0f258e3039fcc5bcb94ae30e0b74a3ec675b4a41 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 16:10:54 +0000 Subject: [PATCH 06/24] fix: deleted test go file --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index b8e220015ee1..8b9d3c4c2374 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -12,7 +12,7 @@ import ( eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc" <% else -%> eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc/beta" - <% end -%> + <% end %> "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" ) From 5bd6f75bf3e62956fb68532e9225558f640c385b Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 16:11:06 +0000 Subject: [PATCH 07/24] fix: added the deletion to commit --- .../tests/resource_eventarc_channel_test.go | 169 ------------------ 1 file changed, 169 deletions(-) delete mode 100644 mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go deleted file mode 100644 index 74397c50b826..000000000000 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go +++ /dev/null @@ -1,169 +0,0 @@ -package google - -import ( - "context" - "fmt" - "strings" - "testing" - - dcl "github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl" - eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc/beta" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" -) - -func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { - t.Parallel() - - region := getTestRegionFromEnv() - key1 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key1") - key2 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key2") - - context := map[string]interface{}{ - "billing_acct": getTestBillingAccountFromEnv(t), - "org_id": getTestOrgFromEnv(t), - "region": region, - "project_name": getTestProjectFromEnv(), - "key_ring": GetResourceNameFromSelfLink(key1.KeyRing.Name), - "key1": GetResourceNameFromSelfLink(key1.CryptoKey.Name), - "key2": GetResourceNameFromSelfLink(key2.CryptoKey.Name), - "random_suffix": randString(t, 10), - } - - vcrTest(t, resource.TestCase{ - PreCheck: func() { testAccPreCheck(t) }, - Providers: testAccProviders, - CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), - Steps: []resource.TestStep{ - { - Config: testAccEventarcChannel_BasicHandWritten(context), - }, - { - ResourceName: "google_eventarc_channel.primary", - ImportState: true, - ImportStateVerify: true, - }, - { - Config: testAccEventarcChannel_BasicHandWrittenUpdate0(context), - }, - { - ResourceName: "google_eventarc_channel.primary", - ImportState: true, - ImportStateVerify: true, - }, - }, - }) -} - -func testAccEventarcChannel_BasicHandWritten(context map[string]interface{}) string { - return Nprintf(` -data "google_project" "test_project" { - project_id = "%{project_name}" -} - -data "google_kms_key_ring" "test_key_ring" { - name = "%{key_ring}" - location = "us-central1" -} - -data "google_kms_crypto_key" "key1" { - name = "%{key1}" - key_ring = data.google_kms_key_ring.test_key_ring.id -} - -resource "google_kms_crypto_key_iam_binding" "key1_binding" { - crypto_key_id = data.google_kms_crypto_key.key1.id - role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" - - members = [ - "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", - ] -} - -resource "google_eventarc_channel" "primary" { -location = "%{region}" -name = "tf-test-name%{random_suffix}" -project = "${data.google_project.test_project.project_id}" -crypto_key_name = "${data.google_kms_crypto_key.key1.id}" -third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" -depends_on = [google_kms_crypto_key_iam_binding.key1_binding] -} -`, context) -} - -func testAccEventarcChannel_BasicHandWrittenUpdate0(context map[string]interface{}) string { - return Nprintf(` -data "google_project" "test_project" { - project_id = "%{project_name}" -} - -data "google_kms_key_ring" "test_key_ring" { - name = "%{key_ring}" - location = "us-central1" -} - -data "google_kms_crypto_key" "key2" { - name = "%{key2}" - key_ring = data.google_kms_key_ring.test_key_ring.id -} - -resource "google_kms_crypto_key_iam_binding" "key2_binding" { - crypto_key_id = data.google_kms_crypto_key.key2.id - role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" - - members = [ - "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", - ] -} - -resource "google_eventarc_channel" "primary" { - location = "%{region}" - name = "tf-test-name%{random_suffix}" - project = "${data.google_project.test_project.project_id}" - crypto_key_name= "${data.google_kms_crypto_key.key2.id}" - third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" - depends_on = [google_kms_crypto_key_iam_binding.key2_binding] -} -`, context) -} - -func testAccCheckEventarcChannelDestroyProducer(t *testing.T) func(s *terraform.State) error { - return func(s *terraform.State) error { - for name, rs := range s.RootModule().Resources { - if rs.Type != "rs.google_eventarc_channel" { - continue - } - if strings.HasPrefix(name, "data.") { - continue - } - - config := googleProviderConfig(t) - - billingProject := "" - if config.BillingProject != "" { - billingProject = config.BillingProject - } - - obj := &eventarc.Channel{ - Location: dcl.String(rs.Primary.Attributes["location"]), - Name: dcl.String(rs.Primary.Attributes["name"]), - CryptoKeyName: dcl.String(rs.Primary.Attributes["crypto_key_name"]), - Project: dcl.StringOrNil(rs.Primary.Attributes["project"]), - ThirdPartyProvider: dcl.String(rs.Primary.Attributes["third_party_provider"]), - ActivationToken: dcl.StringOrNil(rs.Primary.Attributes["activation_token"]), - CreateTime: dcl.StringOrNil(rs.Primary.Attributes["create_time"]), - PubsubTopic: dcl.StringOrNil(rs.Primary.Attributes["pubsub_topic"]), - State: eventarc.ChannelStateEnumRef(rs.Primary.Attributes["state"]), - Uid: dcl.StringOrNil(rs.Primary.Attributes["uid"]), - UpdateTime: dcl.StringOrNil(rs.Primary.Attributes["update_time"]), - } - - client := NewDCLEventarcClient(config, config.userAgent, billingProject, 0) - _, err := client.GetChannel(context.Background(), obj) - if err == nil { - return fmt.Errorf("google_eventarc_channel still exists %v", obj) - } - } - return nil - } -} From 3ee00359e92ed6c0d4bddc545318b36548ba754c Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 18:39:15 +0000 Subject: [PATCH 08/24] fix: enabling eventarcpublishing before trying to create channel --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index 8b9d3c4c2374..8dec7e802319 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -76,6 +76,12 @@ data "google_kms_crypto_key" "key1" { key_ring = data.google_kms_key_ring.test_key_ring.id } +resource "google_project_service" "eventarcpublishing_service" { + project = google_project.test_project.project_id + service = "eventarcpublishing.googleapis.com" + disable_dependent_services = true +} + resource "google_kms_crypto_key_iam_binding" "key1_binding" { crypto_key_id = data.google_kms_crypto_key.key1.id role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" @@ -91,7 +97,7 @@ name = "tf-test-name%{random_suffix}" project = "${data.google_project.test_project.project_id}" crypto_key_name = "${data.google_kms_crypto_key.key1.id}" third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" -depends_on = [google_kms_crypto_key_iam_binding.key1_binding] +depends_on = [google_kms_crypto_key_iam_binding.key1_binding, google_project_service.eventarcpublishing_service] } `, context) } From 08a8a56f1c8c8cbf663f8d4a2ad23c311b249888 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 9 Sep 2022 23:06:22 +0000 Subject: [PATCH 09/24] fix: put data infront of google_project --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index 8dec7e802319..71c45bf681ce 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -77,7 +77,7 @@ data "google_kms_crypto_key" "key1" { } resource "google_project_service" "eventarcpublishing_service" { - project = google_project.test_project.project_id + project = data.google_project.test_project.project_id service = "eventarcpublishing.googleapis.com" disable_dependent_services = true } From abe222fe1b387b7716afeffc8b1361ff4afbc7c7 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Mon, 12 Sep 2022 16:51:37 +0000 Subject: [PATCH 10/24] fix: removing eventarcpublishing dependency in test --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index 71c45bf681ce..66ef897e80eb 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -76,11 +76,6 @@ data "google_kms_crypto_key" "key1" { key_ring = data.google_kms_key_ring.test_key_ring.id } -resource "google_project_service" "eventarcpublishing_service" { - project = data.google_project.test_project.project_id - service = "eventarcpublishing.googleapis.com" - disable_dependent_services = true -} resource "google_kms_crypto_key_iam_binding" "key1_binding" { crypto_key_id = data.google_kms_crypto_key.key1.id @@ -97,7 +92,7 @@ name = "tf-test-name%{random_suffix}" project = "${data.google_project.test_project.project_id}" crypto_key_name = "${data.google_kms_crypto_key.key1.id}" third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" -depends_on = [google_kms_crypto_key_iam_binding.key1_binding, google_project_service.eventarcpublishing_service] +depends_on = [google_kms_crypto_key_iam_binding.key1_binding] } `, context) } From 048bf16d1d6bb77e3c75d381e424017aba93305e Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Tue, 13 Sep 2022 17:11:13 -0400 Subject: [PATCH 11/24] Update mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb Co-authored-by: Riley Karson --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 1 - 1 file changed, 1 deletion(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index 66ef897e80eb..c03b67e68426 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -25,7 +25,6 @@ func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { key2 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key2") context := map[string]interface{}{ - "billing_acct": getTestBillingAccountFromEnv(t), "org_id": getTestOrgFromEnv(t), "region": region, "project_name": getTestProjectFromEnv(), From 919eb752a9d6f7c479f520c7e5e256882238c929 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Tue, 13 Sep 2022 21:42:52 +0000 Subject: [PATCH 12/24] feat: added comment for why I hid basic.tf.tmpl --- tpgtools/overrides/eventarc/samples/channel/meta.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tpgtools/overrides/eventarc/samples/channel/meta.yaml b/tpgtools/overrides/eventarc/samples/channel/meta.yaml index 2666d0fdc0be..e40f88831f15 100644 --- a/tpgtools/overrides/eventarc/samples/channel/meta.yaml +++ b/tpgtools/overrides/eventarc/samples/channel/meta.yaml @@ -1,5 +1,7 @@ # meta.yaml # # +# We are hiding the terraform template because the test's for an Eventarc Channel are handwritten in mmv1. However we want to +# generate the docs for a channel on the registry. We make tpgtools do this without it generating a test test_hide: - basic.tf.tmpl From 4ad2b5f1e8aaffba4b1bae5e4c81ad22bdaffdf9 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Tue, 13 Sep 2022 21:54:47 +0000 Subject: [PATCH 13/24] fix: updating handwritten test with suggested changes --- .../resource_eventarc_channel_test.go.erb | 70 +++++++++++++++---- 1 file changed, 56 insertions(+), 14 deletions(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index 66ef897e80eb..062e9fbc3a2c 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -17,7 +17,36 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" ) -func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { + + +func TestAccEventarcChannel_basic(t *testing.T) { + t.Parallel() + + context := map[string]interface{}{ + "region": getTestRegionFromEnv(), + "project_name": getTestProjectFromEnv(), + "random_suffix": randString(t, 10), + } + + vcrTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), + Steps: []resource.TestStep{ + { + Config: testAccEventarcChannel_basic(context), + }, + { + ResourceName: "google_eventarc_channel.primary", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + + +func TestAccEventarcChannel_cryptoKeyUpdate(t *testing.T) { t.Parallel() region := getTestRegionFromEnv() @@ -25,8 +54,6 @@ func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { key2 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key2") context := map[string]interface{}{ - "billing_acct": getTestBillingAccountFromEnv(t), - "org_id": getTestOrgFromEnv(t), "region": region, "project_name": getTestProjectFromEnv(), "key_ring": GetResourceNameFromSelfLink(key1.KeyRing.Name), @@ -41,7 +68,7 @@ func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { CheckDestroy: testAccCheckEventarcChannelDestroyProducer(t), Steps: []resource.TestStep{ { - Config: testAccEventarcChannel_BasicHandWritten(context), + Config: testAccEventarcChannel_setCryptoKey(context), }, { ResourceName: "google_eventarc_channel.primary", @@ -49,7 +76,7 @@ func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { ImportStateVerify: true, }, { - Config: testAccEventarcChannel_BasicHandWrittenUpdate0(context), + Config: testAccEventarcChannel_cryptoKeyUpdate(context), }, { ResourceName: "google_eventarc_channel.primary", @@ -60,7 +87,22 @@ func TestAccEventarcChannel_BasicHandWritten(t *testing.T) { }) } -func testAccEventarcChannel_BasicHandWritten(context map[string]interface{}) string { +func testAccEventarcChannel_basic(context map[string]interface{}) string { + return Nprintf(` +data "google_project" "test_project" { + project_id = "%{project_name}" +} + +resource "google_eventarc_channel" "primary" { + location = "%{region}" + name = "tf-test-name%{random_suffix}" + project = data.google_project.test_project.project_id + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" +} +`, context) +} + +func testAccEventarcChannel_setCryptoKey(context map[string]interface{}) string { return Nprintf(` data "google_project" "test_project" { project_id = "%{project_name}" @@ -87,17 +129,17 @@ resource "google_kms_crypto_key_iam_binding" "key1_binding" { } resource "google_eventarc_channel" "primary" { -location = "%{region}" -name = "tf-test-name%{random_suffix}" -project = "${data.google_project.test_project.project_id}" -crypto_key_name = "${data.google_kms_crypto_key.key1.id}" -third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" -depends_on = [google_kms_crypto_key_iam_binding.key1_binding] + location = "%{region}" + name = "tf-test-name%{random_suffix}" + project = data.google_project.test_project.project_id + crypto_key_name = "${data.google_kms_crypto_key.key1.id}" + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key1_binding] } `, context) } -func testAccEventarcChannel_BasicHandWrittenUpdate0(context map[string]interface{}) string { +func testAccEventarcChannel_cryptoKeyUpdate(context map[string]interface{}) string { return Nprintf(` data "google_project" "test_project" { project_id = "%{project_name}" @@ -125,7 +167,7 @@ resource "google_kms_crypto_key_iam_binding" "key2_binding" { resource "google_eventarc_channel" "primary" { location = "%{region}" name = "tf-test-name%{random_suffix}" - project = "${data.google_project.test_project.project_id}" + project = data.google_project.test_project.project_id crypto_key_name= "${data.google_kms_crypto_key.key2.id}" third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" depends_on = [google_kms_crypto_key_iam_binding.key2_binding] From 2d90eddc716ee0e75aba174d6cb5ae813779d962 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Wed, 14 Sep 2022 12:58:41 +0000 Subject: [PATCH 14/24] fix: removed the replacement of local dcl in go.mod --- mmv1/third_party/terraform/go.sum | 2 ++ tpgtools/go.mod | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mmv1/third_party/terraform/go.sum b/mmv1/third_party/terraform/go.sum index bc599aa56cb3..542e188fc092 100644 --- a/mmv1/third_party/terraform/go.sum +++ b/mmv1/third_party/terraform/go.sum @@ -1517,3 +1517,5 @@ rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/A97+HDHSK35yPKsg7hEUe9wYGPM91LppirAE+Xv6M= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/A97+HDHSK35yPKsg7hEUe9wYGPM91LppirAE+Xv6M= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= diff --git a/tpgtools/go.mod b/tpgtools/go.mod index 4f86b56e1200..007332b6ece4 100644 --- a/tpgtools/go.mod +++ b/tpgtools/go.mod @@ -47,5 +47,3 @@ require ( google.golang.org/grpc v1.32.0 // indirect google.golang.org/protobuf v1.25.0 // indirect ) - -replace github.com/GoogleCloudPlatform/declarative-resource-client-library => /tmp/dcl-gh-repo From 62a3dda2db716520e26f9ad22719424d5ff9c66f Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Wed, 14 Sep 2022 21:07:04 +0000 Subject: [PATCH 15/24] nit: made change to crypto_key_name field according to comment made about string interpolation --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index 062e9fbc3a2c..e7c760cad023 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -17,8 +17,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" ) - - func TestAccEventarcChannel_basic(t *testing.T) { t.Parallel() @@ -45,7 +43,6 @@ func TestAccEventarcChannel_basic(t *testing.T) { }) } - func TestAccEventarcChannel_cryptoKeyUpdate(t *testing.T) { t.Parallel() @@ -132,7 +129,7 @@ resource "google_eventarc_channel" "primary" { location = "%{region}" name = "tf-test-name%{random_suffix}" project = data.google_project.test_project.project_id - crypto_key_name = "${data.google_kms_crypto_key.key1.id}" + crypto_key_name = data.google_kms_crypto_key.key1.id third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" depends_on = [google_kms_crypto_key_iam_binding.key1_binding] } @@ -168,7 +165,7 @@ resource "google_eventarc_channel" "primary" { location = "%{region}" name = "tf-test-name%{random_suffix}" project = data.google_project.test_project.project_id - crypto_key_name= "${data.google_kms_crypto_key.key2.id}" + crypto_key_name= data.google_kms_crypto_key.key2.id third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" depends_on = [google_kms_crypto_key_iam_binding.key2_binding] } From 8d17c9bf461bd0aa000c375342f6968ec1b7a22e Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Thu, 15 Sep 2022 19:25:01 +0000 Subject: [PATCH 16/24] chore: updating dcl version --- mmv1/third_party/terraform/go.mod.erb | 2 +- mmv1/third_party/terraform/go.sum | 4 ++++ tpgtools/go.mod | 2 +- tpgtools/go.sum | 4 ++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mmv1/third_party/terraform/go.mod.erb b/mmv1/third_party/terraform/go.mod.erb index 4e224cd7dd99..a18cd5b99135 100644 --- a/mmv1/third_party/terraform/go.mod.erb +++ b/mmv1/third_party/terraform/go.mod.erb @@ -5,7 +5,7 @@ go 1.18 require ( cloud.google.com/go/bigtable v1.16.0 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 github.com/apparentlymart/go-cidr v1.1.0 github.com/client9/misspell v0.3.4 github.com/davecgh/go-spew v1.1.1 diff --git a/mmv1/third_party/terraform/go.sum b/mmv1/third_party/terraform/go.sum index 542e188fc092..8e9c10003542 100644 --- a/mmv1/third_party/terraform/go.sum +++ b/mmv1/third_party/terraform/go.sum @@ -1519,3 +1519,7 @@ github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/ github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/A97+HDHSK35yPKsg7hEUe9wYGPM91LppirAE+Xv6M= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.0 h1:Ce0PzdjQd/ojQ5AWPrYzubaKZ+qIWn/D/e3r+PpB/AU= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.0/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 h1:WPrdiImW8A7kmMZF95dVAybR3H/ItAfJXPdRJnwf/yg= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= diff --git a/tpgtools/go.mod b/tpgtools/go.mod index 007332b6ece4..a8dc228daf9e 100644 --- a/tpgtools/go.mod +++ b/tpgtools/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( bitbucket.org/creachadair/stringset v0.0.9 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/hashicorp/errwrap v1.0.0 github.com/hashicorp/hcl v1.0.0 diff --git a/tpgtools/go.sum b/tpgtools/go.sum index 0b76d27e475b..2f7696271146 100644 --- a/tpgtools/go.sum +++ b/tpgtools/go.sum @@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1 h1:3/A97+HDHSK35yPKsg7hEUe9wYGPM91LppirAE+Xv6M= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.20.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 h1:WPrdiImW8A7kmMZF95dVAybR3H/ItAfJXPdRJnwf/yg= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= From 0be2ef5d658eed1f2c2477dd433075d50036570d Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Thu, 15 Sep 2022 22:20:54 +0000 Subject: [PATCH 17/24] feat: adding test of creating trigger referencing channel --- ...ource_eventarc_trigger_channel_test.go.erb | 178 ++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 mmv1/third_party/terraform/tests/resource_eventarc_trigger_channel_test.go.erb diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_trigger_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_channel_test.go.erb new file mode 100644 index 000000000000..d80b90e6e29f --- /dev/null +++ b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_channel_test.go.erb @@ -0,0 +1,178 @@ +<% autogen_exception -%> +package google + +import ( + "context" + "fmt" + "strings" + "testing" + + dcl "github.com/GoogleCloudPlatform/declarative-resource-client-library/dcl" + <% if version == "ga" -%> + eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc" + <% else -%> + eventarc "github.com/GoogleCloudPlatform/declarative-resource-client-library/services/google/eventarc/beta" + <% end %> + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) + + +func TestAccEventarcTrigger_channel(t *testing.T) { + t.Parallel() + + region := getTestRegionFromEnv() + key1 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key1") + key2 := BootstrapKMSKeyWithPurposeInLocationAndName(t, "ENCRYPT_DECRYPT", region, "tf-bootstrap-key2") + + context := map[string]interface{}{ + "region": region, + "project_name": getTestProjectFromEnv(), + "service_account": getTestServiceAccountFromEnv(t), + "key_ring": GetResourceNameFromSelfLink(key1.KeyRing.Name), + "key1": GetResourceNameFromSelfLink(key1.CryptoKey.Name), + "key2": GetResourceNameFromSelfLink(key2.CryptoKey.Name), + "random_suffix": randString(t, 10), + } + + vcrTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckEventarcChannelTriggerDestroyProducer(t), + Steps: []resource.TestStep{ + { + Config: testAccEventarcTrigger_createTriggerWithChannelName(context), + }, + { + ResourceName: "google_eventarc_trigger.primary", + ImportState: true, + ImportStateVerify: true, + }, + }, + }) +} + +func testAccEventarcTrigger_createTriggerWithChannelName(context map[string]interface{}) string { + return Nprintf(` +data "google_project" "test_project" { + project_id = "%{project_name}" +} + +data "google_kms_key_ring" "test_key_ring" { + name = "%{key_ring}" + location = "us-central1" +} + +data "google_kms_crypto_key" "key1" { + name = "%{key1}" + key_ring = data.google_kms_key_ring.test_key_ring.id +} + + +resource "google_kms_crypto_key_iam_binding" "key1_binding" { + crypto_key_id = data.google_kms_crypto_key.key1.id + role = "roles/cloudkms.cryptoKeyEncrypterDecrypter" + + members = [ + "serviceAccount:service-${data.google_project.test_project.number}@gcp-sa-eventarc.iam.gserviceaccount.com", + ] +} + +resource "google_eventarc_channel" "test_channel" { + location = "%{region}" + name = "tf-test-channel%{random_suffix}" + project = data.google_project.test_project.project_id + crypto_key_name = data.google_kms_crypto_key.key1.id + third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" + depends_on = [google_kms_crypto_key_iam_binding.key1_binding] +} + +resource "google_cloud_run_service" "default" { + name = "tf-test-eventarc-service%{random_suffix}" + location = "%{region}" + + metadata { + namespace = "%{project_name}" + } + + template { + spec { + containers { + image = "gcr.io/cloudrun/hello" + ports { + container_port = 8080 + } + } + container_concurrency = 50 + timeout_seconds = 100 + } + } + + traffic { + percent = 100 + latest_revision = true + } +} + +resource "google_eventarc_trigger" "primary" { + name = "tf-test-trigger%{random_suffix}" + location = "%{region}" + matching_criteria { + attribute = "type" + value = "datadog.v1.alert" + } + destination { + cloud_run_service { + service = google_cloud_run_service.default.name + region = "%{region}" + } + } + service_account= "%{service_account}" + + channel = "projects/${data.google_project.test_project.project_id}/locations/%{region}/channels/${google_eventarc_channel.test_channel.name}" + + depends_on =[google_cloud_run_service.default,google_eventarc_channel.test_channel] +} + + +`, context) +} + +func testAccCheckEventarcChannelTriggerDestroyProducer(t *testing.T) func(s *terraform.State) error { + return func(s *terraform.State) error { + for name, rs := range s.RootModule().Resources { + if rs.Type != "rs.google_eventarc_trigger" { + continue + } + if strings.HasPrefix(name, "data.") { + continue + } + + config := googleProviderConfig(t) + + billingProject := "" + if config.BillingProject != "" { + billingProject = config.BillingProject + } + + obj := &eventarc.Trigger{ + Location: dcl.String(rs.Primary.Attributes["location"]), + Name: dcl.String(rs.Primary.Attributes["name"]), + Project: dcl.StringOrNil(rs.Primary.Attributes["project"]), + ServiceAccount: dcl.String(rs.Primary.Attributes["service_account"]), + CreateTime: dcl.StringOrNil(rs.Primary.Attributes["create_time"]), + Etag: dcl.StringOrNil(rs.Primary.Attributes["etag"]), + Uid: dcl.StringOrNil(rs.Primary.Attributes["uid"]), + UpdateTime: dcl.StringOrNil(rs.Primary.Attributes["update_time"]), + Channel: dcl.StringOrNil(rs.Primary.Attributes["channel"]), + } + + client := NewDCLEventarcClient(config, config.userAgent, billingProject, 0) + _, err := client.GetTrigger(context.Background(), obj) + if err == nil { + return fmt.Errorf("google_eventarc_trigger still exists %v", obj) + } + } + return nil + } +} From 0b72706a0dafe373e84da3043d087407904722e8 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 16 Sep 2022 20:47:17 +0000 Subject: [PATCH 18/24] fix: changed name of test --- ..._channel_test.go.erb => resource_eventarc_trigger_test.go.erb} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename mmv1/third_party/terraform/tests/{resource_eventarc_trigger_channel_test.go.erb => resource_eventarc_trigger_test.go.erb} (100%) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_trigger_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb similarity index 100% rename from mmv1/third_party/terraform/tests/resource_eventarc_trigger_channel_test.go.erb rename to mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb From 5117eee1b5df1353f8aad00302d99b8ba3b297b6 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 16 Sep 2022 20:57:04 +0000 Subject: [PATCH 19/24] nit: made spacing more consistent for trigger test --- .../terraform/tests/resource_eventarc_trigger_test.go.erb | 2 -- 1 file changed, 2 deletions(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb index d80b90e6e29f..a1a53f606a3a 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb @@ -133,8 +133,6 @@ resource "google_eventarc_trigger" "primary" { depends_on =[google_cloud_run_service.default,google_eventarc_channel.test_channel] } - - `, context) } From e24df51b04ac0cde242c4776a13b2280363c05b5 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 16 Sep 2022 20:59:54 +0000 Subject: [PATCH 20/24] fix: changed documentation in meta.yaml for channel --- tpgtools/overrides/eventarc/samples/channel/meta.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tpgtools/overrides/eventarc/samples/channel/meta.yaml b/tpgtools/overrides/eventarc/samples/channel/meta.yaml index e40f88831f15..ae5bc4975b88 100644 --- a/tpgtools/overrides/eventarc/samples/channel/meta.yaml +++ b/tpgtools/overrides/eventarc/samples/channel/meta.yaml @@ -1,7 +1,8 @@ # meta.yaml # # -# We are hiding the terraform template because the test's for an Eventarc Channel are handwritten in mmv1. However we want to -# generate the docs for a channel on the registry. We make tpgtools do this without it generating a test +# We are hiding the terraform template because the test's for an Eventarc Channel are handwritten in mmv1. We are handwriting the +# kms key and ring constraints to bootstrap those dependencies to avoid creating a whole new project for the test. +# However we want to generate the docs for a channel on the registry. We make tpgtools do this without it generating a test test_hide: - basic.tf.tmpl From 532d89f5b2fd4fb21622566e0b56616fc46bb4e0 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Fri, 16 Sep 2022 21:56:52 +0000 Subject: [PATCH 21/24] fix: ommiting project field --- .../terraform/tests/resource_eventarc_channel_test.go.erb | 3 --- .../terraform/tests/resource_eventarc_trigger_test.go.erb | 1 - 2 files changed, 4 deletions(-) diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb index e7c760cad023..9e7975d14f81 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_channel_test.go.erb @@ -93,7 +93,6 @@ data "google_project" "test_project" { resource "google_eventarc_channel" "primary" { location = "%{region}" name = "tf-test-name%{random_suffix}" - project = data.google_project.test_project.project_id third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" } `, context) @@ -128,7 +127,6 @@ resource "google_kms_crypto_key_iam_binding" "key1_binding" { resource "google_eventarc_channel" "primary" { location = "%{region}" name = "tf-test-name%{random_suffix}" - project = data.google_project.test_project.project_id crypto_key_name = data.google_kms_crypto_key.key1.id third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" depends_on = [google_kms_crypto_key_iam_binding.key1_binding] @@ -164,7 +162,6 @@ resource "google_kms_crypto_key_iam_binding" "key2_binding" { resource "google_eventarc_channel" "primary" { location = "%{region}" name = "tf-test-name%{random_suffix}" - project = data.google_project.test_project.project_id crypto_key_name= data.google_kms_crypto_key.key2.id third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" depends_on = [google_kms_crypto_key_iam_binding.key2_binding] diff --git a/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb index a1a53f606a3a..21656cbfc9ec 100644 --- a/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb +++ b/mmv1/third_party/terraform/tests/resource_eventarc_trigger_test.go.erb @@ -81,7 +81,6 @@ resource "google_kms_crypto_key_iam_binding" "key1_binding" { resource "google_eventarc_channel" "test_channel" { location = "%{region}" name = "tf-test-channel%{random_suffix}" - project = data.google_project.test_project.project_id crypto_key_name = data.google_kms_crypto_key.key1.id third_party_provider = "projects/${data.google_project.test_project.project_id}/locations/%{region}/providers/datadog" depends_on = [google_kms_crypto_key_iam_binding.key1_binding] From 5d20438d694f802a2d406433846b9302ba844a00 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Tue, 27 Sep 2022 17:17:20 +0000 Subject: [PATCH 22/24] nit: updating dcl version to v1.22.1 --- mmv1/third_party/terraform/go.mod.erb | 2 +- mmv1/third_party/terraform/go.sum | 2 ++ tpgtools/go.mod | 2 +- tpgtools/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mmv1/third_party/terraform/go.mod.erb b/mmv1/third_party/terraform/go.mod.erb index a18cd5b99135..e21ac599b905 100644 --- a/mmv1/third_party/terraform/go.mod.erb +++ b/mmv1/third_party/terraform/go.mod.erb @@ -5,7 +5,7 @@ go 1.18 require ( cloud.google.com/go/bigtable v1.16.0 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 github.com/apparentlymart/go-cidr v1.1.0 github.com/client9/misspell v0.3.4 github.com/davecgh/go-spew v1.1.1 diff --git a/mmv1/third_party/terraform/go.sum b/mmv1/third_party/terraform/go.sum index 8e9c10003542..f362129fd43d 100644 --- a/mmv1/third_party/terraform/go.sum +++ b/mmv1/third_party/terraform/go.sum @@ -1523,3 +1523,5 @@ github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.0 h1:Ce github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.0/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 h1:WPrdiImW8A7kmMZF95dVAybR3H/ItAfJXPdRJnwf/yg= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 h1:qnGy9ZZGDqTN2kWKJPfSlCz1yYrMj8GnBeSWBTygzVk= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= diff --git a/tpgtools/go.mod b/tpgtools/go.mod index a8dc228daf9e..b1319a3606de 100644 --- a/tpgtools/go.mod +++ b/tpgtools/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( bitbucket.org/creachadair/stringset v0.0.9 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/hashicorp/errwrap v1.0.0 github.com/hashicorp/hcl v1.0.0 diff --git a/tpgtools/go.sum b/tpgtools/go.sum index 2f7696271146..87a6b487ef1d 100644 --- a/tpgtools/go.sum +++ b/tpgtools/go.sum @@ -36,8 +36,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 h1:WPrdiImW8A7kmMZF95dVAybR3H/ItAfJXPdRJnwf/yg= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 h1:qnGy9ZZGDqTN2kWKJPfSlCz1yYrMj8GnBeSWBTygzVk= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= From 27e0d839b53a38a45d4dcf38a48de5c97d82f9ad Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Mon, 7 Nov 2022 21:57:00 +0000 Subject: [PATCH 23/24] fix: update dcl version to v1.26.2 --- mmv1/third_party/terraform/go.mod.erb | 2 +- mmv1/third_party/terraform/go.sum | 2 ++ tpgtools/go.mod | 2 +- tpgtools/go.sum | 8 ++------ 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/mmv1/third_party/terraform/go.mod.erb b/mmv1/third_party/terraform/go.mod.erb index e21ac599b905..d6795fd6a2b3 100644 --- a/mmv1/third_party/terraform/go.mod.erb +++ b/mmv1/third_party/terraform/go.mod.erb @@ -5,7 +5,7 @@ go 1.18 require ( cloud.google.com/go/bigtable v1.16.0 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.2 github.com/apparentlymart/go-cidr v1.1.0 github.com/client9/misspell v0.3.4 github.com/davecgh/go-spew v1.1.1 diff --git a/mmv1/third_party/terraform/go.sum b/mmv1/third_party/terraform/go.sum index f362129fd43d..a03617908882 100644 --- a/mmv1/third_party/terraform/go.sum +++ b/mmv1/third_party/terraform/go.sum @@ -1525,3 +1525,5 @@ github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1 h1:WP github.com/GoogleCloudPlatform/declarative-resource-client-library v1.21.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 h1:qnGy9ZZGDqTN2kWKJPfSlCz1yYrMj8GnBeSWBTygzVk= github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.2 h1:6JDxvIEYTCs13WmxRAPxFbeNvcQOxCGRiiSswLgZoVM= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.2/go.mod h1:pL2Qt5HT+x6xrTd806oMiM3awW6kNIXB/iiuClz6m6k= diff --git a/tpgtools/go.mod b/tpgtools/go.mod index b1319a3606de..bc7e030b8c98 100644 --- a/tpgtools/go.mod +++ b/tpgtools/go.mod @@ -4,7 +4,7 @@ go 1.18 require ( bitbucket.org/creachadair/stringset v0.0.9 - github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 + github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.2 github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b github.com/hashicorp/errwrap v1.0.0 github.com/hashicorp/hcl v1.0.0 diff --git a/tpgtools/go.sum b/tpgtools/go.sum index 87a6b487ef1d..0f3ec9848b28 100644 --- a/tpgtools/go.sum +++ b/tpgtools/go.sum @@ -1,4 +1,3 @@ -bitbucket.org/creachadair/stringset v0.0.8/go.mod h1:AgthVMyMxC/6FK1KBJ2ALdqkZObGN8hOetgpwXyMn34= bitbucket.org/creachadair/stringset v0.0.9 h1:L4vld9nzPt90UZNrXjNelTshD74ps4P5NGs3Iq6yN3o= bitbucket.org/creachadair/stringset v0.0.9/go.mod h1:t+4WcQ4+PXTa8aQdNKe40ZP6iwesoMFWAxPGd3UGjyY= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= @@ -36,8 +35,8 @@ cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1 h1:qnGy9ZZGDqTN2kWKJPfSlCz1yYrMj8GnBeSWBTygzVk= -github.com/GoogleCloudPlatform/declarative-resource-client-library v1.22.1/go.mod h1:i6Pmzp7aolLmJY86RaJ9wjqm/HFleMeN7Vl5uIWLwE8= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.2 h1:6JDxvIEYTCs13WmxRAPxFbeNvcQOxCGRiiSswLgZoVM= +github.com/GoogleCloudPlatform/declarative-resource-client-library v1.26.2/go.mod h1:pL2Qt5HT+x6xrTd806oMiM3awW6kNIXB/iiuClz6m6k= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= @@ -67,7 +66,6 @@ github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5P github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/creachadair/staticfile v0.1.2/go.mod h1:a3qySzCIXEprDGxk6tSxSI+dBBdLzqeBOMhZ+o2d3pM= github.com/creachadair/staticfile v0.1.3/go.mod h1:a3qySzCIXEprDGxk6tSxSI+dBBdLzqeBOMhZ+o2d3pM= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -127,7 +125,6 @@ github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cpy v0.0.0-20211218193943-a9c933c06932 h1:5/4TSDzpDnHQ8rKEEQBjRlYx77mHOvXu08oGchxej7o= @@ -227,7 +224,6 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.1 h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE= github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/nasa9084/go-openapi v0.0.0-20200604141640-2875b7376353 h1:B12KiVODig0ltyL7AOeO68ZKLrIWAus/SdlWvO7KcfA= github.com/nasa9084/go-openapi v0.0.0-20200604141640-2875b7376353/go.mod h1:Y+QYE2No9P7gTzq/clACcx4vZ34gemXUmfspIcRD6LY= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= From adf51127acf4de64b040fb6e83d6be2a4f3aed28 Mon Sep 17 00:00:00 2001 From: Avi Dave Date: Tue, 8 Nov 2022 00:13:51 +0000 Subject: [PATCH 24/24] fix: remove channel field --- tpgtools/overrides/eventarc/beta/trigger.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tpgtools/overrides/eventarc/beta/trigger.yaml b/tpgtools/overrides/eventarc/beta/trigger.yaml index c12b6698fff4..2b02fd09b9ce 100644 --- a/tpgtools/overrides/eventarc/beta/trigger.yaml +++ b/tpgtools/overrides/eventarc/beta/trigger.yaml @@ -11,5 +11,4 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -- type: EXCLUDE - field: channel +