@@ -658,6 +658,49 @@ func TestAccDataflowFlexTemplateJob_enableStreamingEngine(t *testing.T) {
658
658
})
659
659
}
660
660
661
+ func TestAccDataflowFlexTemplateJob_workerPoolsFallback (t * testing.T ) {
662
+ acctest .SkipIfVcr (t )
663
+ t .Parallel ()
664
+
665
+ context1 := map [string ]interface {}{
666
+ "random_id" : acctest .RandString (t , 10 ),
667
+ "max_workers" : 2 ,
668
+ "num_workers" : 1 ,
669
+ "machine_type" : `"n1-standard-1"` ,
670
+ }
671
+
672
+ context2 := map [string ]interface {}{
673
+ "random_id" : context1 ["random_id" ],
674
+ "max_workers" : 3 ,
675
+ "num_workers" : 2 ,
676
+ "machine_type" : `"n1-standard-1"` ,
677
+ }
678
+
679
+ resource .Test (t , resource.TestCase {
680
+ PreCheck : func () { acctest .AccTestPreCheck (t ) },
681
+ ProtoV5ProviderFactories : acctest .ProtoV5ProviderFactories (t ),
682
+ CheckDestroy : testAccCheckDataflowJobDestroyProducer (t ),
683
+ Steps : []resource.TestStep {
684
+ {
685
+ Config : testAccDataflowFlexTemplateJob_workerPoolFallback (context1 ),
686
+ Check : resource .ComposeTestCheckFunc (
687
+ testAccDataflowFlexJobExists (t , "google_dataflow_flex_template_job.flex_job" , false ),
688
+ resource .TestCheckResourceAttr ("google_dataflow_flex_template_job.flex_job" , "num_workers" , "1" ),
689
+ resource .TestCheckResourceAttr ("google_dataflow_flex_template_job.flex_job" , "max_workers" , "2" ),
690
+ ),
691
+ },
692
+ {
693
+ Config : testAccDataflowFlexTemplateJob_workerPoolFallback (context2 ),
694
+ Check : resource .ComposeTestCheckFunc (
695
+ testAccDataflowFlexJobExists (t , "google_dataflow_flex_template_job.flex_job" , true ),
696
+ resource .TestCheckResourceAttr ("google_dataflow_flex_template_job.flex_job" , "num_workers" , "2" ),
697
+ resource .TestCheckResourceAttr ("google_dataflow_flex_template_job.flex_job" , "max_workers" , "3" ),
698
+ ),
699
+ },
700
+ },
701
+ })
702
+ }
703
+
661
704
func testAccDataflowFlexTemplateJobHasNetwork (t * testing.T , res , expected string , wait bool ) resource.TestCheckFunc {
662
705
return func (s * terraform.State ) error {
663
706
instanceTmpl , err := testAccDataflowFlexTemplateGetGeneratedInstanceTemplate (t , s , res )
@@ -2057,3 +2100,70 @@ resource "google_dataflow_flex_template_job" "flex_job" {
2057
2100
}
2058
2101
` , topicName , bucket , job )
2059
2102
}
2103
+
2104
+ func testAccDataflowFlexTemplateJob_workerPoolFallback (context map [string ]interface {}) string {
2105
+ return acctest .Nprintf (`
2106
+ resource "google_pubsub_topic" "example" {
2107
+ name = "tf-test-topic-%{random_id}"
2108
+ }
2109
+
2110
+ data "google_storage_bucket_object" "flex_template" {
2111
+ name = "latest/flex/Streaming_Data_Generator"
2112
+ bucket = "dataflow-templates"
2113
+ }
2114
+
2115
+ resource "google_storage_bucket" "bucket" {
2116
+ name = "tf-test-bucket-%{random_id}"
2117
+ location = "US-CENTRAL1"
2118
+ force_destroy = true
2119
+ uniform_bucket_level_access = true
2120
+ }
2121
+
2122
+ resource "google_storage_bucket_object" "schema" {
2123
+ name = "schema-%{random_id}.json"
2124
+ bucket = google_storage_bucket.bucket.name
2125
+ content = <<EOF
2126
+ {
2127
+ "eventId": "{{uuid()}}",
2128
+ "eventTimestamp": {{timestamp()}},
2129
+ "ipv4": "{{ipv4()}}",
2130
+ "ipv6": "{{ipv6()}}",
2131
+ "country": "{{country()}}",
2132
+ "username": "{{username()}}",
2133
+ "quest": "{{random("A Break In the Ice", "Ghosts of Perdition", "Survive the Low Road")}}",
2134
+ "score": {{integer(100, 10000)}},
2135
+ "completed": {{bool()}}
2136
+ }
2137
+ EOF
2138
+ }
2139
+
2140
+ resource "google_compute_network" "test-network" {
2141
+ name = "tf-test-network-%{random_id}"
2142
+ auto_create_subnetworks = false
2143
+ }
2144
+
2145
+ resource "google_compute_subnetwork" "test-subnetwork" {
2146
+ name = "tf-test-subnetwork-%{random_id}"
2147
+ ip_cidr_range = "192.168.0.0/24"
2148
+ region = "us-central1"
2149
+ network = google_compute_network.test-network.id
2150
+ }
2151
+
2152
+ resource "google_dataflow_flex_template_job" "flex_job" {
2153
+ name = "tf-test-flex-job-%{random_id}"
2154
+ container_spec_gcs_path = "gs://${data.google_storage_bucket_object.flex_template.bucket}/${data.google_storage_bucket_object.flex_template.name}"
2155
+ on_delete = "cancel"
2156
+ parameters = {
2157
+ schemaLocation = "gs://${google_storage_bucket_object.schema.bucket}/schema-%{random_id}.json"
2158
+ qps = "1"
2159
+ topic = google_pubsub_topic.example.id
2160
+ }
2161
+
2162
+ max_workers = %{max_workers}
2163
+ num_workers = %{num_workers}
2164
+ machine_type = %{machine_type}
2165
+ network = google_compute_network.test-network.name
2166
+ subnetwork = google_compute_subnetwork.test-subnetwork.self_link
2167
+ }
2168
+ ` , context )
2169
+ }
0 commit comments