Commit Graph

19 Commits

Author SHA1 Message Date
Pam Selle
b03d5df9dc Disallow sensitive values as for_each arguments 2020-09-10 11:04:17 -04:00
Kristin Laemmert
45d72b3018
terraform: check for unknows in for_each type before validating set (#25426)
element types

The error message when evaluateForEachExpression encounted an unknown
value of cty.DynamicPseudoType was not clear:

The given "for_each" argument value is unsuitable: "for_each" supports maps
and sets of strings, but you have provided a set containing type dynamic.

By moving the check for unknowns before the check for set element types,
the following error is returned instead:

"The "for_each" value depends on resource attributes that cannot be
determined until apply (...)"
2020-06-29 09:12:36 -04:00
James Bardin
3d8b1dea97
Update terraform/eval_for_each.go
Co-Authored-By: Pam Selle <pam@hashicorp.com>
2020-04-09 11:47:16 -04:00
James Bardin
73a20bfb17 fixup mangled comments 2020-04-09 10:13:03 -04:00
James Bardin
b1bc7a792b rename and cleanup use of count/for_each eval func
Stop evaluating count and for each if they aren't set in the config.
Remove "Resource" from the function names, as they are also now used
with modules.
2020-04-08 17:21:23 -04:00
Alisdair McDiarmid
0ef7d6dea7 terraform: detect null values in for_each sets
Previously, passing `[null, null]` to `for_each` caused a panic. This
commit detects this invalid usage and returns an error instead.

Fixes #24047
2020-02-14 17:20:08 -05:00
Martin Atkins
39e609d5fd vendor: switch to HCL 2.0 in the HCL repository
Previously we were using the experimental HCL 2 repository, but now we'll
shift over to the v2 import path within the main HCL repository as part of
actually releasing HCL 2.0 as stable.

This is a mechanical search/replace to the new import paths. It also
switches to the v2.0.0 release of HCL, which includes some new code that
Terraform didn't previously have but should not change any behavior that
matters for Terraform's purposes.

For the moment the experimental HCL2 repository is still an indirect
dependency via terraform-config-inspect, so it remains in our go.sum and
vendor directories for the moment. Because terraform-config-inspect uses
a much smaller subset of the HCL2 functionality, this does still manage
to prune the vendor directory a little. A subsequent release of
terraform-config-inspect should allow us to completely remove that old
repository in a future commit.
2019-10-02 15:10:21 -07:00
Pam Selle
4f198fc797
Merge pull request #22760 from pselle/add-source-to-diag-for_each
Add source addressing to make error more useful
2019-09-11 09:36:24 -04:00
Pam Selle
3be3e3c089 Add source addressing to make error more useful 2019-09-10 14:56:11 -04:00
Pam Selle
a25abbe7d8 Cover empty sets 2019-09-10 10:57:35 -04:00
Pam Selle
37e8147c4f Spiffy comment 2019-08-28 15:13:36 -04:00
Pam Selle
35016a5ea3 Move things around, add test for resource references 2019-08-28 14:02:11 -04:00
Pam Selle
a4d2bf45fc Update tests, plan test is able to reproduce panic without fix 2019-08-26 15:25:03 -04:00
Pam Selle
0eb7cfd0d9 Check for wholly known for forEach evaluation, add some tests 2019-08-26 15:16:25 -04:00
tmatias
c20c40c9aa
diagnose tuple values being passed as argument to for_each 2019-08-01 11:33:46 -03:00
tmatias
e825dd0428
make validation on for_each argument more precise 2019-07-31 19:29:50 -03:00
Pam Selle
e7d8ac5ad7 Remove panic, update comment 2019-07-26 11:22:10 -04:00
Thayne McCombs
7c678d104f Add support for for_each for data blocks.
This also fixes a few things with resource for_each:

It makes validation more like validation for count.

It makes sure the index is stored in the state properly.
2019-07-25 16:59:06 -04:00
Pam Selle
7d905f6777 Resource for_each 2019-07-22 10:51:16 -04:00