terraform/state
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
..
remote state/remote/atlas: handle conflicts on equivalent states 2015-10-22 15:40:45 -05:00
backup.go state: backup state 2015-02-23 15:13:54 -08:00
backup_test.go state: backup state 2015-02-23 15:13:54 -08:00
cache.go state: cache should use State.Equal to check equality 2015-04-07 15:03:04 -07:00
cache_test.go state: cache state test 2015-02-23 15:13:53 -08:00
inmem.go state: deep copies are required 2015-02-23 21:36:58 -08:00
inmem_test.go state: InmemState 2015-02-23 15:13:55 -08:00
local.go state: deep copies are required 2015-02-23 21:36:58 -08:00
local_test.go state: LocalState supports alternate output path 2015-02-23 15:13:54 -08:00
state.go command: start migrating to new state package 2015-02-23 15:13:54 -08:00
testing.go state: deep copies are required 2015-02-23 21:36:58 -08:00