From 9d7197049d24f825b631cc6085d1766621a7ba38 Mon Sep 17 00:00:00 2001 From: Zhenhua Li Date: Tue, 20 Dec 2022 11:34:55 -0800 Subject: [PATCH] Handled async operation of Folder deletion --- .../terraform/resources/resource_google_folder.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/mmv1/third_party/terraform/resources/resource_google_folder.go b/mmv1/third_party/terraform/resources/resource_google_folder.go index 6d48549c473f..20024428ec13 100644 --- a/mmv1/third_party/terraform/resources/resource_google_folder.go +++ b/mmv1/third_party/terraform/resources/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 }