open-consul/sdk
Iryna Shustava 5eb8ee0cac
sdk: Use /v1/status/leader endpoint when starting a test server (#8192)
Switch from /v1/agent/self to /v1/status/leader when checking if the test server has come up successfully in the waitForAPI function.

Previously, the test server was relying (probably not intentionally) on the default value of the acl_enforce_version_8 in the TestConfig, which was false. So if you create a test server and enabled ACLs, they would not be enforced and the server would be able to come up pretty quickly because /v1/agent/self would return a 200 status pretty much as soon as the agent is running and most likely before leader election is finished.

Now that we have removed acl_enforce_version_8 property (equivalent to being true by default) if you've created a test server with ACLs enabled, it will need to wait for leader election and for ACLs to be initialized before it'll get a successful response from the /v1/agent/self.

Note: With this change, waitForAPI function no longer requires a 200 response status from the v1/status/leader endpoint. This is because in some tests, namely TestAPI_AgentLeave, we are only running clients, and this endpoint returns a 500 status.
2020-07-07 14:25:17 -07:00
..
freeport [BUGFIX] Fix race condition in freeport (#7567) 2020-04-01 13:14:33 -05:00
testutil sdk: Use /v1/status/leader endpoint when starting a test server (#8192) 2020-07-07 14:25:17 -07:00
.golangci.yml ci: Use golangci-lint for linting 2020-03-17 13:43:40 -04:00
go.mod Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
go.sum Allow users to configure either unstructured or JSON logging (#7130) 2020-01-28 17:50:41 -06:00
README.md Move internal/ to sdk/ (#5568) 2019-03-27 08:54:56 -04:00

Internal SDK

Please note that this folder, while public, is not meant for new consumers of these libraries; this should currently be considered an internal, not external, SDK. It is public due to existing needs from other HashiCorp software. The tags in this folder will stay at the 0.x.y level; accordingly users should expect that things can move around, disappear, or change API at any time.