opentofu/terraform
Mitchell Hashimoto fb29b6a2dc
terraform: destroy edges should never point to self
Fixes #9920

This was an issue caught with the shadow graph. Self references in
provisioners were causing a self-edge on destroy apply graphs.

We need to explicitly check that we're not creating an edge to ourself.
This is also how the reference transformer works.
2016-11-08 12:27:33 -08:00
..
test-fixtures terraform: destroy edges should never point to self 2016-11-08 12:27:33 -08:00
context_apply_test.go terraform: destroy edges should never point to self 2016-11-08 12:27:33 -08:00
context_components.go terraform: switch to a component factory 2016-10-11 22:17:29 +08:00
context_import_test.go terraform: import specific index works [GH-7691] 2016-08-19 19:14:33 -04:00
context_import.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
context_input_test.go Allow the HCL input when prompted 2016-08-10 11:14:31 -04:00
context_plan_test.go Add test fixture for new CBD ancestor fix 2016-11-03 18:31:25 -04:00
context_refresh_test.go terraform: test that data sources can reference other data sources 2016-10-23 18:53:00 -07:00
context_test.go terraform: test that data sources can reference other data sources 2016-10-23 18:53:00 -07:00
context_validate_test.go config: count can't be a SimpleVariable 2016-08-16 13:48:12 -07:00
context.go Merge pull request #9666 from hashicorp/jbardin/debug 2016-11-04 09:03:58 -07:00
debug_test.go Add some basic tests 2016-11-04 11:39:46 -04:00
debug.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
diff_test.go terraform: NewComputed doesn't quit Same logic 2016-11-01 09:53:53 -07:00
diff.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
edge_destroy.go terraform: starting CBD, destroy edge for the destroy relationship 2016-10-19 13:38:52 -07:00
eval_apply.go Fix race on Provisioner.RawConfig 2016-09-26 14:34:05 -04: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 terraform: component uid includes the path 2016-10-11 22:17:29 +08:00
eval_context_mock.go core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -04:00
eval_context.go core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -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.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 terraform: destroy node should not create 2015-02-24 22:45:47 -08:00
eval_diff.go terraform: add test to verify tainted resources don't process 2016-10-27 08:44:59 -04: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 Module variables not being interpolated 2016-05-23 13:44:09 -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 Check for multi-values maps in output too 2016-10-07 15:09:03 -04:00
eval_provider_test.go core: close provider/provisioner connections 2015-06-19 21:52:50 +02:00
eval_provider.go core: close provider/provisioner connections 2015-06-19 21:52:50 +02: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: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_state_test.go Add tests and fix last issues 2016-05-26 19:56:03 -05:00
eval_state.go Add tests and fix last issues 2016-05-26 19:56:03 -05:00
eval_test.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_validate_test.go core: rerun resource validation before plan and apply 2016-07-01 13:12:57 -05:00
eval_validate.go core: rerun resource validation before plan and apply 2016-07-01 13:12:57 -05:00
eval_variable_test.go terraform: allow literal maps to be passed to modules 2016-07-06 09:52:32 -05:00
eval_variable.go core: Set all unknown keys to UnknownVariableValue 2016-07-08 16:44:40 +01:00
eval.go core: demote early exit log from ERROR -> DEBUG 2016-02-24 09:58:33 -06:00
evaltree_provider.go terraform: providers should input/config on import 2016-05-11 13:02:34 -07:00
graph_builder_apply_test.go terraform: new apply graph creates provisioners in modules 2016-11-03 10:25:11 -07:00
graph_builder_apply.go terraform: module variables should be pruned if nothing depends on them 2016-11-04 18:58:03 -07:00
graph_builder_destroy_plan.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
graph_builder_import.go terraform: move references for disable provider transform to old 2016-10-19 15:07:00 -07:00
graph_builder_test.go fix CreateBeforeDestroy with datasources 2016-11-03 17:08:24 -04:00
graph_builder.go re-add "Graph after..." logs 2016-11-04 12:03:16 -04:00
graph_config_node_module_test.go core: Remove module input transformer 2016-04-13 11:15:24 -05:00
graph_config_node_module.go terraform: destroy module nodes show up in plan destroy 2016-10-22 12:12:29 -07:00
graph_config_node_output.go Interpolation also skipped during Validate phase 2016-05-23 13:44:13 -04:00
graph_config_node_provider.go terraform: providers in flattened graphs should depend on the parent 2015-05-01 16:41:49 -07:00
graph_config_node_resource.go Merge pull request #9707 from hashicorp/b-prevent-destroy-count 2016-10-31 13:24:16 -07:00
graph_config_node_test.go terraform: redo how flattening works 2015-05-01 15:18:40 -07:00
graph_config_node_type.go terraform: add variables as graph nodes (no eval yet) 2015-04-30 16:27:20 -07:00
graph_config_node_variable_test.go terraform: set variables in the proper location 2015-05-01 16:29:19 -07:00
graph_config_node_variable.go terraform: Filter untargeted variable nodes 2016-07-29 16:55:30 -05:00
graph_config_node.go terraform: TargetsTransformer on destroy plan 2016-10-22 12:12:30 -07:00
graph_debug.go Record walk order in the debug graph 2016-11-04 11:39:46 -04:00
graph_dot_test.go removed extra parentheses 2015-10-08 15:48:04 +03:00
graph_dot.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
graph_interface_subgraph.go terraform: subpath context setting 2015-05-01 14:19:32 -07:00
graph_test.go terraform: GraphWalkerPanicwrap catches panics during graph walks 2016-11-03 12:08:55 -07:00
graph_walk_context.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04: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 DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
graph.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
graphnodeconfigtype_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00
hook_mock.go terraform: deposed should trigger PostApply hook 2016-10-30 15:24:20 -07:00
hook_stop_test.go terraform: stopHook and tests 2014-07-02 16:16:38 -07:00
hook_stop.go terraform: import state ID should be sent to hook 2016-05-11 13:02:35 -07:00
hook_test.go terraform: initial hook impl 2014-06-26 16:52:15 -07:00
hook.go terraform: import state ID should be sent to hook 2016-05-11 13:02:35 -07:00
instancetype_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00
instancetype.go core: formalize resource addressing 2015-03-31 15:04:10 -05:00
interpolate_test.go terraform: multi-var interpolation should use state for count 2016-10-13 17:57:11 -07:00
interpolate.go terraform: multi-var ordering is by count 2016-11-04 11:07:01 -07:00
node_count_boundary.go terraform: new graph fixes ".0" and "" boundaries on counts 2016-10-19 13:38:52 -07:00
node_module_destroy.go terraform: destroy module nodes show up in plan destroy 2016-10-22 12:12:29 -07:00
node_module_variable_test.go terraform: tests for module variable node 2016-10-19 13:38:51 -07:00
node_module_variable.go terraform: tests for module variable node 2016-10-19 13:38:51 -07:00
node_output_orphan.go terraform: orphan outputs are deleted from the state 2016-10-19 13:38:52 -07:00
node_output.go terraform: interpolation for multi-var checks both ".0" and "" suffix 2016-10-19 13:39:13 -07:00
node_provider_abstract.go terraform: disable providers in new apply graph 2016-10-19 14:54:00 -07:00
node_provider_disabled.go terraform: disable providers in new apply graph 2016-10-19 14:54:00 -07:00
node_provider.go terraform: provider depends on config references 2016-10-19 13:38:52 -07:00
node_resource_abstract.go terraform: TargetsTransformer on destroy plan 2016-10-22 12:12:30 -07:00
node_resource_apply.go terraform: new apply resource node supports data sources 2016-10-20 22:03:48 -07:00
node_resource_destroy.go terraform: enable shadow graph and destroy resource mode with addr 2016-10-22 12:12:30 -07:00
node_resource_plan_destroy.go terraform: implement destroy planning basics from state 2016-10-22 12:12:29 -07:00
node_root_variable.go terraform: RootVariableTransform 2016-10-19 13:38:51 -07:00
path.go terraform: module inputs are passed through to subgraphs 2015-02-19 12:08:01 -08:00
plan_test.go core: Convert context vars to map[string]interface{} 2016-07-18 13:02:54 -05:00
plan.go core: Convert context vars to map[string]interface{} 2016-07-18 13:02:54 -05:00
resource_address_test.go terraform: resource address internal can parse data resource addrs 2016-10-19 14:12:30 -07:00
resource_address.go terraform: resource address internal can parse data resource addrs 2016-10-19 14:12:30 -07: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 Revert "Merge pull request #9536 from hashicorp/f-provider-stop" 2016-10-25 12:00:36 -07:00
resource_provider_test.go terraform: add ResourceProviderFactoryFixed 2014-07-10 09:46:21 -07:00
resource_provider.go Revert "Merge pull request #9536 from hashicorp/f-provider-stop" 2016-10-25 12:00:36 -07:00
resource_provisioner_mock_test.go terraform: Adding mock resource provisioner 2014-07-10 11:38:56 -07:00
resource_provisioner_mock.go Make all terraform package tests pass under -race 2016-07-29 16:12:21 -04:00
resource_provisioner.go core: close provider/provisioner connections 2015-06-19 21:52:50 +02:00
resource_test.go terraform: ResourceConfig.Equal should sort ComputedKeys 2016-10-22 12:00:05 -07:00
resource.go terraform: ResourceConfig.Equal should sort ComputedKeys 2016-10-22 12:00:05 -07:00
semantics_test.go Allow map variables from json 2016-09-27 13:29:14 -04:00
semantics.go Allow map variables from json 2016-09-27 13:29:14 -04:00
shadow_components.go terraform: if components is closed, initialize closed components 2016-10-19 14:10:46 -07:00
shadow_context.go terraform: compared states from shadow graph must be pruned 2016-10-19 15:01:54 -07:00
shadow_resource_provider_test.go terraform: ShadowError returns errors, not the close operation 2016-10-11 22:17:30 +08:00
shadow_resource_provider.go Revert "Merge pull request #9536 from hashicorp/f-provider-stop" 2016-10-25 12:00:36 -07:00
shadow_resource_provisioner_test.go terraform: ResourceProvisioner shadow 2016-10-11 22:17:30 +08:00
shadow_resource_provisioner.go terraform: ResourceProvisioner shadow 2016-10-11 22:17:30 +08:00
shadow.go terraform: Shadow interface, properly string through errors at the right 2016-10-11 22:17:29 +08:00
state_add_test.go terraform: state mv "foo" to "foo.0" with single count 2016-08-19 11:54:53 -04:00
state_add.go Add an InstanceState.Set method to set all fields 2016-08-25 14:41:51 -04:00
state_filter_test.go terraform: test for querying count resources 2016-08-19 11:41:00 -04:00
state_filter.go terraform: filtering on name actually matches name 2016-08-15 14:36:23 -05:00
state_test.go Merge pull request #7320 from dtolnay/conflict 2016-10-14 11:00:46 -05:00
state_upgrade_v1_to_v2.go Ensure better state normalization 2016-08-12 11:09:50 -04:00
state_upgrade_v2_to_v3.go core: Introduce state v3 and upgrade process 2016-06-09 10:49:49 +01:00
state_v1.go core: Introduce state v3 and upgrade process 2016-06-09 10:49:49 +01:00
state.go Merge pull request #7320 from dtolnay/conflict 2016-10-14 11:00:46 -05:00
terraform_test.go Merge pull request #9894 from hashicorp/b-provider-alias 2016-11-07 07:59:33 -08:00
transform_attach_config_provider.go terraform: configure provider aliases in the new apply graph 2016-11-04 16:51:52 -07: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: add destroy nodes, destroys kind of work 2016-10-19 13:38:51 -07: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_test.go terraform: add variables as graph nodes (no eval yet) 2015-04-30 16:27:20 -07:00
transform_config.go Type check variables between modules (#6185) 2016-04-15 12:07:54 -07: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 terraform: deposed should trigger PostApply hook 2016-10-30 15:24:20 -07:00
transform_destroy_cbd_test.go terraform: CBD makes the proper edge connections for dependent resources 2016-10-19 13:38:53 -07:00
transform_destroy_cbd.go terraform: CBD makes the proper edge connections for dependent resources 2016-10-19 13:38:53 -07:00
transform_destroy_edge_test.go terraform: destroy edges should never point to self 2016-11-08 12:27:33 -08:00
transform_destroy_edge.go terraform: destroy edges should never point to self 2016-11-08 12:27:33 -08:00
transform_destroy_test.go terraform: test that depends_on is used for destroy ordering 2016-10-25 11:05:48 -07:00
transform_destroy.go fix CreateBeforeDestroy with datasources 2016-11-03 17:08:24 -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: enable shadow graph and destroy resource mode with addr 2016-10-22 12:12:30 -07:00
transform_expand_test.go terraform: fix tests 2015-02-19 12:08:01 -08:00
transform_expand.go terraform: put quotes before vertex name to avoid false panicwrap 2016-10-23 14:23:36 -07:00
transform_flatten_test.go terraform: add module destroy node to graph 2015-05-01 18:26:35 -07:00
transform_flatten.go remove various typos 2015-09-11 11:56:20 -07:00
transform_import_state.go terraform: import specific index works [GH-7691] 2016-08-19 19:14:33 -04:00
transform_module_destroy_old.go terraform: destroy module nodes show up in plan destroy 2016-10-22 12:12:29 -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 terraform: module variables should be pruned if nothing depends on them 2016-11-04 18:58:03 -07:00
transform_noop_test.go terraform: PruneNoopTransformer 2015-07-20 08:57:34 -07:00
transform_noop.go terraform: remove print 2015-07-20 08:57:35 -07:00
transform_orphan_output.go terraform: orphan outputs are deleted from the state 2016-10-19 13:38:52 -07:00
transform_orphan_test.go core: Orphan addressing / targeting 2016-01-19 17:48:44 -06:00
transform_orphan.go terraform: prevent_destroy works for decreasing count 2016-10-28 21:31:47 -04:00
transform_output_orphan_test.go terraform: new output transform that isn't used yet 2016-10-19 13:38:50 -07:00
transform_output_orphan.go terraform: orphan outputs are deleted from the state 2016-10-19 13:38:52 -07:00
transform_output.go terraform: get tests to not panic on failures 2016-10-19 13:38:51 -07:00
transform_provider_disable.go terraform: disable providers in new apply graph 2016-10-19 14:54:00 -07:00
transform_provider_old.go terraform: disable providers in new apply graph 2016-10-19 14:54:00 -07:00
transform_provider_test.go terraform: move references for disable provider transform to old 2016-10-19 15:07:00 -07:00
transform_provider.go terraform: disable providers in new apply graph 2016-10-19 14:54:00 -07:00
transform_provisioner_test.go terraform: new apply graph creates provisioners in modules 2016-11-03 10:25:11 -07:00
transform_provisioner.go terraform: new apply graph creates provisioners in modules 2016-11-03 10:25:11 -07:00
transform_proxy_test.go terraform: GraphNodeProxy 2015-05-01 11:38:36 -07:00
transform_proxy.go terraform: proxy uses custom edge 2015-05-01 11:41:01 -07:00
transform_reference_test.go terraform: module variables should be pruned if nothing depends on them 2016-11-04 18:58:03 -07:00
transform_reference.go terraform: module variables should be pruned if nothing depends on them 2016-11-04 18:58:03 -07:00
transform_resource_test.go terraform: inner-count dependencies work [GH-1540] 2015-04-18 15:56:43 -07:00
transform_resource.go terraform: InstanceInfo.uniqueId 2016-10-11 22:17:30 +08:00
transform_root_test.go terraform: validation in progress 2015-02-19 12:07:55 -08:00
transform_root.go terraform: prune resources and variables 2015-07-20 08:57:34 -07:00
transform_state.go terraform: implement destroy planning basics from state 2016-10-22 12:12:29 -07:00
transform_targets_test.go core: targeted operations 2015-03-31 14:49:38 -05:00
transform_targets.go terraform: TargetsTransformer on destroy plan 2016-10-22 12:12:30 -07:00
transform_transitive_reduction_test.go terraform: add TransitiveReductionTransformer 2015-02-27 19:18:04 -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 terraform: unify destroy/apply graph builders 2016-10-22 12:12:30 -07: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 fmt 2014-10-10 14:50:35 -07: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 Ensure better state normalization 2016-08-12 11:09:50 -04:00
upgrade_state_v2_test.go core: Add test for V2->V3 state upgrade 2016-06-09 11:16:34 +01:00
util_test.go terraform: Adding a semaphore implementation 2014-10-16 10:04:36 -07:00
util.go Support for multiple providers of the same type 2015-04-20 14:14:34 -07:00
variables_test.go terraform: consistent variable values for booleans 2016-10-31 11:22:26 -07:00
variables.go terraform: fall through on type conversion failure 2016-10-31 11:31:01 -07:00
version.go release: cleanup after v0.7.9 2016-11-04 09:39:49 -07:00
walkoperation_string.go terraform: generate 2016-05-11 13:02:30 -07:00