Commit Graph

30239 Commits

Author SHA1 Message Date
sebhcp
301174a3df run goimports 2022-08-01 16:26:07 -05:00
sebhcp
31d6a1c186 revert changes for upgrade.mdx 2022-08-01 16:26:07 -05:00
sebhcp
4d799ab30f normalize [dir] to [DIR] 2022-08-01 16:26:07 -05:00
Laura Pacilio
aecbaecff5
Merge pull request #31545 from hashicorp/module-invocation-warning
Add note about module.path and local module sources
2022-08-01 17:19:07 -04:00
Laura Pacilio
2b0e14db52
Merge pull request #31460 from fnickels/4th-alternate-mirror-directory-fix
Detailing `-chdir` behavior with `terraform.d/plugin` folders
2022-07-29 17:53:15 -04:00
Laura Pacilio
f6aeecb592
Update website/docs/language/expressions/references.mdx 2022-07-29 16:52:58 -04:00
Laura Pacilio
e574234efc Add note about module.path and local module sources 2022-07-29 15:24:04 -04:00
Laura Pacilio
f42d6175e0
Merge pull request #31498 from sebhcp/fix-grammar
fix grammar: subject-verb agreement
2022-07-29 14:49:52 -04:00
Radek Simko
ed1d856bdb
Update CHANGELOG.md 2022-07-29 10:50:44 +01:00
Radek Simko
c1fc7fd744
providercache: include host in provider installation error (#31524) 2022-07-29 10:50:05 +01:00
Radek Simko
038f3c762f
Update CHANGELOG.md 2022-07-29 10:25:04 +01:00
Radek Simko
b82eee6c9f
getproviders: account for occasionally missing Host header in errors (#31542) 2022-07-29 10:23:50 +01:00
Brandon Croft
c62e20c78f
Merge pull request #31507 from hashicorp/brandonc/output_cloud_reads
`terraform output` should adhere to Terraform Cloud authorization
2022-07-28 11:53:55 -06:00
Brandon Croft
50d48c635e
remove unused error and fix output authorization detection 2022-07-28 11:44:16 -06:00
sebhcp
c625fe749b reword sentence 2022-07-27 14:03:51 -05:00
James Bardin
93c525bf81
Merge pull request #31509 from hashicorp/jbardin/valid-computed-plan
always allow computed-only changes in the plan
2022-07-27 10:09:15 -04:00
Francis Nickels III
194afe0872
Update website/docs/cli/config/config-file.mdx
lgtm

Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-07-26 17:02:44 -07:00
Brandon Croft
0139e75a1a
feature: fall back to reading entire state when detailed-type is not available 2022-07-25 17:17:24 -06:00
Brandon Croft
e1fa690879
style: goimports fixes 2022-07-25 14:51:34 -06:00
Brandon Croft
166d21b20b
refactor: extract cloud state ctyValue conversion function 2022-07-25 14:48:32 -06:00
James Bardin
a6a08fe84a AssertPlanValid for computed with config value
Return early from AssertPlanValid for any attribute which is only
computed. We currently fail if there's a config value, but that could
only happen because of core, not because of the provider.
2022-07-25 16:07:58 -04:00
Brandon Croft
15b938a0c8
Update to go-tfe v1.6.0 2022-07-25 13:50:57 -06:00
Brandon Croft
e794efc31e
better errors from terraform output when cloud is configured 2022-07-25 10:05:20 -06:00
Brandon Croft
c33c8b013f
fix: have terraform output adhere to authorization w/ cloud
Normally, `terraform output` refreshes and reads the entire state in the command package before pulling output values out of it. This doesn't give Terraform Cloud the opportunity to apply the read state outputs org permission and instead applies the read state versions permission.

I decided to expand the state manager interface to provide a separate GetRootOutputValues function in order to give the cloud backend a more nuanced opportunity to fetch just the outputs. This required moving state Refresh/Read code that was previously in the command into the shared backend state as well as the filesystem state packages.
2022-07-25 10:04:43 -06:00
Martin Atkins
5da30c2b65
Update CHANGELOG.md 2022-07-22 15:30:34 -07:00
Martin Atkins
72dd14ca5c core: Do everything except the actual action for plans.NoOp
Previously we tried to early-exit before doing anything at all for any
no-op changes, but that means we also skip some ancillary steps like
evaluating any preconditions/postconditions.

Now we'll skip only the main action itself for plans.NoOp, and still run
through all of the other side-steps.

Since one of those other steps is emitting events through the hooks
interface, this means that now no-op actions are visible to hooks, whereas
before we always filtered them out before calling. I therefore added some
additional logic to the hooks to filter them out at the UI layer instead;
the decision for whether or not to report that we visited a particular
object and found no action required seems defensible as a UI-level concern
anyway.
2022-07-22 15:27:15 -07:00
Martin Atkins
9e277033bc core: Create apply graph nodes even for no-op "changes"
We previously would optimize away the graph nodes for any resource
instance without a real change pending, but that means we don't get an
opportunity to re-check any invariants associated with the instance, such
as preconditions and postconditions.

Other upstream changes during apply can potentially decide the outcome of
a condition even if the instance itself isn't being changed, so we do
still need to revisit these during apply or else we might skip running
certain checks altogether, if they yielded unknown results during planning
and then don't get run during apply.
2022-07-22 15:27:15 -07:00
Martin Atkins
3cd069900b core: Use DynamicExpand even for root module outputs
We previously had a special case in the graph transformer for output
values where it would directly create an individual output value node
instead of an "expand" node as we would do for output values in nested
modules.

While it's true that we do always know that expanding a root module
output value will always produce exactly one instance, treating this case
as special creates the risk of those two codepaths diverging in other
ways.

Instead, we'll let the expand node also deal with root modules and
minimize the special case only to how we look up any changes for the
output values, since the design of plans.Changes is a bit awkward and
requires us to ask the question differently for root module output values.
Otherwise, the behavior will now be consistent across all output values
regardless of module.
2022-07-22 15:25:22 -07:00
Brandon Croft
74ee19b864
Merge pull request #31466 from hashicorp/aw/send-jsonstateoutputs
Include JSONStateOutputs
2022-07-22 14:49:09 -06:00
James Bardin
8b1b05f50f
Merge pull request #31499 from hashicorp/jbardin/dag-walks
topological sorting for refactoring
2022-07-22 15:41:37 -04:00
Brandon Croft
7892cb6b5a
reformat imports using goimports 2022-07-22 12:03:03 -06:00
James Bardin
e3ca4be4b9 goimports 2022-07-22 13:57:16 -04:00
James Bardin
dc9d7108dd use TopologicalOrder for evaluating moves
The dag package did not previously provide a topological walk of a given
graph. While the existing combination of a transitive reduction with a
depth-first walk appeared to accomplish this, depth-first is only
equivalent with a simple tree. If there are multiple paths to a node, a
depth-first approach will skip dependencies from alternate paths.
2022-07-22 13:57:16 -04:00
James Bardin
ca272b2107 Add methods for topological sorts
A topological walk was previously only done in Terraform via the
concurrent method used for walking the primary dependency graph in core.
Sometime however we want a dependency ordering without the overhead of
instantiating the concurrent walk with the channel-based edges.

Add TopologicalOrder and ReverseTopologicalOrder to obtain a list of
nodes which can be used to visit each while ensuring that all
dependencies are satisfied.
2022-07-22 13:57:16 -04:00
Brandon Croft
0b9bd2fc36
make cloud backend_state error messages more conventional 2022-07-22 11:31:48 -06:00
Brandon Croft
01d510f3cb
test(cloud): ensure state version is created when saving state 2022-07-22 11:26:28 -06:00
sebhcp
28ae64c38b fix subject-verb agreement 2022-07-22 12:11:28 -05:00
Anna Winkler
d72911a640 Save detailed type outputs to JSONStateOutputs 2022-07-22 10:28:20 -06:00
James Bardin
95019e3d02 Implement breadth-first walks and add tests
Make DAG walks test-able, and add tests for more complex graph ordering.
We also add breadth-first for comparison, though it's not used currently
in Terraform.
2022-07-22 11:01:29 -04:00
Martin Atkins
69aa0a2b1f states/remote: use t.Run in table-based tests
These tests were originally written long before Go supported subtests
explicitly, but now that we have t.Run we can avoid the prior problem
that one test failing would mask all of the others that followed it.

Now we'll always run all of them, potentially collecting more errors in
a single run so we can have more context to debug with and potentially
fix them all in a single step rather than one by one.
2022-07-21 13:40:56 -07:00
Liam Cervante
ad5ac89461
Fix tests failing on main (#31481) 2022-07-20 14:10:48 +01:00
Liam Cervante
9f0d1d0630
terraform init: add link to documentation when a checksum is missing from the lock file (#31408)
* terraform init: add suggested fix for when a checksum is missing from the lock file

* improve error message

* add link to the documentation

* cleanup leftovers from previous attempt

* fix tests

* s/,/;

* fix imports
2022-07-20 13:28:16 +01:00
Liam Cervante
83e84e5477
terraform init: add warning and guidance when lock file is incomplete (#31399)
* terraform init: add warning and guidance when lock file is incomplete

* make the provider list in the warning deterministic

* create installer event for tracking provider lock hashes (#31406)

* create installer event for tracking provider lock hashes

* address comments

* fix tests

* improve error message

* Update internal/command/init.go

Co-authored-by: Martin Atkins <mart@degeneration.co.uk>

Co-authored-by: Martin Atkins <mart@degeneration.co.uk>
2022-07-20 13:28:04 +01:00
Liam Cervante
224728879d
Ignore existing package hashes for providers lock command (#31389)
* Ignore existing package hashes for  command

* missing new line

* Fix incorrect logic when deciding change message

* fix imports
2022-07-20 13:27:24 +01:00
Liam Cervante
afd273d636
Add goimports as a check to the Github commit actions (#31432)
* Add goimports as a check to the Github commit actions

* check diff against main instead of last commit

* goimports should fix the problems

* fix up conditionals and wildcard matching

* specify origin/main in diff

* fetch main branch when checkout

* back to origin main
2022-07-19 10:14:28 +01:00
Francis Nickels
9a5d909931 doc change to match behavior 2022-07-18 09:10:10 -07:00
kmoe
7b4a5513a9
command: fix panic on show when state file is invalid or unavailable (#31444) 2022-07-15 17:31:56 +01:00
kmoe
d64e6dfa09
Update CHANGELOG.md 2022-07-15 17:31:17 +01:00
hellertang
0dbf0711a0
cos backend support accelerate (#31425) 2022-07-15 17:07:41 +01:00
Alisdair McDiarmid
c4a65f8381
Update CHANGELOG.md 2022-07-14 13:17:01 -04:00