terraform/command/testdata
Martin Atkins ff0dbd6215 command/fmt: Restore some opinionated behaviors
In Terraform 0.11 and earlier, the "terraform fmt" command was very
opinionated in the interests of consistency. While that remains its goal,
for pragmatic reasons Terraform 0.12 significantly reduced the number
of formatting behaviors in the fmt command. We've held off on introducing
0.12-and-later-flavored cleanups out of concern it would make it harder
to maintain modules that are cross-compatible with both Terraform 0.11
and 0.12, but with this aimed to land in 0.14 -- two major releases
later -- our new goal is to help those who find older Terraform language
examples learn about the more modern idiom.

More rules may follow later, now that the implementation is set up to
allow modifications to tokens as well as modifications to whitespace, but
for this initial pass the command will now apply the following formatting
conventions:

 - 0.11-style quoted variable type constraints will be replaced with their
   0.12 syntax equivalents. For example, "string" becomes just string.
   (This change quiets a deprecation warning.)
 - Collection type constraints that don't specify an element type will
   be rewritten to specify the "any" element type explicitly, so
   list becomes list(any).
 - Arguments whose expressions consist of a quoted string template with
   only a single interpolation sequence inside will be "unwrapped" to be
   the naked expression instead, which is functionally equivalent.
   (This change quiets a deprecation warning.)
 - Block labels are given in quotes.

Two of the rules above are coming from a secondary motivation of
continuing down the deprecation path for two existing warnings, so authors
can have two active deprecation warnings quieted automatically by
"terraform fmt", without the need to run any third-party tools.

All of these rules match with current documented idiom as shown in the
Terraform documentation, so anyone who follows the documented style should
see no changes as a result of this. Those who have adopted other local
style will see their configuration files rewritten to the standard
Terraform style, but it should not make any changes that affect the
functionality of the configuration.

There are some further similar rewriting rules that could be added in
future, such as removing 0.11-style quotes around various keyword or
static reference arguments, but this initial pass focused only on some
rules that have been proven out in the third-party tool
terraform-clean-syntax, from which much of this commit is a direct port.

