From a61b33bbf8fe1da558dba504cc551fb50b220950 Mon Sep 17 00:00:00 2001 From: Paddy Carver Date: Tue, 30 Jul 2019 22:41:15 -0700 Subject: [PATCH] Catch 404s when deleting default networks. As seen in terraform-providers/terraform-provider-google#3582, it is now possible to set an organization policy that removes the default network from a project when it's created. This means it's now possible that Terraform's attempt to delete that default network will encounter an error saying the network is not found. Because what Terraform wanted was achieved, even if not by Terraform, we shouldn't raise that error, we should ignore it. --- third_party/terraform/resources/resource_google_project.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/third_party/terraform/resources/resource_google_project.go b/third_party/terraform/resources/resource_google_project.go index bd70cf43baa1..7ef8bc854ee5 100644 --- a/third_party/terraform/resources/resource_google_project.go +++ b/third_party/terraform/resources/resource_google_project.go @@ -274,7 +274,11 @@ func resourceGoogleProjectCreate(d *schema.ResourceData, meta interface{}) error } if err = forceDeleteComputeNetwork(project.ProjectId, "default", config); err != nil { - return fmt.Errorf("Error deleting default network in project %s: %s", project.ProjectId, err) + if isGoogleApiErrorWithCode(err, 404) { + log.Printf("[DEBUG] Default network not found for project %q, no need to delete it", project.ProjectId) + } else { + return fmt.Errorf("Error deleting default network in project %s: %s", project.ProjectId, err) + } } } return nil