James Bardin
82eba5801d
Test losing and reacquiring a consul lock
2017-05-30 14:38:33 -04:00
James Bardin
3df48bfc27
relock consul when lock is lost
...
Consul locks are based on liveness, and may be lost due timeouts,
network issued, etc. If the client determines the lock was lost, attempt
to reacquire the lock immediately.
The client was also not using the `lock` config option. Disable locks if
that is not set.
2017-05-30 14:38:33 -04:00
James Bardin
e8330b6f53
use CAS for consul state Put
2017-05-30 14:38:32 -04:00
James Bardin
5621d97925
cleanup consul lock entries
...
This matches the consul cli behavior, where locks are cleaned up after
use.
Return an error from re-locking the state. This isn't required by the
Locker interface, but it's an added sanity check for state operations.
What was incorrect here was returning an empty ID and error, which would
indicate that Lock/Unlock isn't supported.
2017-04-06 14:19:55 -04:00
James Bardin
75458a182d
remove extra state.Locker assertions
...
All states are lockers, so get rid of extra asertions.
2017-04-01 17:01:45 -04:00
James Bardin
4980fa20e7
move s3 config from client to backend
...
The RemoteClient needs to be configured for the named state, so move the
general config to the backend.
Rename some fields for consistency.
2017-03-22 15:52:55 -04:00
Mitchell Hashimoto
0cd15176ff
backend/consul: rebase and modify gzip test
2017-03-14 17:59:54 -07:00
Mitchell Hashimoto
1daff7a826
backend/consul: support "lock" option to disable locking
...
This adds a "lock" config (default true) to allow users to optionally
disable state locking with Consul. This is necessary if the token given
doesn't have session permission and is necessary for backwards
compatibility.
2017-03-14 17:59:10 -07:00
James Bardin
08d2b44ada
add gzip to consul backend tests
2017-03-14 15:41:00 -04:00
James Bardin
1527eae6b7
Merge pull request #8748 from christoe/christoe/8491-gzip-consul-remote-state
...
state/remote: Add gzip support to consul remote state (#8491 )
2017-03-14 15:27:46 -04:00
James Bardin
86f711f6fc
Make consul backend tests opt-in
...
This way we don't require contributers to have consul installed to run
make test.
2017-03-14 14:44:03 -04:00
James Bardin
fa7743b627
quiet the consul server during backend tests
...
Don't display logs unless using `-v`
2017-03-14 10:49:38 -04:00
James Bardin
90055c6ae2
convert the consul backend to use consul/testutil
...
Start up our own consul server for unit tests.
2017-03-13 18:25:58 -04:00
Christoffer Kylvåg
abfa35db7c
backend/remote-state/consul: Make gzip compression configurable ( #8491 )
2017-03-13 08:17:33 +01:00
Christoffer Kylvåg
e098c7c24a
backend/remote-state/consul: Add gzip support to consul backend client ( #8491 )
2017-03-09 08:00:19 +01:00
Mitchell Hashimoto
35afb7bc86
backend/consul: some comments
2017-03-01 23:01:28 -08:00
Mitchell Hashimoto
b842fd0c27
backend/consul: support named states
2017-03-01 22:58:51 -08:00
Mitchell Hashimoto
3db55cf747
backend/consul: build your own backend
2017-03-01 22:19:36 -08:00
Mitchell Hashimoto
549d525487
Merge pull request #12320 from hashicorp/b-legacy-state
...
command: fix loading legacy remote state + migration guide
2017-03-01 12:39:17 -08:00
Mitchell Hashimoto
6ea0dc0964
backend/consul: make address have a default to prevent input
2017-02-28 19:29:05 -08:00
James Bardin
f866bb545c
update remote-state/consul
2017-02-28 16:35:46 -05:00
Mitchell Hashimoto
efe754183b
state/remote: export ClientLocker, test for implementation
...
This adds unit tests (that will fail at compile time) if various structs
don't implement the right interfaces for locking
2017-02-15 14:20:59 -08:00
James Bardin
ec00564be6
Clean up LockInfo and LockError and use them
...
Gove LockInfo a Marshal method for easy serialization, and a String
method for more readable output.
Have the state.Locker implementations use LockError when possible to
return LockInfo and an error.
2017-02-15 14:44:43 -05:00
James Bardin
67bbebce08
Have consul state reutrn the lock ID
...
The lock ID isn't used because the lock is tied to the client, but
return the lock ID to match the behavior of other locks.
2017-02-15 14:44:43 -05:00
James Bardin
cd233fef6a
make consul client pass state.Locker tests
2017-02-15 14:41:55 -05:00
James Bardin
80fab23e04
Don't test consul using demo.consul.io
...
We shoudn't require an external service for unit test.
TODO: create some proper acceptance tests for consul
2017-02-08 11:34:31 -05:00
James Bardin
14d965722e
Use single state.LockInfo struct
...
Remove redundant structures
2017-02-08 11:34:31 -05:00
James Bardin
9b76f6e138
Move TestRemoteLocks to state/remote
...
This was legacy remote state client and backends can use this test
function without an import cycle.
2017-02-08 11:25:52 -05:00
James Bardin
54cac349a3
Add state locking to consul backend
...
Use consul locks to implement state locking. The lock path is state path
+ "/.lock" which matches the consul cli default for locks. Lockinfo is
stored at path + "/.lockinfo".
2017-02-08 11:25:52 -05:00
Mitchell Hashimoto
1f5d425428
backend/remote-state
...
This allows migration of the remote state implementations to a richer
experience including input asking.
2017-01-26 14:33:49 -08:00