For now this doesn't attempt to re-introduce any rules about vertical
whitespace, even though the 0.11 "terraform fmt" would previously apply
such changes. We'll be more cautious about those because the results of
those rules in Terraform 0.11 were often sub-optimal and so we'd prefer
to re-introduce those with some care to the implications for those who
may be using vertical formatting differences for some semantic purpose,
like grouping together related arguments.
2020-09-28 09:04:03 -07:00
..
013upgrade-existing-versions-tf command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-explicit-providers command/013upgrade: detect builtin terraform provider (#25215) 2020-06-11 14:10:47 -04:00
013upgrade-file-exists command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-implicit-not-found command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-implicit-providers command/013upgrade: detect builtin terraform provider (#25215) 2020-06-11 14:10:47 -04:00
013upgrade-multiple-blocks command: Fix 0.13upgrade bug with multiple blocks 2020-05-07 20:11:44 -04:00
013upgrade-multiple-files command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-no-providers command: Rework 0.13upgrade sub-command 2020-05-07 11:38:55 -04:00
013upgrade-preserves-comments command: Fix 0.13upgrade to preserve more comments 2020-06-24 15:54:46 -04:00
013upgrade-provider-not-found command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-provider-redirect command: Add redirect support to 0.13upgrade 2020-08-31 14:53:35 -04:00
013upgrade-provider-redirect-version-unavailable command: Add redirect support to 0.13upgrade 2020-08-31 14:53:35 -04:00
013upgrade-providers-with-source command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-skipped-files command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-submodule command: Change 0.13upgrade default to versions.tf 2020-05-07 15:45:48 -04:00
013upgrade-unsupported-version command: Check required_version before upgrading 2020-05-07 15:45:48 -04:00
apply Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-config-invalid Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-destroy-targeted Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-error Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-input Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-input-partial Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-plan-no-module Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-sensitive-output Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-shutdown Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-terraform-env Standardise directory name for test data 2019-06-30 10:16:15 +02:00
apply-vars fix command tests 2020-08-07 14:13:57 -04:00
backend-change Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-change-multi-default-to-single Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-change-multi-to-multi Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-change-multi-to-no-default-with-default Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-change-multi-to-no-default-without-default Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-change-multi-to-single Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-change-single-to-single Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-changed-with-legacy Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-from-state command: use backend config from state when backend=false is used. (#23802) 2020-01-07 15:07:06 -05:00
backend-inmem-locked Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-new Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-new-interp Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-new-legacy Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-new-migrate Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-new-migrate-existing Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-backend-empty Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-backend-empty-config Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-backend-match Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-backend-mismatch Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-legacy Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-legacy-data Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-local Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-local-match Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-local-mismatch-lineage Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-plan-local-newer Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-unchanged Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-unchanged-with-legacy Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-unset Standardise directory name for test data 2019-06-30 10:16:15 +02:00
backend-unset-with-legacy Standardise directory name for test data 2019-06-30 10:16:15 +02:00
empty Standardise directory name for test data 2019-06-30 10:16:15 +02:00
fmt command/fmt: Restore some opinionated behaviors 2020-09-28 09:04:03 -07:00
get Standardise directory name for test data 2019-06-30 10:16:15 +02:00
graph Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-missing-resource-config Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-module-input-variable terraform: Eval module call arguments for import 2020-08-17 17:14:12 -04:00
import-module-var-file reproduction test 2020-06-12 15:39:55 -04:00
import-provider Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-provider-aliased Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-provider-datasource command/import: attach references before validating provider (#22862) 2020-02-12 14:00:08 -05:00
import-provider-implicit Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-provider-invalid command: Fix stale lock when exiting early 2020-02-14 14:48:30 -05:00
import-provider-remote-state Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-provider-var Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-provider-var-default Standardise directory name for test data 2019-06-30 10:16:15 +02:00
import-provider-var-file Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-backend Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-backend-config-file command: Fix backend config override validation 2020-08-21 16:21:13 -04:00
init-backend-config-file-change Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-backend-config-kv Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-backend-empty Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-check-required-version terraform: Fix required version constraint diags 2020-08-18 09:35:32 -04:00
init-get Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-get-provider-detected-legacy command/init: Improve diags for legacy providers 2020-06-12 09:57:01 -04:00
init-get-provider-invalid-package command/init: Display provider validation errors 2020-07-07 15:20:20 -04:00
init-get-provider-legacy-from-state command: Better in-house provider install errors 2020-09-01 14:02:19 -04:00
init-get-provider-source command/init: Use full config for provider reqs 2020-05-25 16:50:12 -04:00
init-get-providers vendor: go get github.com/apparentlymart/go-versions@v1.0.0 2020-06-12 08:45:14 -07:00
init-internal Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-internal-invalid internal/providercache: Handle built-in providers 2020-04-06 09:24:23 -07:00
init-legacy-rc Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-provider-lock-file Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-providers-lock Standardise directory name for test data 2019-06-30 10:16:15 +02:00
init-required-providers provider source tests: added test suite to exercise hyphenated providers (#24685) 2020-04-16 15:54:33 -04:00
inmem-backend Standardise directory name for test data 2019-06-30 10:16:15 +02:00
login-oauth-server command: Fix OAuth2 PKCE arguments 2020-05-05 09:58:48 -07:00
login-tfe-server Add token validation for manual terraform login 2020-02-04 17:24:25 -05:00
modules Support reading module outputs in terraform console (#24808) 2020-04-30 09:21:42 -04:00
parallelism Standardise directory name for test data 2019-06-30 10:16:15 +02:00
plan Standardise directory name for test data 2019-06-30 10:16:15 +02:00
plan-emptydiff Standardise directory name for test data 2019-06-30 10:16:15 +02:00
plan-invalid Standardise directory name for test data 2019-06-30 10:16:15 +02:00
plan-out-backend Standardise directory name for test data 2019-06-30 10:16:15 +02:00
plan-out-backend-legacy Standardise directory name for test data 2019-06-30 10:16:15 +02:00
plan-vars Standardise directory name for test data 2019-06-30 10:16:15 +02:00
providers command/providers: Show provider requirements tree 2020-06-09 14:21:53 -04:00
providers-schema command: Providers schema shows required_providers 2020-09-22 10:28:32 -04:00
push Standardise directory name for test data 2019-06-30 10:16:15 +02:00
push-backend-new Standardise directory name for test data 2019-06-30 10:16:15 +02:00
push-input Standardise directory name for test data 2019-06-30 10:16:15 +02:00
push-input-partial Standardise directory name for test data 2019-06-30 10:16:15 +02:00
push-no-remote Standardise directory name for test data 2019-06-30 10:16:15 +02:00
push-no-upload Standardise directory name for test data 2019-06-30 10:16:15 +02:00
push-tfvars Standardise directory name for test data 2019-06-30 10:16:15 +02:00
refresh Standardise directory name for test data 2019-06-30 10:16:15 +02:00
refresh-empty Standardise directory name for test data 2019-06-30 10:16:15 +02:00
refresh-output Standardise directory name for test data 2019-06-30 10:16:15 +02:00
refresh-unset-var Standardise directory name for test data 2019-06-30 10:16:15 +02:00
refresh-var Standardise directory name for test data 2019-06-30 10:16:15 +02:00
show Standardise directory name for test data 2019-06-30 10:16:15 +02:00
show-json Revert "fix show -json tests" 2020-09-21 16:17:45 -04:00
show-json-state Mildwonkey/last tests (#24553) 2020-04-06 09:24:23 -07:00
state-list-backend-custom addrs: embed Provider in AbsProviderConfig instead of Type 2020-02-13 15:32:58 -05:00
state-list-backend-default addrs: embed Provider in AbsProviderConfig instead of Type 2020-02-13 15:32:58 -05:00
state-pull-backend Standardise directory name for test data 2019-06-30 10:16:15 +02:00
state-push-bad-lineage Standardise directory name for test data 2019-06-30 10:16:15 +02:00
state-push-good Standardise directory name for test data 2019-06-30 10:16:15 +02:00
state-push-replace-match Standardise directory name for test data 2019-06-30 10:16:15 +02:00
state-push-serial-newer addrs: embed Provider in AbsProviderConfig instead of Type 2020-02-13 15:32:58 -05:00
state-push-serial-older Standardise directory name for test data 2019-06-30 10:16:15 +02:00
taint-check-required-version command: Taint should respect required_version 2020-09-22 17:33:09 -04:00
validate-invalid Standardise directory name for test data 2019-06-30 10:16:15 +02:00
validate-valid Standardise directory name for test data 2019-06-30 10:16:15 +02:00
empty-file Standardise directory name for test data 2019-06-30 10:16:15 +02:00
statelocker.go state: remove deprecated state package (#25490) 2020-08-11 11:43:01 -04:00