terraform/helper/schema
Chris Marchesi 4d8208d840 core: Ensure hasComputedSubKeys iterates over Sets and Lists properly
This fixes some edge-ish cases where a set in a config has a set or list
in it that contains computed values, but non-set or list values in the
parent do not.

This can cause "diffs didn't match during apply" errors in a scenario
such as when a set's hash is calculated off of child items (including
any sub-lists or sets, as it should be), and the hash changes between
the plan and apply diffs due to the computed values present in the
sub-list or set items. These will be marked as computed, but due to the
fact that the function was not iterating over the list or set items
properly (ie: not adding the item number to the address, so
set.0.set.foo was being yielded instead of set.0.set.0.foo), these
computed values were not being properly propagated to the parent set to
be marked as computed.

Fixes hashicorp/terraform#6527.
Fixes hashicorp/terraform#8271.

This possibly fixes other non-CloudFront related issues too.
2016-11-19 08:56:16 -08:00
..
README.md helper/schema: README 2014-08-17 20:51:09 -07:00
data_source_resource_shim.go helper/schema: emit warning when using data source resource shim 2016-05-14 08:26:36 -07:00
equal.go helper/schema: use interface for equality check 2015-01-16 09:32:15 -08:00
field_reader.go helper/schema: computed bool fields should not crash 2016-11-02 13:25:23 -07:00
field_reader_config.go core: Ensure hasComputedSubKeys iterates over Sets and Lists properly 2016-11-19 08:56:16 -08:00
field_reader_config_test.go helper/schema: passing tests for computed complex sets 2016-11-10 08:52:37 -08:00
field_reader_diff.go Unchanged NestedSets are not returned by DiffFieldReader. 2016-09-16 23:57:33 +00:00
field_reader_diff_test.go Use DeepEqual instead of multiple if statements to reduce noise. 2016-09-17 17:41:44 +00:00
field_reader_map.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
field_reader_map_test.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
field_reader_multi.go helper/schema: full object test for addrToSchema 2015-01-09 17:43:44 -08:00
field_reader_multi_test.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
field_reader_test.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
field_writer.go helper/schema: FieldWriter, replace Set 2015-01-10 11:44:26 -08:00
field_writer_map.go core: Allow dynamic attributes in helper/schema 2016-06-11 13:29:05 +01:00
field_writer_map_test.go core: Use .% instead of .# for maps in state 2016-06-09 10:49:42 +01:00
getsource_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00
provider.go helper/schema: expose stop information as a Context 2016-10-25 12:08:36 -07:00
provider_test.go helper/schema: expose stop information as a Context 2016-10-25 12:08:36 -07:00
resource.go helper/schema: validate Read, Delete are set 2016-10-30 15:04:32 -07:00
resource_data.go core: Allow dynamic attributes in helper/schema 2016-06-11 13:29:05 +01:00
resource_data_get_source.go helper/schema: diff with set going to 0 elements removes it from state 2015-02-17 11:38:56 -08:00
resource_data_test.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
resource_importer.go helper/schema: pass through import state func 2016-05-16 10:03:57 -07:00
resource_test.go helper/schema: validate Read, Delete are set 2016-10-30 15:04:32 -07:00
schema.go helper/schema: mark diff as forcenew if element is computed 2016-11-15 11:02:14 -08:00
schema_test.go helper/schema: mark diff as forcenew if element is computed 2016-11-15 11:02:14 -08:00
serialize.go Serialization for hash panics on TypeMap 2016-06-09 13:37:58 -04:00
serialize_test.go Add test for TypeMap in a Schema 2016-06-09 16:00:33 -04:00
set.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
set_test.go Change Set internals and make (extreme) performance improvements 2015-11-22 14:21:28 +01:00
valuetype.go helper/schema: zero value of a set should be empty 2015-02-17 16:58:47 -08:00
valuetype_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00

README.md

Terraform Helper Lib: schema

The schema package provides a high-level interface for writing resource providers for Terraform.

If you're writing a resource provider, we recommend you use this package.

The interface exposed by this package is much friendlier than trying to write to the Terraform API directly. The core Terraform API is low-level and built for maximum flexibility and control, whereas this library is built as a framework around that to more easily write common providers.