terraform/internal/command/testdata
kmoe be2ad69eda
plannable import: safer config generation and schema filters (#33232)
* genconfig: fix nil nested block panic

* genconfig: null NestingSingle blocks should be absent

A NestingSingle block that is null in state should be completely absent from config.

* configschema: make FilterOr variadic

* configschema: apply filters to nested types

* configschema: filter helper/schema id attribute

The legacy SDK adds an Optional+Computed "id" attribute to the
resource schema even if not defined in provider code.
During validation, however, the presence of an extraneous "id"
attribute in config will cause an error.
Remove this attribute so we do not generate an "id" attribute
where there is a risk that it is not in the real resource schema.

* configschema: filter test

* terraform: do not pre-validate generated config

Config generated from a resource's import state may fail validation in
the case of schema behaviours such as ExactlyOneOf and ConflictsWith.
We don't want to fail the plan now, because that would give the user no
way to proceed and fix the config to make it valid. We allow the plan to
complete and output the generated config.

* generate config alongside import process

Rather than waiting until we call `plan()`, generate the configuration
at the point of the import call, so we have the necessary data to return
in case planning fails later.

The `plan` and `state` predeclared variables in the plan() method were
obfuscating the actual return of nil throughout, so those identifiers
were removed for clarity.

* move generateHCLStringAttributes closer to caller

* store generated config in plan on error

* test for config gen with error

* add simple warning when generating config

---------

Co-authored-by: James Bardin <j.bardin@gmail.com>
2023-05-24 11:16:05 +01:00
..
apply [Plannable Import] Implement streamed logs for plan (#33106) 2023-05-04 10:02:06 +02:00
apply-config-invalid Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-destroy-targeted Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-error Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-input Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-input-partial Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-plan-no-module Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-replace Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-sensitive-output Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-shutdown Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-targeted Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-terraform-env Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
apply-vars Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change-multi-default-to-single Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change-multi-to-multi Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change-multi-to-no-default-with-default Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change-multi-to-no-default-without-default Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change-multi-to-single Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-change-single-to-single Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-changed-with-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-from-state Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-inmem-locked Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-new Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-new-interp Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-new-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-new-migrate Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-new-migrate-existing Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-backend-empty Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-backend-empty-config Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-backend-match Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-backend-mismatch Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-legacy-data Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-local Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-local-match Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-local-mismatch-lineage Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-plan-local-newer Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-unchanged Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-unchanged-with-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-unset Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
backend-unset-with-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
command-check-required-version cli: Make state commands check required version (#30511) 2022-03-31 13:42:42 -04:00
empty Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
fmt Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
get Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
graph Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-missing-resource-config Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-module-input-variable Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-module-var-file Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-aliased Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-datasource Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-implicit Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-invalid Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-remote-state Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-var Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-var-default Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
import-provider-var-file Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-backend Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-backend-config-file Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-backend-config-file-change Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-backend-config-file-change-migrate-existing Test case for changing backend hash during aborted state migration 2021-11-02 10:20:37 -05:00
init-backend-config-kv Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-backend-empty Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-backend-http Error if backup or backup-out options are used without the state option on non-local backends for the state mv command 2021-11-09 13:09:36 -06:00
init-backend-migrate-while-locked cli: Restore -lock and -lock-timeout init flags 2021-10-19 09:32:30 -04:00
init-backend-selected-workspace-doesnt-exist-multi command: Auto-select single workspace if necessary 2021-09-22 16:03:11 -05:00
init-backend-selected-workspace-doesnt-exist-single command: Auto-select single workspace if necessary 2021-09-22 16:03:11 -05:00
init-check-required-version Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-check-required-version-first make sure required_version is checked before diags 2021-09-28 13:30:03 -04:00
init-check-required-version-first-module LoadModule now always returns the module 2021-09-28 17:58:40 -04:00
init-cloud-simple command/init: Be explicit that some options are not relevant for Cloud 2021-11-17 14:20:44 -08:00
init-get Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-get-provider-detected-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-get-provider-invalid-package Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-get-provider-legacy-from-state Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-get-provider-source Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-get-providers Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-internal Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-internal-invalid Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-legacy-provider-cache Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-legacy-rc Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-provider-lock-file Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-provider-lock-file-readonly-add Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-provider-now-unused providercache: Discard lock entries for unused providers 2021-12-17 15:30:21 -08:00
init-providers-lock Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-registry-module command: make module installation interruptible 2021-11-11 12:28:10 +00:00
init-required-providers Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
init-syntax-invalid-backend-invalid add tests for init syntax error handling 2023-02-15 21:01:27 -08:00
init-syntax-invalid-no-backend add tests for init syntax error handling 2023-02-15 21:01:27 -08:00
init-syntax-invalid-with-backend add tests for init syntax error handling 2023-02-15 21:01:27 -08:00
inmem-backend Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
login-oauth-server Upgrade to Go 1.17 2021-08-17 15:20:05 -07:00
login-tfe-server Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
modules Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
parallelism Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plan [Plannable Import] Implement streamed logs for plan (#33106) 2023-05-04 10:02:06 +02:00
plan-emptydiff Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plan-fail-condition add command test for errored plan 2022-12-14 16:23:31 -05:00
plan-import-config-gen plannable import: safer config generation and schema filters (#33232) 2023-05-24 11:16:05 +01:00
plan-invalid Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plan-out-backend Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plan-out-backend-legacy Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plan-provider-input terraform: use hcl.MergeBodies instead of configs.MergeBodies for pro… (#29000) 2021-06-25 08:48:47 -04:00
plan-replace Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plan-vars Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
providers Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
providers-lock Ignore existing package hashes for providers lock command (#31389) 2022-07-20 13:27:24 +01:00
providers-schema json-output: Release format version 1.0 2021-10-06 11:13:06 -04:00
push Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push-backend-new Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push-input Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push-input-partial Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push-no-remote Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push-no-upload Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push-tfvars Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh-empty Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh-output Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh-targeted Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh-unset-var Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
refresh-var Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
show Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
show-corrupt-statefile command: fix panic on show when state file is invalid or unavailable (#31444) 2022-07-15 17:31:56 +01:00
show-json Include sensitive metadata from the schema when building the json state output (#33059) 2023-04-24 10:52:44 +02:00
show-json-sensitive json-output: Add output type to JSON format 2022-04-27 13:30:15 -04:00
show-json-state json-output: Add output type to JSON format 2022-04-27 13:30:15 -04:00
state-list-backend-custom Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-list-backend-default Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-list-nested-modules Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-pull-backend Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-push-bad-lineage Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-push-good Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-push-replace-match Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-push-serial-newer Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state-push-serial-older Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
test-fails Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
test-passes Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
validate-invalid check for duplicate import blocks (#33190) 2023-05-12 23:14:44 +01:00
validate-valid json-output: Release format version 1.0 2021-10-06 11:13:06 -04:00
variables Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
empty-file Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
statelocker.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00