@@ -375,6 +375,14 @@ func resourceDnsRecordSetCreate(d *schema.ResourceData, meta interface{}) error
375
375
chg .Deletions = deletions
376
376
}
377
377
378
+ // Mutex
379
+ lockName := fmt .Sprintf ("projects/%s/managedZones/%s/rrsets/%s/%s" , project , zone , name , rType )
380
+ if err != nil {
381
+ return err
382
+ }
383
+ transport_tpg .MutexStore .Lock (lockName )
384
+ defer transport_tpg .MutexStore .Unlock (lockName )
385
+
378
386
log .Printf ("[DEBUG] DNS Record create request: %#v" , chg )
379
387
chg , err = config .NewDnsClient (userAgent ).Changes .Create (project , zone , chg ).Do ()
380
388
if err != nil {
@@ -468,7 +476,9 @@ func resourceDnsRecordSetDelete(d *schema.ResourceData, meta interface{}) error
468
476
return err
469
477
}
470
478
479
+ name := d .Get ("name" ).(string )
471
480
zone := d .Get ("managed_zone" ).(string )
481
+ rType := d .Get ("type" ).(string )
472
482
473
483
// NS and SOA records on the root zone must always have a value,
474
484
// so we short-circuit delete this allows terraform delete to work,
@@ -511,6 +521,14 @@ func resourceDnsRecordSetDelete(d *schema.ResourceData, meta interface{}) error
511
521
},
512
522
}
513
523
524
+ // Mutex
525
+ lockName := fmt .Sprintf ("projects/%s/managedZones/%s/rrsets/%s/%s" , project , zone , name , rType )
526
+ if err != nil {
527
+ return err
528
+ }
529
+ transport_tpg .MutexStore .Lock (lockName )
530
+ defer transport_tpg .MutexStore .Unlock (lockName )
531
+
514
532
log .Printf ("[DEBUG] DNS Record delete request: %#v" , chg )
515
533
chg , err = config .NewDnsClient (userAgent ).Changes .Create (project , zone , chg ).Do ()
516
534
if err != nil {
0 commit comments