From c2bccb9d0cfca22bbf26d9132ba4b2440572c833 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 8a25b6e21907..ef3bf3fcc3d5 100644 --- a/third_party/terraform/resources/resource_google_project.go +++ b/third_party/terraform/resources/resource_google_project.go @@ -263,7 +263,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