opentofu/terraform
James Bardin d31fe5ab9d delete outputs during destroy
Now that outputs are always evaluated, we still need a way to remove
them from state when they are destroyed.

Previously, outputs were removed during destroy from the same
"Applyable" node type that evaluates them. Now that we need to possibly
both evaluate and remove output during an apply, we add a new node -
NodeDestroyableOutput.

This new node is added to the graph by the DestroyOutputTransformer,
which make the new destroy node depend on all descendants of the output
node.  This ensures that the output remains in the state as long as
everything which may interpolate the output still exists.
2018-01-29 19:30:04 -05:00
..
test-fixtures add destroy provisioner test with locals, outputs 2018-01-29 18:01:58 -05:00
context_apply_test.go delete outputs during destroy 2018-01-29 19:30:04 -05:00
context_components.go terraform: switch to a component factory 2016-10-11 22:17:29 +08:00
context_graph_type.go terraform: wip moving validation to new graph 2017-01-25 12:28:07 -08:00
context_import_test.go write provider to state for import nodes 2017-11-07 21:05:37 -05:00
context_import.go core: remove shadow graph infrastructure 2017-08-28 08:40:22 -07:00
context_input_test.go rewrite all of the test state string for providers 2017-11-07 13:49:43 -05:00
context_plan_test.go add test checking CloseProvider 2018-01-04 15:00:09 -05:00
context_refresh_test.go return tfdiags.Diagnostics from validation methods 2017-11-28 11:15:29 -08:00
context_test.go add destroy provisioner test with locals, outputs 2018-01-29 18:01:58 -05:00
context_validate_test.go return tfdiags.Diagnostics from validation methods 2017-11-28 11:15:29 -08:00
context.go check state version during init 2017-12-15 11:17:59 -05:00
debug_test.go Update tests for the new ProviderResolver interface 2017-06-09 14:03:59 -07:00
debug.go terraform: fix compilation by complying with interface 2017-01-20 20:45:06 -08:00
diff_test.go core: don't compare attribute values in Diff.Same 2017-11-03 16:11:13 -07:00
diff.go don't ignore partial containers in diffs 2018-01-17 19:13:32 -05:00
edge_destroy.go terraform: starting CBD, destroy edge for the destroy relationship 2016-10-19 13:38:52 -07:00
eval_apply.go core: don't advertise data source destroy via hooks 2017-09-01 17:55:05 -07:00
eval_check_prevent_destroy.go terraform: prevent_destroy works for decreasing count 2016-10-28 21:31:47 -04:00
eval_context_builtin_test.go terraform: provider input should be scoped by path 2015-06-24 09:34:21 -07:00
eval_context_builtin.go pass providers into modules via config 2017-11-06 21:57:06 -05:00
eval_context_mock.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
eval_context.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
eval_count_boundary.go terraform: new graph fixes ".0" and "" boundaries on counts 2016-10-19 13:38:52 -07:00
eval_count_computed.go terraform: detect compute counts and show a nicer error 2016-11-11 11:07:17 -08:00
eval_count.go terraform: catch scenario where both "foo" and "foo.0" are in state 2015-03-01 21:28:41 -08:00
eval_diff_test.go don't ignore partial containers in diffs 2018-01-17 19:13:32 -05:00
eval_diff.go don't ignore partial containers in diffs 2018-01-17 19:13:32 -05:00
eval_error.go core: [refactor] store Deposed resource instances as a list 2015-03-04 12:25:59 -06:00
eval_filter_operation.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_filter.go terraform: more eval stuff 2015-02-19 12:07:54 -08:00
eval_if.go core: [refactor] pull Deposed out of Tainted list 2015-03-04 12:25:47 -06:00
eval_import_state.go terraform: import verifies the refresh results in non-nil state 2016-05-11 13:02:36 -07:00
eval_interpolate_test.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_interpolate.go use the inherited provider configs in the graph 2017-10-27 09:08:15 -04:00
eval_local_test.go core: evaluate locals and return them for interpolation 2017-08-21 15:15:25 -07:00
eval_local.go don't evaluate locals during destroy 2017-09-28 12:56:25 -04:00
eval_noop.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_output_test.go Check for multi-values maps in output too 2016-10-07 15:09:03 -04:00
eval_output.go output warning flag 2017-11-28 14:18:54 -05:00
eval_provider_test.go add test checking CloseProvider 2018-01-04 15:00:09 -05:00
eval_provider.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
eval_provisioner_test.go core: close provider/provisioner connections 2015-06-19 21:52:50 +02:00
eval_provisioner.go core: close provider/provisioner connections 2015-06-19 21:52:50 +02:00
eval_read_data.go core: don't force data resource id diff to be empty 2016-09-24 12:48:58 -07:00
eval_refresh.go providers/aws: security group import imports rules 2016-05-11 13:02:36 -07:00
eval_resource.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_sequence_test.go terraform: Refresh, Read/Write state 2015-02-19 12:08:00 -08:00
eval_sequence.go terraform: don't validate computed values in validate 2017-01-27 21:15:43 -08:00
eval_state_test.go Add tests and fix last issues 2016-05-26 19:56:03 -05:00
eval_state.go remove modules from state 2017-11-08 19:11:53 -05:00
eval_test.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_validate_selfref_test.go terraform: validate self references 2017-01-25 21:00:45 -08:00
eval_validate_selfref.go terraform: validate self references 2017-01-25 21:00:45 -08:00
eval_validate_test.go Detect and reject unknown attributes in "connection" blocks 2017-04-06 13:46:43 -07:00
eval_validate.go add validation for the new connection field 2017-12-26 16:27:18 -05:00
eval_variable_test.go core: basic test of EvalVariableBlock 2017-04-04 12:16:19 -07:00
eval_variable.go core: EvalVariableBlock to decode maps and slices more carefully 2017-04-07 17:05:14 -07:00
eval.go terraform+dag: Set lower log levels 2017-08-14 11:43:45 +02:00
evaltree_provider.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
features.go output warning flag 2017-11-28 14:18:54 -05:00
graph_builder_apply_test.go udpate test graph outputs 2017-11-02 15:29:51 -04:00
graph_builder_apply.go delete outputs during destroy 2018-01-29 19:30:04 -05:00
graph_builder_destroy_plan.go terraform: new Graph API that can return the graph for each op 2016-12-02 22:56:22 -05:00
graph_builder_import.go group the provider transformations 2017-11-02 15:00:06 -04:00
graph_builder_input.go use an EvalOpFilter for module variables 2017-10-02 16:20:29 -04:00
graph_builder_plan_test.go core: graph nodes and edges for local values 2017-08-21 15:15:25 -07:00
graph_builder_plan.go run RemovedModuleTransformer before References 2017-11-09 10:34:56 -05:00
graph_builder_refresh_test.go core: Test for new refresh graph behaviour 2017-05-12 15:45:06 -07:00
graph_builder_refresh.go group the provider transformations 2017-11-02 15:00:06 -04:00
graph_builder_test.go terraform: remove legacy graph builder 2017-01-26 15:18:42 -08:00
graph_builder_validate.go terraform: expand count on resources during validation 2017-01-25 12:39:08 -08:00
graph_builder.go terraform: remove legacy graph builder 2017-01-26 15:18:42 -08:00
graph_dot_test.go terraform: remove ConnectDependents and related interfaces 2017-02-03 14:25:54 +01:00
graph_dot.go Remove dot package 2016-11-14 08:50:34 -05:00
graph_interface_subgraph.go terraform: subpath context setting 2015-05-01 14:19:32 -07:00
graph_test.go terraform: remove ConnectDependents and related interfaces 2017-02-03 14:25:54 +01:00
graph_walk_context.go remove commented out fields 2017-11-07 10:15:11 -05:00
graph_walk_operation.go terraform: start Import function, totally untested 2016-05-11 13:02:30 -07:00
graph_walk_test.go terraform: trying this graphwalker thing 2015-02-19 12:07:56 -08:00
graph_walk.go Replace DebugGraphs with the Graph's methods 2016-11-14 08:52:18 -05:00
graph.go terraform+dag: Set lower log levels 2017-08-14 11:43:45 +02:00
graphtype_string.go Update various files for new version of "stringer" 2017-12-11 13:26:29 -08:00
hook_mock.go terraform: PostProvision hook gets the error from the provision step 2017-01-20 20:21:12 -08:00
hook_stop_test.go terraform: stopHook and tests 2014-07-02 16:16:38 -07:00
hook_stop.go terraform: PostProvision hook gets the error from the provision step 2017-01-20 20:21:12 -08:00
hook_test.go core: add testHook for testing correct interaction with hooks 2017-09-01 17:55:05 -07:00
hook.go terraform: PostProvision hook gets the error from the provision step 2017-01-20 20:21:12 -08:00
instancetype_string.go Update various files for new version of "stringer" 2017-12-11 13:26:29 -08:00
instancetype.go core: formalize resource addressing 2015-03-31 15:04:10 -05:00
interpolate_test.go core: evaluate locals and return them for interpolation 2017-08-21 15:15:25 -07:00
interpolate.go go fmt 2017-12-26 13:26:38 -05:00
module_dependencies_test.go udpate test graph outputs 2017-11-02 15:29:51 -04:00
module_dependencies.go go fmt 2017-12-26 13:26:38 -05:00
node_count_boundary.go terraform: new graph fixes ".0" and "" boundaries on counts 2016-10-19 13:38:52 -07:00
node_data_destroy.go terraform: data source on refresh should just delete from state 2017-02-03 20:58:03 +01:00
node_data_refresh_test.go Fix swallowed tests in terraform package tests 2017-07-20 02:23:43 -07:00
node_data_refresh.go write providers to state for data resources 2017-11-07 21:05:21 -05:00
node_local.go always evaluate locals, even during destroy 2018-01-29 16:16:41 -05:00
node_module_removed.go make NodeModuleRemoved a GraphNodeReferencer 2017-11-09 10:30:55 -05:00
node_module_variable_test.go terraform: tests for module variable node 2016-10-19 13:38:51 -07:00
node_module_variable.go use an EvalOpFilter for module variables 2017-10-02 16:20:29 -04:00
node_output_orphan.go make NodeOutputOrphan referenceable 2017-11-09 10:52:46 -05:00
node_output.go delete outputs during destroy 2018-01-29 19:30:04 -05:00
node_provider_abstract.go save resolved providers for resources to state 2017-11-07 13:09:36 -05:00
node_provider_disabled.go cleanup 2017-10-27 09:08:15 -04:00
node_provider.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
node_provisioner.go terraform: new provisioner node 2017-01-26 21:02:55 -08:00
node_resource_abstract_count.go terraform: don't validate computed values in validate 2017-01-27 21:15:43 -08:00
node_resource_abstract.go ProvidedBy return value is a single string 2017-11-06 14:27:01 -05:00
node_resource_apply.go core: interpolate the count config during the apply walk 2018-01-19 13:06:00 -08:00
node_resource_destroy_test.go terraform: Destroy node should only include deposed for specific index 2016-11-29 09:16:18 -08:00
node_resource_destroy.go write provider to state for refresh nodes 2017-11-07 21:05:28 -05:00
node_resource_plan_destroy.go terraform: Destroy node should only include deposed for specific index 2016-11-29 09:16:18 -08:00
node_resource_plan_instance.go save resolved providers for resources to state 2017-11-07 13:09:36 -05:00
node_resource_plan_orphan.go terraform: Destroy node should only include deposed for specific index 2016-11-29 09:16:18 -08:00
node_resource_plan.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
node_resource_refresh_test.go Fix swallowed tests in terraform package tests 2017-07-20 02:23:43 -07:00
node_resource_refresh.go write provider to state for refresh nodes 2017-11-07 21:05:28 -05:00
node_resource_validate.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
node_root_variable.go terraform: RootVariableTransform 2016-10-19 13:38:51 -07:00
path.go reverse the merge order for cached provider Input 2017-10-27 09:08:15 -04:00
plan_test.go Add warning to mismatched plan state 2017-07-17 10:41:29 -04:00
plan.go Standardize on log level "WARN" rather than "WARNING" 2018-01-16 18:05:26 -08:00
resource_address_test.go core: stabilize ResourceAddress.Less results 2017-09-01 17:55:05 -07:00
resource_address.go optimization:Merge slices 2017-09-13 21:08:41 +08:00
resource_provider_mock_test.go terraform: provider mock should close itself to find bugs 2015-06-29 10:33:37 -07:00
resource_provider_mock.go minor race issue in mockResourceProvider 2017-12-20 09:18:38 -05:00
resource_provider.go core: terraform.ResourceProvider.GetSchema method 2017-10-17 07:23:41 -07:00
resource_provisioner_mock_test.go terraform: Adding mock resource provisioner 2014-07-10 11:38:56 -07:00
resource_provisioner_mock.go terraform: switch to Context for stop, Stoppable provisioners 2017-01-26 15:03:27 -08:00
resource_provisioner.go terraform: switch to Context for stop, Stoppable provisioners 2017-01-26 15:03:27 -08:00
resource_test.go core: check for negative indices in ResourceConfig.get 2017-12-12 09:18:38 -08:00
resource.go core: check for negative indices in ResourceConfig.get 2017-12-12 09:18:38 -08:00
schemas.go core: terraform.ResourceProvider.GetSchema method 2017-10-17 07:23:41 -07:00
semantics_test.go terraform: user friendly error when using old map overrides 2016-12-09 15:58:24 -05:00
semantics.go terraform: remove GraphNodeModule 2017-01-26 20:01:39 -08:00
state_add_test.go Set proper Mode when moving a data source in state 2016-11-21 18:26:29 -05:00
state_add.go Set proper Mode when moving a data source in state 2016-11-21 18:26:29 -05:00
state_filter_test.go terraform: StateFilter handles cases where ResourceState has no type 2017-01-21 10:24:03 -08:00
state_filter.go fix sorting of module resources during state mv 2017-02-23 18:27:16 -05:00
state_test.go Merge pull request #15448 from hashicorp/jbardin/state-meta-equal 2017-08-30 16:00:00 -04:00
state_upgrade_v1_to_v2_test.go terraform: convert empty path to root path in V1 state 2017-03-21 11:37:12 -07:00
state_upgrade_v1_to_v2.go terraform: convert empty path to root path in V1 state 2017-03-21 11:37:12 -07:00
state_upgrade_v2_to_v3.go terraform: V1 to V2 upgrade should treat nil path as root path 2017-03-21 11:12:44 -07:00
state_v1.go core: Introduce state v3 and upgrade process 2016-06-09 10:49:49 +01:00
state.go check state version during init 2017-12-15 11:17:59 -05:00
terraform_test.go reset old ignore_changes test back to correct diff 2018-01-17 15:31:21 -05:00
test_failure Rename VersionSet to Constraints 2017-06-09 14:03:59 -07:00
testing.go terraform: support backends in the state 2017-01-26 14:33:49 -08:00
transform_attach_config_provider.go pass providers into modules via config 2017-11-06 21:57:06 -05:00
transform_attach_config_resource.go terraform: enable shadow graph and destroy resource mode with addr 2016-10-22 12:12:30 -07:00
transform_attach_state.go terraform: passing test for destroy edge for module only 2017-02-07 19:12:03 -08:00
transform_config_flat_test.go terraform: FlatConfigTransformer 2016-10-19 13:38:53 -07:00
transform_config_flat.go terraform: CBD makes the proper edge connections for dependent resources 2016-10-19 13:38:53 -07:00
transform_config_old.go terraform: remove config transformer old 2017-01-26 19:57:46 -08:00
transform_config_test.go terraform: ConfigTransformer has Unique and mode filters 2017-01-22 12:58:18 -08:00
transform_config.go pass providers into modules via config 2017-11-06 21:57:06 -05:00
transform_count_boundary.go terraform: new graph fixes ".0" and "" boundaries on counts 2016-10-19 13:38:52 -07:00
transform_deposed.go save resolved providers for resources to state 2017-11-07 13:09:36 -05:00
transform_destroy_cbd_test.go terraform: CBD edge should ignore "index" 2017-02-07 10:53:12 -08:00
transform_destroy_cbd.go terraform: CBD edge should ignore "index" 2017-02-07 10:53:12 -08:00
transform_destroy_edge_test.go terraform: passing test for destroy edge for module only 2017-02-07 19:12:03 -08:00
transform_destroy_edge.go group the provider transformations 2017-11-02 15:00:06 -04:00
transform_diff_test.go terraform: remove diff transformer test that no longer happens 2016-10-19 13:38:52 -07:00
transform_diff.go terraform: new apply graph understands destroying deposed only 2016-11-28 14:34:24 -08:00
transform_expand_test.go implement dag.Subgrapher interface 2016-11-14 08:50:34 -05:00
transform_expand.go terraform: more dead code removal 2017-01-26 19:47:02 -08:00
transform_import_provider.go terraform: verify import providers only depend on vars 2016-11-09 15:09:13 -08:00
transform_import_state.go write provider to state for import nodes 2017-11-07 21:05:37 -05:00
transform_local.go core: graph nodes and edges for local values 2017-08-21 15:15:25 -07:00
transform_module_variable_test.go terraform: module variables should be pruned if nothing depends on them 2016-11-04 18:58:03 -07:00
transform_module_variable.go use an EvalOpFilter for module variables 2017-10-02 16:20:29 -04:00
transform_orphan_count_test.go terraform: proper "what to orphan" on zero/one boundary logic 2016-11-08 13:59:29 -08:00
transform_orphan_count.go terraform: fix a typo found during review 2016-11-09 08:10:09 -08:00
transform_orphan_output.go replacing orphaned with removed 2017-11-08 22:10:43 -05:00
transform_orphan_resource_test.go terraform: don't prune state on init() 2016-12-02 11:48:34 -05:00
transform_orphan_resource.go terraform: don't prune state on init() 2016-12-02 11:48:34 -05:00
transform_output.go delete outputs during destroy 2018-01-29 19:30:04 -05:00
transform_provider_test.go error out when a referenced provider is missing 2017-11-13 20:41:38 -05:00
transform_provider.go use the full provider name for CloseProvider 2018-01-04 15:03:27 -05:00
transform_provisioner_test.go terraform: new provisioner node 2017-01-26 21:02:55 -08:00
transform_provisioner.go terraform: remove flatten, forever 2017-01-26 21:03:27 -08:00
transform_reference_test.go terraform: tests for ReferenceMap for module paths 2016-11-12 08:24:09 -08:00
transform_reference.go delete outputs during destroy 2018-01-29 19:30:04 -05:00
transform_removed_modules.go only add nodes in RemovedModuleTransformer 2017-11-09 10:32:01 -05:00
transform_resource_count.go WIP reference providers by full name 2017-11-02 15:00:06 -04:00
transform_root_test.go terraform: convert root transform test to use new config transform 2017-01-26 19:40:46 -08:00
transform_root.go terraform: provider transform is converted to new graph world view 2017-01-26 20:58:22 -08:00
transform_state.go terraform: implement destroy planning basics from state 2016-10-22 12:12:29 -07:00
transform_targets_test.go core: Allow downstream targeting of certain node types 2017-05-11 11:57:46 -07:00
transform_targets.go remove broken outputs from targeted graph 2017-10-02 16:20:29 -04:00
transform_transitive_reduction_test.go terraform: convert all tests to use the new config transformer 2017-01-26 19:56:16 -08:00
transform_transitive_reduction.go terraform: add TransitiveReductionTransformer 2015-02-27 19:18:04 -08:00
transform_variable.go terraform: RootVariableTransform 2016-10-19 13:38:51 -07:00
transform_vertex_test.go terraform: GraphVertexTransformers 2015-02-19 12:07:57 -08:00
transform_vertex.go terraform: GraphVertexTransformers 2015-02-19 12:07:57 -08:00
transform.go add transform step logs from GraphTransformMulti 2017-11-02 16:38:32 -04:00
ui_input_mock.go terraform: Input() asks for variable inputs 2014-09-28 23:37:36 -07:00
ui_input_prefix_test.go terraform: prefix the Id for configuring providers 2014-09-29 10:36:49 -07:00
ui_input_prefix.go terraform: Make output more machine-like 2014-09-29 12:52:48 -07:00
ui_input.go helper/scheam: support UI defaults 2014-09-29 14:00:35 -07:00
ui_output_callback_test.go terraform: provisioners 2015-02-19 12:08:06 -08:00
ui_output_callback.go terraform: provisioners 2015-02-19 12:08:06 -08:00
ui_output_mock_test.go terraform: UIOutput interface 2014-10-04 09:00:07 -07:00
ui_output_mock.go minor race fix in tests 2017-10-02 16:19:01 -04:00
ui_output_provisioner_test.go terraform: no longer require uiOutput, do it auto in Hook 2014-10-04 16:24:07 -07:00
ui_output_provisioner.go terraform: no longer require uiOutput, do it auto in Hook 2014-10-04 16:24:07 -07:00
ui_output.go terraform: UIOutput interface 2014-10-04 09:00:07 -07:00
upgrade_state_v1_test.go Fix swallowed tests in terraform package tests 2017-07-20 02:23:43 -07:00
upgrade_state_v2_test.go core: Add test for V2->V3 state upgrade 2016-06-09 11:16:34 +01:00
user_agent.go use the new version package 2017-10-19 21:48:08 -04:00
util_test.go Resolve resource provider types in config package 2017-06-09 14:03:59 -07:00
util.go Resolve resource provider types in config package 2017-06-09 14:03:59 -07:00
variables_test.go Add failing test for GH-10155 2016-11-16 18:20:59 -05:00
variables.go Return an error for setting a non-map to a map 2016-11-17 11:10:43 -05:00
version_required.go use the new version package 2017-10-19 21:48:08 -04:00
version.go use the new version package 2017-10-19 21:48:08 -04:00
walkoperation_string.go Update various files for new version of "stringer" 2017-12-11 13:26:29 -08:00