From a411c32922affb0bd75879807d68d5399d4c4e61 Mon Sep 17 00:00:00 2001 From: The Magician Date: Mon, 26 Feb 2024 12:49:52 -0800 Subject: [PATCH] Retry delete network step while creating a google project. (#10046) (#17419) [upstream:7faaacc8f1d429d6d0d6317ba98e962bf9bd1ae4] Signed-off-by: Modular Magician --- .changelog/10046.txt | 3 +++ .../services/resourcemanager/resource_google_project.go | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changelog/10046.txt diff --git a/.changelog/10046.txt b/.changelog/10046.txt new file mode 100644 index 00000000000..2b6c232b656 --- /dev/null +++ b/.changelog/10046.txt @@ -0,0 +1,3 @@ +```release-note:bug +resourcemanager: added a retry to deleting the default network when `auto_create_network` is false in `google_project` +``` \ No newline at end of file diff --git a/google/services/resourcemanager/resource_google_project.go b/google/services/resourcemanager/resource_google_project.go index dd4ef711d57..f700ecd72c8 100644 --- a/google/services/resourcemanager/resource_google_project.go +++ b/google/services/resourcemanager/resource_google_project.go @@ -229,7 +229,13 @@ func resourceGoogleProjectCreate(d *schema.ResourceData, meta interface{}) error return errwrap.Wrapf("Error enabling the Compute Engine API required to delete the default network: {{err}} ", err) } - if err = forceDeleteComputeNetwork(d, config, project.ProjectId, "default"); err != nil { + err = forceDeleteComputeNetwork(d, config, project.ProjectId, "default") + // Retry if API is not yet enabled. + if err != nil && transport_tpg.IsGoogleApiErrorWithCode(err, 403) { + time.Sleep(10 * time.Second) + err = forceDeleteComputeNetwork(d, config, project.ProjectId, "default") + } + if err != nil { if transport_tpg.IsGoogleApiErrorWithCode(err, 404) { log.Printf("[DEBUG] Default network not found for project %q, no need to delete it", project.ProjectId) } else {