From 21e9ba4541b2d58617c1bac7562a8ba3d77e4f90 Mon Sep 17 00:00:00 2001 From: The Magician Date: Tue, 3 Jan 2023 14:36:58 -0800 Subject: [PATCH] Handled async operation of Folder deletion (#7011) (#13377) Signed-off-by: Modular Magician Signed-off-by: Modular Magician --- .changelog/7011.txt | 3 +++ google/resource_google_folder.go | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .changelog/7011.txt 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 }