terraform/state/remote
Paul Hinze 6aa5fdc938 state/remote/atlas: handle conflicts on equivalent states
Atlas returns an HTTP 409 - Conflict if the pushed state reports the same
Serial number but the checksum of the raw content differs. This can
sometimes happen when Terraform changes state representation internally
between versions in a way that's semantically neutral but affects the JSON
output and therefore the checksum.

Here we detect and handle this situation by ticking the serial and retrying
iff for the previous state and the proposed state:

  * the serials match
  * the parsed states are Equal (semantically equivalent)

In other words, in this situation Terraform can override Atlas's detected
conflict by asserting that the state it is pushing is indeed correct.
2015-10-22 15:40:45 -05:00
..
atlas.go state/remote/atlas: handle conflicts on equivalent states 2015-10-22 15:40:45 -05:00
atlas_test.go state/remote/atlas: handle conflicts on equivalent states 2015-10-22 15:40:45 -05:00
client_inmem.go state: a bunch of state stuff 2015-02-23 15:13:53 -08:00
consul.go state/remote: allow https consul addresses 2015-03-17 17:11:35 -04:00
consul_test.go state/remote: consul client 2015-02-23 15:13:53 -08:00
etcd.go Use cleanhttp for new http clients 2015-10-22 14:23:59 -04:00
etcd_test.go Etcd remote state backend 2015-10-18 23:24:55 +02:00
file.go state/remote: add undocumented file backend for remote state 2015-03-05 13:15:14 -08:00
file_test.go state/remote: add undocumented file backend for remote state 2015-03-05 13:15:14 -08:00
http.go state/remote: more canonical Go for skip TLS verify 2015-06-07 22:24:31 -07:00
http_test.go Use cleanhttp for new http clients 2015-10-22 14:23:59 -04:00
remote.go Etcd remote state backend 2015-10-18 23:24:55 +02:00
remote_test.go state/remote: passing Atlas state test 2015-02-23 17:56:29 -08:00
s3.go Use cleanhttp for new http clients 2015-10-22 14:23:59 -04:00
s3_test.go provider/aws: Update source to comply with upstream breaking change 2015-07-28 15:29:46 -05:00
state.go state: deep copies are required 2015-02-23 21:36:58 -08:00
state_test.go state/remote: increment serial properly 2015-02-23 21:30:59 -08:00
swift.go fmt 2015-06-23 22:31:24 -07:00
swift_test.go fmt 2015-06-23 22:31:24 -07:00