terraform/terraform
Kristin Laemmert 196c183dda
terraform: remove state from `validate` graph walk (#26063)
This pull reverts a recent change to backend/local which created two context, one with and one without state. Instead I have removed the state entirely from the validate graph (by explicitly passing a states.NewState() to the validate graph builder).

This changed caused a test failure, which (ty so much for the help) @jbardin discovered was inaccurate all along: the test's call to `Validate()` was actually what was removing the output from state. The new expected test output matches terraform's actual behavior on the command line: if you use -target to destroy a resource, an output that references only that resource is *not* removed from state even though that test would lead you to believe it did.

This includes two tests to cover the expected behavior:

TestPlan_varsUnset has been updated so it will panic if it gets more than one request to input a variable
TestPlan_providerArgumentUnset covers #26035

Fixes #26035, #26027
2020-08-31 15:45:39 -04:00
..
testdata re-add ModuleInstance -> Module conversion 2020-08-12 10:22:13 -04:00
context.go terraform: remove state from `validate` graph walk (#26063) 2020-08-31 15:45:39 -04:00
context_apply_test.go terraform: remove state from `validate` graph walk (#26063) 2020-08-31 15:45:39 -04:00
context_components.go terraform: Remove some addrs.Provider.LegacyString uses 2020-04-06 09:24:23 -07:00
context_components_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
context_eval_test.go terraform console: enable use of impure functions (#25442) 2020-07-01 09:43:07 -04:00
context_fixtures_test.go Mildwonkey/terraform tests (targeting integration branch) (#24513) 2020-04-06 09:24:23 -07:00
context_graph_type.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
context_import.go Mildwonkey/ps import (#24412) 2020-03-20 08:15:29 -04:00
context_import_test.go terraform: Relax provider config ref constraints 2020-06-29 10:58:20 -04:00
context_input.go convert /terraform to use new provider config 2020-03-11 11:21:45 -04:00
context_input_test.go Mildwonkey/terraform tests (targeting integration branch) (#24513) 2020-04-06 09:24:23 -07:00
context_plan_test.go re-add ModuleInstance -> Module conversion 2020-08-12 10:22:13 -04:00
context_refresh_test.go cleanup refresh test 2020-05-13 13:58:11 -04:00
context_test.go check for data source changed during plan 2020-05-13 13:58:11 -04:00
context_validate_test.go module and output depends_on validation tests 2020-06-16 13:17:21 -04:00
diff.go prevent panics when encountering nil diffs 2019-09-04 16:51:42 -04:00
diff_test.go re-count the flatmapped containers 2018-11-16 15:26:16 -05:00
eval.go don't log path in EvalRaw 2020-03-25 17:03:06 -04:00
eval_apply.go plans: Update error message for apply validation (#21312) 2020-06-05 15:08:10 -04:00
eval_check_prevent_destroy.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_context.go add EvalContext.WithPath 2020-03-25 17:03:06 -04:00
eval_context_builtin.go lock was missing in the call to GetVariableValue 2020-04-08 09:59:27 -04:00
eval_context_builtin_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
eval_context_mock.go Mildwonkey/terraform tests (targeting integration branch) (#24513) 2020-04-06 09:24:23 -07:00
eval_count.go fixup mangled comments 2020-04-09 10:13:03 -04:00
eval_count_boundary.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
eval_diff.go rename and cleanup use of count/for_each eval func 2020-04-08 17:21:23 -04:00
eval_diff_test.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_error.go
eval_filter.go
eval_filter_operation.go
eval_for_each.go terraform: check for unknows in for_each type before validating set (#25426) 2020-06-29 09:12:36 -04:00
eval_for_each_test.go terraform: check for unknows in for_each type before validating set (#25426) 2020-06-29 09:12:36 -04:00
eval_if.go
eval_import_state.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
eval_lang.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_local.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_local_test.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_noop.go
eval_output.go validate depends_on for outputs 2020-06-16 12:40:48 -04:00
eval_output_test.go validate depends_on for outputs 2020-06-16 12:40:48 -04:00
eval_provider.go terraform: Relax provider config ref constraints 2020-06-29 10:58:20 -04:00
eval_provider_test.go terraform: Relax provider config ref constraints 2020-06-29 10:58:20 -04:00
eval_provisioner.go ResourceProvisioner to provisioners.Interface 2018-10-16 19:11:09 -07:00
eval_provisioner_test.go replace provider and provisioner types in tests 2018-10-16 19:11:09 -07:00
eval_read_data.go add a way to force depends_on behavior of data 2020-06-04 18:03:32 -04:00
eval_read_data_apply.go Don't use plans.Update for data sources 2020-05-13 13:58:11 -04:00
eval_read_data_plan.go terraform: Fix createEmptyBlocks NestingSingle bug 2020-08-27 20:29:36 -04:00
eval_read_data_plan_test.go terraform: Fix createEmptyBlocks NestingSingle bug 2020-08-27 20:29:36 -04:00
eval_refresh.go Make sure CBD is correct during apply, and saved 2020-05-14 15:46:08 -04:00
eval_sequence.go core: EvalSequence to handle EvalEarlyExitError 2018-10-16 18:49:20 -07:00
eval_sequence_test.go
eval_state.go Make sure CBD is correct during apply, and saved 2020-05-14 15:46:08 -04:00
eval_state_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
eval_state_upgrade.go remove extra attrs found in state json 2020-08-06 22:55:36 -04:00
eval_state_upgrade_test.go remove extra attrs found in state json 2020-08-06 22:55:36 -04:00
eval_test.go
eval_validate.go split depends_on validation into its own function 2020-06-16 12:38:05 -04:00
eval_validate_selfref.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_validate_selfref_test.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_validate_test.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
eval_variable.go eval variables with unknown expansion data 2020-04-08 15:37:38 -04:00
evaltree_provider.go terraform: Relax provider config ref constraints 2020-06-29 10:58:20 -04:00
evaluate.go return known empty containers during plan 2020-07-23 17:37:07 -04:00
evaluate_test.go core: path.module, path.root, path.cwd use fwd slashes on all platforms 2018-12-19 13:47:42 -08:00
evaluate_valid.go Mildwonkey/terraform tests (targeting integration branch) (#24513) 2020-04-06 09:24:23 -07:00
evaluate_valid_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
features.go output warning flag 2017-11-28 14:18:54 -05:00
graph.go add EvalContext.WithPath 2020-03-25 17:03:06 -04:00
graph_builder.go update terraform to work with new dag changes 2020-02-19 14:53:19 -05:00
graph_builder_apply.go terraform: remove DisableReduce from refresh, plan and apply graphs (#25824) 2020-08-14 14:13:33 -04:00
graph_builder_apply_test.go terraform: remove DisableReduce from refresh, plan and apply graphs (#25824) 2020-08-14 14:13:33 -04:00
graph_builder_destroy_plan.go make the root node a nodeCloseModule for root 2020-04-02 16:00:36 -04:00
graph_builder_eval.go Add expansion transformer to eval graph 2020-04-27 13:09:08 -04:00
graph_builder_import.go terraform: Relax provider config ref constraints 2020-06-29 10:58:20 -04:00
graph_builder_plan.go terraform: remove DisableReduce from refresh, plan and apply graphs (#25824) 2020-08-14 14:13:33 -04:00
graph_builder_plan_test.go terraform: remove DisableReduce from refresh, plan and apply graphs (#25824) 2020-08-14 14:13:33 -04:00
graph_builder_refresh.go terraform: remove DisableReduce from refresh, plan and apply graphs (#25824) 2020-08-14 14:13:33 -04:00
graph_builder_refresh_test.go update test strings 2020-05-12 11:07:00 -04:00
graph_builder_test.go core: Get tests compiling again 2018-10-16 18:46:46 -07:00
graph_builder_validate.go add module expansion to validation 2020-04-05 12:13:48 -04:00
graph_dot.go
graph_dot_test.go
graph_interface_subgraph.go rename GraphNodeSubPath -> GraphNodeModuleInstance 2020-03-10 17:25:11 -04:00
graph_test.go update some graph builder tests 2018-10-16 19:14:11 -07:00
graph_walk.go add EvalContext.WithPath 2020-03-25 17:03:06 -04:00
graph_walk_context.go add EvalContext.WithPath 2020-03-25 17:03:06 -04:00
graph_walk_operation.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
graph_walk_test.go
graphtype_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
hook.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
hook_mock.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
hook_stop.go command: Fix TestPlan_shutdown 2018-11-08 08:57:11 -08:00
hook_stop_test.go
hook_test.go add locks to testHook 2020-04-08 10:02:43 -04:00
instance_expanders.go remove requiresInstanceExpansion 2020-05-28 21:30:44 -04:00
instancetype.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
instancetype_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
node_count_boundary.go core: Update EvalCountFixZeroOneBoundaryGlobal for new state types 2018-10-16 19:14:11 -07:00
node_data_destroy.go rename NodeDestroyableDataResourceInstance 2018-12-18 13:22:21 -05:00
node_data_refresh.go Targets was being dropped in data source nodes 2020-06-10 15:36:44 -04:00
node_data_refresh_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
node_local.go you cannot refer to destroy nodes 2020-07-20 09:49:47 -04:00
node_module_expand.go you cannot refer to destroy nodes 2020-07-20 09:49:47 -04:00
node_module_variable.go terraform: Eval module call arguments for import 2020-08-17 17:14:12 -04:00
node_module_variable_test.go rename module variables and remove extra methods 2020-04-08 14:41:52 -04:00
node_output.go you cannot refer to destroy nodes 2020-07-20 09:49:47 -04:00
node_provider.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
node_provider_abstract.go remove unused interfaces 2020-06-24 10:45:58 -04:00
node_provider_disabled.go remove unused interfaces 2020-06-24 10:45:58 -04:00
node_provider_eval.go terraform: remove no-longer-necessary type strings 2020-02-14 15:41:31 -08:00
node_provisioner.go rename GraphNodeSubPath -> GraphNodeModuleInstance 2020-03-10 17:25:11 -04:00
node_resource_abstract.go core: NodeAbstractResourceInstance.Provider correct implied provider 2020-08-24 11:41:28 -07:00
node_resource_abstract_test.go core: NodeAbstractResourceInstance.Provider correct implied provider 2020-08-24 11:41:28 -07:00
node_resource_apply.go ignore module indices in pre-expansion targeting 2020-06-10 15:39:29 -04:00
node_resource_apply_instance.go remove requiresInstanceExpansion 2020-05-28 21:30:44 -04:00
node_resource_destroy.go don't store an entire Resource in each Instance 2020-07-10 13:35:13 -04:00
node_resource_destroy_deposed.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
node_resource_plan.go ignore module indices in pre-expansion targeting 2020-06-10 15:39:29 -04:00
node_resource_plan_destroy.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
node_resource_plan_instance.go add dependsOn to evalDataRead 2020-06-04 18:03:03 -04:00
node_resource_plan_orphan.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
node_resource_refresh.go don't store an entire Resource in each Instance 2020-07-10 13:35:13 -04:00
node_resource_refresh_test.go cleanup some expanders 2020-03-25 17:03:06 -04:00
node_resource_validate.go Add Path to more nodes that require it. 2020-03-25 17:03:06 -04:00
node_root_variable.go eval variables with unknown expansion data 2020-04-08 15:37:38 -04:00
node_value.go prune unused values based on behavior 2020-04-02 16:00:36 -04:00
plan.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
provider_mock.go Add support for provider metadata to modules. (#22583) 2020-03-05 16:53:24 -08:00
provisioner_mock.go check resource-level connections block for refs 2019-12-12 12:57:23 -05:00
resource.go configs: finish deprecation of the config package by removing the remaining used functions into configs (#25996) 2020-08-26 14:39:18 -04:00
resource_address.go Typo: heirarchical => hierarchical 2020-07-23 15:09:22 +02:00
resource_address_test.go prune references to config/module 2019-08-07 17:50:59 -04:00
resource_mode.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
resource_mode_string.go prune references to config/module 2019-08-07 17:50:59 -04:00
resource_provider.go terraform: return `initialization required` error when provider schemas not found (#24715) 2020-04-21 16:29:27 -04:00
resource_provider_mock.go minor race issue in mockResourceProvider 2017-12-20 09:18:38 -05:00
resource_provider_mock_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
resource_provisioner.go Run gofmt 2020-08-28 09:41:00 -04:00
resource_provisioner_mock.go move "configschema" from "config" to "configs" 2018-10-16 18:50:29 -07:00
resource_provisioner_mock_test.go replace provider and provisioner types in tests 2018-10-16 19:11:09 -07:00
resource_test.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
schemas.go terraform: Remove some addrs.Provider.LegacyString uses 2020-04-06 09:24:23 -07:00
schemas_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
state.go Add support for provider metadata to modules. (#22583) 2020-03-05 16:53:24 -08:00
state_filter.go restore (via copypaste) terraform.State.Remove 2019-01-03 22:06:30 -05:00
state_test.go prune references to config/module 2019-08-07 17:50:59 -04:00
state_upgrade_v1_to_v2.go
state_upgrade_v2_to_v3.go
state_v1.go
terraform_test.go fix apply tests 2020-05-28 21:30:44 -04:00
testing.go
transform.go helper/logging: Bring the LevelFilter into our own codebase 2019-12-05 15:22:03 -08:00
transform_attach_config_provider.go minor cleanup 2020-03-12 14:54:47 -04:00
transform_attach_config_provider_meta.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
transform_attach_config_resource.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
transform_attach_schema.go terraform: large refactor to use Provider from configs.Resource (#24396) 2020-03-18 08:58:20 -04:00
transform_attach_state.go attach a deep copy of ResourceState 2018-12-17 18:08:53 -05:00
transform_config.go NewNodeAbstractResource accepts a ResourceConfig 2020-03-25 17:03:06 -04:00
transform_config_test.go NewNodeAbstractResource accepts a ResourceConfig 2020-03-25 17:03:06 -04:00
transform_count_boundary.go core: Update EvalCountFixZeroOneBoundaryGlobal for new state types 2018-10-16 19:14:11 -07:00
transform_destroy_cbd.go update terraform to work with new dag changes 2020-02-19 14:53:19 -05:00
transform_destroy_cbd_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_destroy_edge.go completely prune inter-module dependencies 2020-08-19 11:10:12 -04:00
transform_destroy_edge_test.go core: Skip edges between resource instances in different module instances 2020-07-17 08:40:13 -07:00
transform_diff.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
transform_diff_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_expand.go GraphNodeExpand is not used 2020-03-10 17:25:11 -04:00
transform_import_state.go command/import: Fix allow-missing-config option 2020-06-23 14:20:50 -04:00
transform_local.go rename plannable local 2020-05-12 11:07:00 -04:00
transform_module_expansion.go incorrect early return during module transformer 2020-06-06 21:45:05 -04:00
transform_module_variable.go eval variables with unknown expansion data 2020-04-08 15:37:38 -04:00
transform_module_variable_test.go update test strings 2020-05-12 11:07:00 -04:00
transform_orphan_count.go expansion resource and instance orphans 2020-04-02 16:00:35 -04:00
transform_orphan_count_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_orphan_output.go get rid of the NodeOutputOrphan 2020-05-28 21:30:44 -04:00
transform_orphan_resource.go make the root node a nodeCloseModule for root 2020-04-02 16:00:36 -04:00
transform_orphan_resource_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_output.go remove root output eval nodes from destroy 2020-07-07 11:10:15 -04:00
transform_provider.go remove unused interfaces 2020-06-24 10:45:58 -04:00
transform_provider_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_provisioner.go only create one provisioner instance per type 2019-08-21 19:41:56 -04:00
transform_provisioner_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_reference.go add a fixup transformer to connect destroy refs 2020-07-20 09:49:47 -04:00
transform_reference_test.go core: Skip edges between resource instances in different module instances 2020-07-17 08:40:13 -07:00
transform_removed_modules.go pruneUnusedNodesTransformer 2020-05-28 21:30:42 -04:00
transform_resource_count.go s/GraphNodeResource/GraphNodeConfigResource/ 2020-03-16 11:16:23 -04:00
transform_root.go make the root node a nodeCloseModule for root 2020-04-02 16:00:36 -04:00
transform_root_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_state.go cleanup from resource state mods 2020-03-16 11:16:23 -04:00
transform_targets.go re-add ModuleInstance -> Module conversion 2020-08-12 10:22:13 -04:00
transform_targets_test.go TransformTargets cannot depends on knowing Destroy 2020-06-10 15:38:35 -04:00
transform_transitive_reduction.go
transform_transitive_reduction_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
transform_variable.go terraform: ugly huge change to weave in new HCL2-oriented types 2018-10-16 18:46:46 -07:00
transform_vertex.go
transform_vertex_test.go
ui_input.go command/login: Require "yes" to confirm 2020-06-25 11:46:51 -04:00
ui_input_mock.go core: add a context to the UIInput interface 2019-03-08 10:24:40 +01:00
ui_input_prefix.go core: add a context to the UIInput interface 2019-03-08 10:24:40 +01:00
ui_input_prefix_test.go core: add a context to the UIInput interface 2019-03-08 10:24:40 +01:00
ui_output.go
ui_output_callback.go terraform: provisioners 2015-02-19 12:08:06 -08:00
ui_output_callback_test.go
ui_output_mock.go
ui_output_mock_test.go
ui_output_provisioner.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
ui_output_provisioner_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
upgrade_state_v1_test.go
upgrade_state_v2_test.go
user_agent.go httpclient: Introduce composable UserAgent() 2019-08-05 11:07:21 +01:00
util.go Fix negative parallelism and negative semaphore (#23902) 2020-02-12 10:10:52 -05:00
util_test.go
valuesourcetype_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00
variables.go Version tools per Go convention under tools.go 2019-10-17 22:23:39 +02:00
variables_test.go vendor: upgrade go-cty dependency to 1.4.1 (#24983) 2020-05-18 14:10:19 -04:00
version.go httpclient: Introduce composable UserAgent() 2019-08-05 11:07:21 +01:00
version_required.go terraform: Fix required version constraint diags 2020-08-18 09:35:32 -04:00
walkoperation_string.go stringer: Regenerate files with latest version 2019-05-13 15:34:27 +01:00