@@ -222,6 +222,45 @@ func TestAccComputeRegionBackendService_withBackendAndIAP(t *testing.T) {
222
222
})
223
223
}
224
224
225
+ func TestAccComputeRegionBackendService_UDPFailOverPolicyUpdate (t * testing.T ) {
226
+ t .Parallel ()
227
+
228
+ serviceName := fmt .Sprintf ("tf-test-%s" , randString (t , 10 ))
229
+ checkName := fmt .Sprintf ("tf-test-%s" , randString (t , 10 ))
230
+
231
+ vcrTest (t , resource.TestCase {
232
+ PreCheck : func () { testAccPreCheck (t ) },
233
+ Providers : testAccProviders ,
234
+ CheckDestroy : testAccCheckComputeRegionBackendServiceDestroyProducer (t ),
235
+ Steps : []resource.TestStep {
236
+ {
237
+ Config : testAccComputeRegionBackendService_UDPFailOverPolicyHasDrain (serviceName , "TCP" , "true" , checkName ),
238
+ },
239
+ {
240
+ ResourceName : "google_compute_region_backend_service.foobar" ,
241
+ ImportState : true ,
242
+ ImportStateVerify : true ,
243
+ },
244
+ {
245
+ Config : testAccComputeRegionBackendService_UDPFailOverPolicyHasDrain (serviceName , "TCP" , "false" , checkName ),
246
+ },
247
+ {
248
+ ResourceName : "google_compute_region_backend_service.foobar" ,
249
+ ImportState : true ,
250
+ ImportStateVerify : true ,
251
+ },
252
+ {
253
+ Config : testAccComputeRegionBackendService_UDPFailOverPolicy (serviceName , "UDP" , "false" , checkName ),
254
+ },
255
+ {
256
+ ResourceName : "google_compute_region_backend_service.foobar" ,
257
+ ImportState : true ,
258
+ ImportStateVerify : true ,
259
+ },
260
+ },
261
+ })
262
+ }
263
+
225
264
func testAccComputeRegionBackendService_ilbBasic (serviceName , checkName string ) string {
226
265
return fmt .Sprintf (`
227
266
resource "google_compute_region_backend_service" "foobar" {
@@ -283,6 +322,59 @@ resource "google_compute_health_check" "health_check" {
283
322
` , serviceName , checkName )
284
323
}
285
324
325
+ func testAccComputeRegionBackendService_UDPFailOverPolicy (serviceName , protocol , failover , checkName string ) string {
326
+ return fmt .Sprintf (`
327
+ resource "google_compute_region_backend_service" "foobar" {
328
+ name = "%s"
329
+ health_checks = [google_compute_health_check.zero.self_link]
330
+ region = "us-central1"
331
+
332
+ protocol = "%s"
333
+ failover_policy {
334
+ # Disable connection drain on failover cannot be set when the protocol is UDP
335
+ drop_traffic_if_unhealthy = "%s"
336
+ }
337
+ }
338
+
339
+ resource "google_compute_health_check" "zero" {
340
+ name = "%s"
341
+ check_interval_sec = 1
342
+ timeout_sec = 1
343
+
344
+ tcp_health_check {
345
+ port = "80"
346
+ }
347
+ }
348
+ ` , serviceName , protocol , failover , checkName )
349
+ }
350
+
351
+ func testAccComputeRegionBackendService_UDPFailOverPolicyHasDrain (serviceName , protocol , failover , checkName string ) string {
352
+ return fmt .Sprintf (`
353
+ resource "google_compute_region_backend_service" "foobar" {
354
+ name = "%s"
355
+ health_checks = [google_compute_health_check.zero.self_link]
356
+ region = "us-central1"
357
+
358
+ protocol = "%s"
359
+ failover_policy {
360
+ # Disable connection drain on failover cannot be set when the protocol is UDP
361
+ drop_traffic_if_unhealthy = "%s"
362
+ disable_connection_drain_on_failover = "%s"
363
+ }
364
+ }
365
+
366
+ resource "google_compute_health_check" "zero" {
367
+ name = "%s"
368
+ check_interval_sec = 1
369
+ timeout_sec = 1
370
+
371
+ tcp_health_check {
372
+ port = "80"
373
+ }
374
+ }
375
+ ` , serviceName , protocol , failover , failover , checkName )
376
+ }
377
+
286
378
func testAccComputeRegionBackendService_basic (serviceName , checkName string ) string {
287
379
return fmt .Sprintf (`
288
380
resource "google_compute_region_backend_service" "foobar" {
0 commit comments