terraform/plans/objchange
Martin Atkins 0b2cc6298b plans/objchange: Fix panic in AssertObjectCompatible with set blocks
Our usual "ground rules" for mapping configschema to cty call for the
collection values representing nested block types to always be known and
non-null, using an empty collection to represent the absense of any blocks
of that type so that users can always safely use length(...) etc on them
without worrying about them sometimes being null.

However, due to some different behaviors in the legacy SDK we've allowed
it an exception to this rule which means that we can see unknown and null
collections in these positions in object values returned from provider
operations like PlanResourceChange and ApplyResourceChange when the legacy
SDK opt-out is activated.

As a consequence of this, we need to be mindful in our safety check
functions, like AssertObjectCompatible here, of tolerating these non-ideal
situations to allow the safety checks to complete. We run these checks
even when the provider requests an opt-out, because we want to note any
inconsistencies as WARNING level log lines to aid in debugging.
2019-02-14 10:04:51 -08:00
..
all_null.go plans/objchange: Don't presume unknown for values unset in config 2019-02-07 14:01:39 -08:00
compatible.go plans/objchange: Fix panic in AssertObjectCompatible with set blocks 2019-02-14 10:04:51 -08:00
compatible_test.go plans/objchange: Fix panic in AssertObjectCompatible with set blocks 2019-02-14 10:04:51 -08:00
doc.go plans/objchange: logic for merging prior state with config 2018-10-16 19:11:09 -07:00
lcs.go plans/objchange: LongestCommonSubsequence 2018-10-16 19:14:11 -07:00
lcs_test.go plans/objchange: LongestCommonSubsequence 2018-10-16 19:14:11 -07:00
objchange.go core: Restore our EvalReadData behavior 2019-02-07 18:33:14 -08:00
objchange_test.go plans/objchange: Don't presume unknown for values unset in config 2019-02-07 14:01:39 -08:00
plan_valid.go plans/objchange: Hide sensitive attribute values in error messages 2019-02-11 17:26:50 -08:00
plan_valid_test.go plans/objchange: Hide sensitive attribute values in error messages 2019-02-11 17:26:50 -08:00