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
575e7f1811
Properly create a new named state in s3
...
If the state doesn't exist, we need to initialize one so that it can be
listed be States.
2017-03-23 10:03:22 -04:00
James Bardin
fa4dc01cf4
add named state support to the s3 backend
...
This adds named state (environment) support to the S3 backend.
A state NAME will prepend the configured s3 key with `env:/NAME/`.
The default state will remain rooted in the bucket for backwards
compatibility.
Locks in DynamoDB use the S3 key as the as the primary key value, so
locking will work as expected for multiple states.
2017-03-22 16:59:13 -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
James Bardin
9f5cf2b105
convert S3 remote state to a backend
...
Move the S3 State from a legacy remote state to an official backend.
This increases test coverage, uses a set schema for configuration, and
will allow new backend features to be implemented for the S3 state, e.g.
"environments".
2017-03-22 10:59:37 -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
James Bardin
597eb6c918
update remote-state/inmem client
2017-02-28 16:35:45 -05:00
James Bardin
8fdf3a42b8
update remote-state.Backend
2017-02-28 16:35:45 -05:00
James Bardin
761c63d14a
Update Backend to incorporate environments
...
Add the missing methods/arguments to handle Terraform environments in
Backends. Extra functionality simply returns defaults for now.
2017-02-28 16:03:36 -05:00
James Bardin
2392455a67
Add inmem remote backend
...
Add an Inmem remote state backend.
The only config option right now is a lock_id, which will instantiate
the backend in a locked state for testing.
2017-02-20 14:49: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