From d3426d5bc63beb57ce743292ac34d5a800ea8fee Mon Sep 17 00:00:00 2001 From: Paddy Date: Thu, 27 Jul 2017 14:29:25 -0700 Subject: [PATCH] Don't set IDs in RMW loops. We don't need to set the ID to "" in read-modify-write helpers, because once they're done, we read anyways to update state based on the changes. And that read checks if the binding/member still exists, and does the SetId("") if it doesn't. This way, we stick with state only getting set based on the API state, not by what we think the state will be. --- google/resource_google_project_iam_binding.go | 3 +-- google/resource_google_project_iam_member.go | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/google/resource_google_project_iam_binding.go b/google/resource_google_project_iam_binding.go index 4e3afa00..c1751be3 100644 --- a/google/resource_google_project_iam_binding.go +++ b/google/resource_google_project_iam_binding.go @@ -155,8 +155,7 @@ func resourceGoogleProjectIamBindingDelete(d *schema.ResourceData, meta interfac break } if toRemove < 0 { - log.Printf("[DEBUG]: Policy bindings for project %q did not include a binding for role %q, no need to delete", pid, binding.Role) - d.SetId("") + log.Printf("[DEBUG]: Policy bindings for project %q did not include a binding for role %q", pid, binding.Role) return nil } diff --git a/google/resource_google_project_iam_member.go b/google/resource_google_project_iam_member.go index 8fa2f24b..b95d9a28 100644 --- a/google/resource_google_project_iam_member.go +++ b/google/resource_google_project_iam_member.go @@ -146,6 +146,7 @@ func resourceGoogleProjectIamMemberDelete(d *schema.ResourceData, meta interface break } if bindingToRemove < 0 { + log.Printf("[DEBUG]: Binding for role %q does not exist in policy of project %q, so member %q can't be on it.", eMember.Role, pid, eMember.Members[0]) return nil } binding := p.Bindings[bindingToRemove] @@ -158,8 +159,7 @@ func resourceGoogleProjectIamMemberDelete(d *schema.ResourceData, meta interface break } if memberToRemove < 0 { - log.Printf("[DEBUG]: Member %q for binding for role %q does not exist in policy of project %q, removing from state.", member.Members[0], member.Role, pid) - d.SetId("") + log.Printf("[DEBUG]: Member %q for binding for role %q does not exist in policy of project %q.", member.Members[0], member.Role, pid) return nil } binding.Members = append(binding.Members[:memberToRemove], binding.Members[memberToRemove+1:]...)