Commit Graph

30210 Commits

Author SHA1 Message Date
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
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
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
Alisdair McDiarmid
d3284bdc4e
Merge pull request #31220 from FooBartn/string-starts-ends-with-funcs
feat: add startswith and endswith funcs
2022-07-14 13:13:04 -04:00
Alisdair McDiarmid
7190898501
Apply suggestions from code review
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-07-14 13:03:53 -04:00
Joshua Barton
0dfcbe6d0c
docs: Add recommended language changes
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-07-14 11:06:35 -05:00
Jeff Bonhag
f30738d965
Add golden reference test for JSON plan (#31362)
* Add golden JSON test for Terraform plan

* Add data source to golden JSON plan

* Move output comparison code into shared helper function

* Add note for maintainer to contact TFC when UI changes

UI changes may potentially impact the behavior of structured run output
on TFC.

* Add test_data_source to other mock providers
2022-07-12 17:00:36 -04:00
Sarah French
5e000c2741
Merge pull request #31398 from hashicorp/fix-glossary-table-contents
Fix links in Glossary page's table of contents
2022-07-12 15:59:26 +01:00
Tom Bamford
04e1fa088e
Changelog for #31070 2022-07-12 12:21:11 +01:00
Tom Bamford
dc1f5bccf8
Merge pull request #31070 from hashicorp/f/removing-adal-auth
backend/azurerm: exclusively using Microsoft Graph/MSAL and removing Azure Active Directory Graph/ADAL
2022-07-12 12:18:29 +01:00
Laura Pacilio
06baea9ae1
Merge pull request #31286 from BrianSidebotham/update_docs_for_30072
Fixes #30072 - Update docs to show single file usage
2022-07-11 11:07:19 -04:00
Craig Wright
a30d1c475c
Merge pull request #31403 from hashicorp/backport/cstella84/patch-add-hyperlink-for-referenced-argument
Added link to "hostname" argument
2022-07-08 12:11:02 -07:00
Brian Sidebotham
a6aa75931b Update internal/command/fmt.go
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-07-08 09:22:22 -07:00
Brian Sidebotham
26e770321f Update website/docs/cli/commands/fmt.mdx
Co-authored-by: Laura Pacilio <83350965+laurapacilio@users.noreply.github.com>
2022-07-08 09:19:50 -07:00
Brian Sidebotham
7dd199cbd0 Fixes #30072 - Update documentation to show that the old DIR option can target a single file instead 2022-07-08 09:19:50 -07:00
Radek Simko
7feef1c4aa
Use hashicorp/terraform-registry-address as a decoupled library (#28338)
* refactor: Use tfaddr for provider address parsing

* refactor: Use tfaddr for module address parsing

* deps: introduce hashicorp/terraform-registry-address
2022-07-08 14:46:29 +01:00
Chris Stella
9e3535be9c
Added link to "hostname" argument
There should be a link to the argument being referenced for clarity and completeness.
2022-07-07 23:02:45 -07:00
Martin Atkins
de8eef1da5 addrs: Format string instance keys in an HCL-compatible way
So far we've only ever needed to re-parse address strings that happen not
to contain instance keys and so we've gotten away with our serialization
of these not being quite right, but given how liberally we've expected to
be able to use address strings from this package for wire format
interchange it seems likely that this is going to surprise us eventually.

Now we'll use an escaping scheme compatible with HCL's parser rather
than Go's parser, and so we can safely rely on hclsyntax.ParseTraversal
as part of reversing this operation to transform an address string back
into an address equivalent to the value it was created from.
2022-07-07 14:05:48 -07:00
Sarah French
892100a4cf
Update glossary.mdx 2022-07-07 14:46:56 +01:00
Sarah French
a8738731ba
Update glossary.mdx 2022-07-07 14:42:27 +01:00
Laura Pacilio
aeefde7428
Merge pull request #31364 from timgates42/bugfix_typos
docs: Fix a few typos
2022-07-06 17:03:09 -04:00
hc-github-team-tf-core
43027e92ae Cleanup after v1.3.0-alpha20220706 release 2022-07-06 18:26:37 +00:00
hc-github-team-tf-core
410daca668
Release v1.3.0-alpha20220706 2022-07-06 18:14:49 +00:00
James Bardin
9cfe1a5ce8 update CHANGELOG.md 2022-07-06 13:57:33 -04:00
James Bardin
1fba244d3a
Merge pull request #31179 from hashicorp/jbardin/plan-destroy
Call PlanResourceChange for destroy operations
2022-07-06 13:57:13 -04:00
James Bardin
30369650a7
Merge pull request #31343 from hashicorp/jbardin/mock-replace
remove go.mod replacement of `github.com/golang/mock`
2022-07-06 13:49:38 -04:00
James Bardin
26c569e384 s/Capabilities/ServerCapabilities/ 2022-07-06 13:47:35 -04:00
James Bardin
fd742cd544 add e2e test with provider schema capabilities
enable destroy planning for the simple providers used in the e2e tests
2022-07-06 13:47:35 -04:00
James Bardin
6706d52832 check PlanDestroy capability in plugins
This is most easily handled in the plugin code, without involving
Terraform core.

The biggest change here other than checking the PlanDestroy capability,
is the removal of the schema helper methods in the plugins. With the
addition of the capabilities field, combined with the necessity of
checking diagnostics from the schema, the helpers have outlived their
usefulness. Perhaps there's a better pattern for these repetitive calls,
but for now there isn't too extra verbosity involved.
2022-07-06 13:47:35 -04:00
James Bardin
b9f1a5ac57 add Schema Capabilities to protocol 2022-07-06 13:47:35 -04:00
James Bardin
9487cfba28 add test for planned private data in destroy 2022-07-06 13:47:35 -04:00
James Bardin
96c720517f fixup broken test fixtures
some of the minimal test provider implementations didn't check for null
values.
2022-07-06 13:47:35 -04:00