Commit Graph

13 Commits

Author SHA1 Message Date
Paddy
d3426d5bc6 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.
2017-07-27 14:29:25 -07:00
Paddy
ac5df40896 Return a type that was needed, rename a test function.
Tests need to have unique names. Whoooops.

Also, the Elem property accepts an interface I guess, which means we
actually need the struct type repetition there.
2017-07-27 14:11:52 -07:00
Paddy
78545359bd Add logging statements, update : to / in IDs.
Update member IDs to use / instead of :.

Make sure we're logging any time we remove something from state.
2017-07-27 14:01:47 -07:00
Paddy
f94c3872af Switch to / as separator.
Switch to using / as a separator for IDs, instead of :.
2017-07-27 13:50:31 -07:00
Paddy
199ff5d1f1 Excise unnecessary type declarations.
Some struct types can be inferred instead of being repeated, so let's
take advantage of that.
2017-07-27 13:39:23 -07:00
Paddy
5282ad7b12 Use string slice conversion helper. 2017-07-25 11:52:38 -07:00
Paddy
729e9fc501 Create an iam policy read/modify/write helper.
We were repeating that logic a lot, so this helper just reads a policy,
calls the passed modify function on the policy, then writes the policy
back and takes care of the optimistic concurrency logic for the caller.
So now all the caller has to do is the unique part, which is the modify
function.
2017-07-25 11:43:49 -07:00
Paddy
9c1c0bbc52 Just remove deleted bindings not present in the API.
We can just set the ID of bindings that are scheduled to be deleted but
don't exist in the API, we don't need an entire separate read request.
2017-07-25 11:12:15 -07:00
Paddy
d3f901bfc3 Refactor binding update loop for clarity.
Rewrite the structure of our if statement to make the conditions under
which each portion executes a bit more clear.
2017-07-25 11:08:34 -07:00
Paddy
a84b22dda2 Fix vet errors.
Add the missing parameter to Errorf statements.
2017-07-03 20:53:32 -07:00
Paddy
65a4a36362 Remove ID when binding isn't found.
It shouldn't be an error, we should just remove that binding from state.
2017-07-03 20:50:25 -07:00
Paddy
11abe2447c Fix reads, make ForceNew.
Changing the role is ForceNew, because the role is part of the ID.

Make reads go through to the Binding functions, not the Policy
functions. That's embarrassing.
2017-07-03 19:36:55 -07:00
Paddy
8e704876bc Add google_project_iam_binding resource.
Add a resource that manages just a single binding within a Google
project's IAM Policy.

Note that this resource should not be used when
google_project_iam_policy is used, or they will fight over which is
correct.

This also required wrapping the error returned from setProjectIamPolicy,
as we need to test to see if it's a 409 error and retry, which can't be
done if we just use fmt.Errorf.
2017-07-03 19:01:08 -07:00