Skip to content

Commit 26513ea

Browse files
Fixes issue #21482 related to google_eventarc_trigger name with Firestore sources (#13137) (#9383)
[upstream:74b689025ed28c907fc281b935bb123422326cb2] Signed-off-by: Modular Magician <[email protected]>
1 parent 851fb63 commit 26513ea

File tree

3 files changed

+99
-1
lines changed

3 files changed

+99
-1
lines changed

.changelog/13137.txt

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
eventarc: fixed an issue where `google_eventarc_trigger` creation failed due to the region could not be parsed from the trigger's name
3+
```

google-beta/services/eventarc/resource_eventarc_trigger.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1015,7 +1015,7 @@ func flattenEventarcTriggerEffectiveLabels(v interface{}, d *schema.ResourceData
10151015
}
10161016

10171017
func expandEventarcTriggerName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {
1018-
return v, nil
1018+
return expandToRegionalLongForm("projects/%s/locations/%s/triggers/%s", v, d, config)
10191019
}
10201020

10211021
func expandEventarcTriggerMatchingCriteria(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) {

google-beta/services/eventarc/resource_eventarc_trigger_generated_test.go

+95
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,101 @@ resource "google_cloud_run_service" "default" {
411411
`, context)
412412
}
413413

414+
func TestAccEventarcTrigger_eventarcTriggerWithFirestoreSourceExample(t *testing.T) {
415+
t.Parallel()
416+
417+
context := map[string]interface{}{
418+
"project_id": envvar.GetTestProjectFromEnv(),
419+
"random_suffix": acctest.RandString(t, 10),
420+
}
421+
422+
acctest.VcrTest(t, resource.TestCase{
423+
PreCheck: func() { acctest.AccTestPreCheck(t) },
424+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories(t),
425+
CheckDestroy: testAccCheckEventarcTriggerDestroyProducer(t),
426+
Steps: []resource.TestStep{
427+
{
428+
Config: testAccEventarcTrigger_eventarcTriggerWithFirestoreSourceExample(context),
429+
},
430+
{
431+
ResourceName: "google_eventarc_trigger.primary",
432+
ImportState: true,
433+
ImportStateVerify: true,
434+
ImportStateVerifyIgnore: []string{"labels", "location", "terraform_labels"},
435+
},
436+
},
437+
})
438+
}
439+
440+
func testAccEventarcTrigger_eventarcTriggerWithFirestoreSourceExample(context map[string]interface{}) string {
441+
return acctest.Nprintf(`
442+
resource "google_firestore_database" "database" {
443+
project = "%{project_id}"
444+
name = "tf-test-some-database%{random_suffix}"
445+
location_id = "us-central1"
446+
type = "FIRESTORE_NATIVE"
447+
448+
delete_protection_state = "DELETE_PROTECTION_DISABLED"
449+
deletion_policy = "DELETE"
450+
}
451+
452+
resource "google_eventarc_trigger" "primary" {
453+
name = "tf-test-some-trigger%{random_suffix}"
454+
location = "us-central1"
455+
matching_criteria {
456+
attribute = "type"
457+
value = "google.cloud.firestore.document.v1.written"
458+
}
459+
matching_criteria {
460+
attribute = "database"
461+
value = google_firestore_database.database.name
462+
}
463+
destination {
464+
cloud_run_service {
465+
service = google_cloud_run_service.default.name
466+
region = "us-central1"
467+
}
468+
}
469+
event_data_content_type = "application/protobuf"
470+
service_account = google_service_account.trigger_service_account.email
471+
depends_on = [google_project_iam_member.event_receiver]
472+
}
473+
474+
resource "google_service_account" "trigger_service_account" {
475+
account_id = "tf-test-trigger-sa%{random_suffix}"
476+
}
477+
478+
resource "google_project_iam_member" "event_receiver" {
479+
project = google_service_account.trigger_service_account.project
480+
role = "roles/eventarc.eventReceiver"
481+
member = "serviceAccount:${google_service_account.trigger_service_account.email}"
482+
}
483+
484+
resource "google_cloud_run_service" "default" {
485+
name = "tf-test-some-service%{random_suffix}"
486+
location = "us-central1"
487+
488+
template {
489+
spec {
490+
containers {
491+
image = "gcr.io/cloudrun/hello"
492+
ports {
493+
container_port = 8080
494+
}
495+
}
496+
container_concurrency = 50
497+
timeout_seconds = 100
498+
}
499+
}
500+
501+
traffic {
502+
percent = 100
503+
latest_revision = true
504+
}
505+
}
506+
`, context)
507+
}
508+
414509
func testAccCheckEventarcTriggerDestroyProducer(t *testing.T) func(s *terraform.State) error {
415510
return func(s *terraform.State) error {
416511
for name, rs := range s.RootModule().Resources {

0 commit comments

Comments
 (0)