log.Printf("[DEBUG]: Retrieved policy for %s: %+v\n",updater.DescribeResource(),p)
varbinding*cloudresourcemanager.Binding
for_,b:=rangep.Bindings{
ifb.Role!=eMember.Role{
continue
}
binding=b
break
}
ifbinding==nil{
log.Printf("[DEBUG]: Binding for role %q does not exist in policy of %s, removing member %q from state.",eMember.Role,updater.DescribeResource(),eMember.Members[0])
d.SetId("")
returnnil
}
varmemberstring
for_,m:=rangebinding.Members{
ifm==eMember.Members[0]{
member=m
}
}
ifmember==""{
log.Printf("[DEBUG]: Member %q for binding for role %q does not exist in policy of %s, removing from state.",eMember.Members[0],eMember.Role,updater.DescribeResource())
log.Printf("[DEBUG]: Binding for role %q does not exist in policy of project %q, so member %q can't be on it.",member.Role,updater.GetResourceId(),member.Members[0])
returnnil
}
binding:=p.Bindings[bindingToRemove]
memberToRemove:=-1
forpos,m:=rangebinding.Members{
ifm!=member.Members[0]{
continue
}
memberToRemove=pos
break
}
ifmemberToRemove<0{
log.Printf("[DEBUG]: Member %q for binding for role %q does not exist in policy of project %q.",member.Members[0],member.Role,updater.GetResourceId())