@@ -685,41 +685,32 @@ resource "google_pubsub_subscription" "foo" {
685685func testAccPubsubSubscriptionBigQuery_basic (dataset , table , topic , subscription string , useTableSchema bool , serviceAccountId string ) string {
686686 serviceAccountEmailField := ""
687687 serviceAccountResource := ""
688+ tfDependencies := ""
688689 if serviceAccountId != "" {
689690 serviceAccountResource = fmt .Sprintf (`
690691resource "google_service_account" "bq_write_service_account" {
691692 account_id = "%s"
692693 display_name = "BQ Write Service Account"
693694}
694695
695- resource "google_project_iam_member" "viewer " {
696+ resource "google_project_iam_member" "bigquery_metadata_viewer " {
696697 project = data.google_project.project.project_id
697698 role = "roles/bigquery.metadataViewer"
698699 member = "serviceAccount:${google_service_account.bq_write_service_account.email}"
699700}
700701
701- resource "google_project_iam_member" "editor " {
702+ resource "google_project_iam_member" "bigquery_data_editor " {
702703 project = data.google_project.project.project_id
703704 role = "roles/bigquery.dataEditor"
704705 member = "serviceAccount:${google_service_account.bq_write_service_account.email}"
705706}` , serviceAccountId )
706707 serviceAccountEmailField = "service_account_email = google_service_account.bq_write_service_account.email"
708+ tfDependencies = ` google_project_iam_member.bigquery_metadata_viewer,
709+ google_project_iam_member.bigquery_data_editor,
710+ time_sleep.wait_30_seconds,`
707711 } else {
708- serviceAccountResource = fmt .Sprintf (`
709- resource "google_project_iam_member" "viewer" {
710- project = data.google_project.project.project_id
711- role = "roles/bigquery.metadataViewer"
712- member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-pubsub.iam.gserviceaccount.com"
713- }
714-
715- resource "google_project_iam_member" "editor" {
716- project = data.google_project.project.project_id
717- role = "roles/bigquery.dataEditor"
718- member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-pubsub.iam.gserviceaccount.com"
719- }
720- ` )
712+ tfDependencies = " time_sleep.wait_30_seconds,"
721713 }
722-
723714 return fmt .Sprintf (`
724715data "google_project" "project" {}
725716
@@ -765,12 +756,10 @@ resource "google_pubsub_subscription" "foo" {
765756 }
766757
767758 depends_on = [
768- google_project_iam_member.viewer,
769- google_project_iam_member.editor,
770- time_sleep.wait_30_seconds,
759+ %s
771760 ]
772761}
773- ` , serviceAccountResource , dataset , table , topic , subscription , useTableSchema , serviceAccountEmailField )
762+ ` , serviceAccountResource , dataset , table , topic , subscription , useTableSchema , serviceAccountEmailField , tfDependencies )
774763}
775764
776765func testAccPubsubSubscriptionCloudStorage_basic (bucket , topic , subscription , filenamePrefix , filenameSuffix , filenameDatetimeFormat string , maxBytes int , maxDuration string , maxMessages int , serviceAccountId , outputFormat string ) string {
0 commit comments