diff --git a/.changelog/7011.txt b/.changelog/7011.txt new file mode 100644 index 00000000000..64474725a27 --- /dev/null +++ b/.changelog/7011.txt @@ -0,0 +1,3 @@ +```release-note:bug +cloudplatform: handled async operation for `google_folder` deletion +``` diff --git a/google/resource_google_folder.go b/google/resource_google_folder.go index 6d48549c473..20024428ec1 100644 --- a/google/resource_google_folder.go +++ b/google/resource_google_folder.go @@ -215,13 +215,26 @@ func resourceGoogleFolderDelete(d *schema.ResourceData, meta interface{}) error } displayName := d.Get("display_name").(string) + var op *resourceManagerV3.Operation err = retryTimeDuration(func() error { - _, reqErr := config.NewResourceManagerV3Client(userAgent).Folders.Delete(d.Id()).Do() + var reqErr error + op, reqErr = config.NewResourceManagerV3Client(userAgent).Folders.Delete(d.Id()).Do() return reqErr }, d.Timeout(schema.TimeoutDelete)) if err != nil { return fmt.Errorf("Error deleting folder '%s': %s", displayName, err) } + + opAsMap, err := ConvertToMap(op) + if err != nil { + return err + } + + err = resourceManagerOperationWaitTime(config, opAsMap, "deleting folder", userAgent, d.Timeout(schema.TimeoutDelete)) + if err != nil { + return fmt.Errorf("Error deleting folder '%s': %s", displayName, err) + } + return nil }