Commit Graph

5 Commits

Author SHA1 Message Date
Clint a5f8c39ddd Merge pull request from ross/aws-instance-migrate-nil-attr
Avoid nil map assign in aws instance migrateStateV0toV1
2016-01-12 15:55:16 -06:00
clint shryock 4a5847f9ea providers/aws: Vet aws 2015-12-01 10:00:35 -06:00
Ross McFarland 0b66da1cd0 Avoid nil map assign in aws instance migrateStateV0toV1 2015-09-28 02:44:28 +00:00
Paul Hinze f51fb5e127 providers/aws: handle empty instancestate in state migration
fixes 
2015-03-26 13:07:04 -05:00
Paul Hinze 2b23c402ee providers/aws: rework instance block devices
Instance block devices are now managed by three distinct sub-resources:

 * `root_block_device` - introduced previously
 * `ebs_block_device` - all additional ebs-backed volumes
 * `ephemeral_block_device` - instance store / ephemeral devices

The AWS API support around BlockDeviceMapping is pretty confusing. It's
a single collection type that supports these three members each of which
has different fields and different behavior.

My biggest hiccup came from the fact that Instance Store volumes do not
show up in any response BlockDeviceMapping for any EC2 `Describe*` API
calls. They're only available from the instance meta-data service as
queried from inside the node.

This removes `block_device` altogether for a clean break from old
configs. New configs will need to sort their `block_device`
declarations into the three new types. The field has been marked
`Removed` to indicate this to users.

With the new block device format being introduced, we need to ensure
Terraform is able to properly read statefiles written in the old format.
So we use the new `helper/schema` facility of "state migrations" to
transform statefiles in the old format to something that the current
version of the schema can use.

Fixes 
2015-03-19 09:03:41 -05:00