terraform/terraform
Martin Atkins c63c06d3c4 core: -replace to emit only one warning for incomplete address
If the user gives an index-less address for a resource that expects
instance keys then previously we would've emitted one error per declared
instance of the resource, which is overwhelming and not especially
helpful.

Instead, we'll deal with that check prior to expanding resources into
resource instances, and thus we can report a single error which talks
about all of the instances at once.

This does unfortunately come at the expense of splitting the logic for
dealing with the "force replace" addresses into two places, which will
likely make later maintenance harder. In an attempt to mitigate that,
I've included a comment in each place that mentions the other place, which
hopefully future maintainers will keep up-to-date if that situation
changes.
2021-05-03 15:43:23 -07:00
..
testdata plans: Track an optional extra "reason" for some planned actions 2021-04-29 17:50:46 -07:00
context.go plans: Plan.Mode is now Plan.UIMode 2021-04-30 10:30:56 -07:00
context_apply2_test.go core: Generalize the idea of a "plan mode", vs just destroy flag 2021-04-27 08:23:54 -07:00
context_apply_test.go core: Generalize the idea of a "plan mode", vs just destroy flag 2021-04-27 08:23:54 -07:00
context_components.go remove legacy provisioner types 2020-12-02 12:33:17 -05:00
context_components_test.go remove legacy provisioner types 2020-12-02 12:33:17 -05:00
context_eval_test.go evaluate vars and outputs during import 2020-10-06 17:22:50 -04:00
context_fixtures_test.go remove legacy provisioner types 2020-12-02 12:33:17 -05:00
context_graph_type.go core: Minimal initial implementation of "refresh only" planning mode 2021-04-30 10:30:56 -07:00
context_import.go Mildwonkey/ps import (#24412) 2020-03-20 08:15:29 -04:00
context_import_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
context_input.go convert /terraform to use new provider config 2020-03-11 11:21:45 -04:00
context_input_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
context_plan2_test.go core: Minimal initial implementation of -replace=... option 2021-04-30 10:30:56 -07:00
context_plan_test.go plans: Track an optional extra "reason" for some planned actions 2021-04-29 17:50:46 -07:00
context_refresh_test.go merge dependencies when refreshing 2021-03-29 14:34:01 -04:00
context_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
context_validate_test.go core: Generalize the idea of a "plan mode", vs just destroy flag 2021-04-27 08:23:54 -07:00
eval_context.go comment updates 2021-01-20 10:33:57 -05:00
eval_context_builtin.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
eval_context_builtin_test.go Mildwonkey/tests (#24522) 2020-04-06 09:24:23 -07:00
eval_context_mock.go remove InitProvisioner and close all at once 2021-01-19 15:54:19 -05:00
eval_count.go Unmark values in count before go conversion 2020-12-10 11:38:10 -05:00
eval_count_test.go Unmark values in count before go conversion 2020-12-10 11:38:10 -05:00
eval_for_each.go Allow for_each arguments containing sensitive values if they aren't keys (#27247) 2020-12-17 11:27:12 -05:00
eval_for_each_test.go Allow for_each arguments containing sensitive values if they aren't keys (#27247) 2020-12-17 11:27:12 -05:00
eval_provider.go terraform: final eval-related cleanup (#27232) 2020-12-10 09:55:50 -05:00
eval_provider_test.go terraform: remove deprecated or unused Eval() bits 2020-09-29 15:01:24 -04:00
eval_variable.go core: Fix sensitive value variable validation 2021-01-05 13:52:33 -05:00
evaluate.go core: Add sensitive provider attrs to JSON plan 2021-04-27 10:29:34 -04:00
evaluate_test.go core: Add sensitive provider attrs to JSON plan 2021-04-27 10:29:34 -04:00
evaluate_valid.go didyoumean: move from "helper" to "internal" 2020-10-02 13:35:07 -07:00
evaluate_valid_test.go configs: Fix provider lookup local name mismatch 2020-11-10 15:25:02 -05:00
execute.go terraform: final eval-related cleanup (#27232) 2020-12-10 09:55:50 -05:00
features.go output warning flag 2017-11-28 14:18:54 -05:00
graph.go remove unused 2020-12-02 13:59:18 -05:00
graph_builder.go remove unused 2020-12-02 13:59:18 -05:00
graph_builder_apply.go core: Minimal initial implementation of -replace=... option 2021-04-30 10:30:56 -07:00
graph_builder_apply_test.go remove provisioner graph nodes 2021-01-19 15:54:19 -05:00
graph_builder_destroy_plan.go refresh state during a destroy plan 2021-01-08 13:29:54 -05:00
graph_builder_eval.go audit graph builder to make them more similar 2020-10-06 17:39:53 -04:00
graph_builder_import.go rename attachDataResourceDependsOnTransformer 2021-03-08 15:39:09 -05:00
graph_builder_plan.go core: Minimal initial implementation of -replace=... option 2021-04-30 10:30:56 -07:00
graph_builder_plan_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05: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 remove unused 2020-12-02 13:59:18 -05:00
graph_dot_test.go remove unused 2020-12-02 13:59:18 -05:00
graph_interface_subgraph.go rename GraphNodeSubPath -> GraphNodeModuleInstance 2020-03-10 17:25:11 -04:00
graph_test.go remove unused 2020-12-02 13:59:18 -05:00
graph_walk.go terraform: remove deprecated or unused Eval() bits 2020-09-29 15:01:24 -04:00
graph_walk_context.go get rid of EvalEarlyExitError 2020-10-28 14:40:30 -04:00
graph_walk_operation.go remove refresh! 2020-09-22 10:27:45 -04:00
graph_walk_test.go
graphtype_string.go core: Minimal initial implementation of "refresh only" planning mode 2021-04-30 10:30:56 -07:00
hook.go remove unused 2020-12-02 13:59:18 -05:00
hook_mock.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
hook_stop.go get rid of EvalEarlyExitError 2020-10-28 14:40:30 -04: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
marks.go compare unordered sets of PathMarkValues 2020-12-17 12:55:58 -05:00
marks_test.go compare unordered sets of PathMarkValues 2020-12-17 12:55:58 -05:00
node_count_boundary.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_count_boundary_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_data_destroy.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_data_destroy_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_local.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_local_test.go Mildwonkey/eval local (#26182) 2020-09-09 15:59:29 -04:00
node_module_expand.go comment updates 2021-01-20 10:33:57 -05:00
node_module_expand_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_module_variable.go terraform: final eval-related cleanup (#27232) 2020-12-10 09:55:50 -05:00
node_module_variable_test.go re-enable and fix module variable tests 2020-10-14 09:10:37 -04:00
node_output.go core: Loosen output value sensitivity requirement 2021-04-21 14:27:03 -04:00
node_output_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_provider.go add more diagnostics context 2021-04-28 18:01:50 -04:00
node_provider_abstract.go remove unused interfaces 2020-06-24 10:45:58 -04:00
node_provider_eval.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_provider_test.go add more diagnostics context 2021-04-28 18:01:50 -04:00
node_resource_abstract.go add context to UgpradeResourceState diags 2021-04-28 14:09:28 -04:00
node_resource_abstract_instance.go core: -replace to emit only one warning for incomplete address 2021-05-03 15:43:23 -07:00
node_resource_abstract_instance_test.go merge dependencies when refreshing 2021-03-29 14:34:01 -04:00
node_resource_abstract_test.go add context to UgpradeResourceState diags 2021-04-28 14:09:28 -04:00
node_resource_apply.go remove unused 2020-12-02 13:59:18 -05:00
node_resource_apply_instance.go core: Minimal initial implementation of -replace=... option 2021-04-30 10:30:56 -07:00
node_resource_apply_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_resource_destroy.go add context to UgpradeResourceState diags 2021-04-28 14:09:28 -04:00
node_resource_destroy_deposed.go add context to UgpradeResourceState diags 2021-04-28 14:09:28 -04:00
node_resource_destroy_deposed_test.go do not panic if there is no deposed state 2021-03-10 16:48:30 -05:00
node_resource_plan.go core: -replace to emit only one warning for incomplete address 2021-05-03 15:43:23 -07:00
node_resource_plan_destroy.go Eval() Refactor: Plan Edition (#27177) 2020-12-08 08:50:30 -05:00
node_resource_plan_instance.go core: Minimal initial implementation of -replace=... option 2021-04-30 10:30:56 -07:00
node_resource_plan_orphan.go core: Minimal initial implementation of "refresh only" planning mode 2021-04-30 10:30:56 -07:00
node_resource_plan_orphan_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_resource_plan_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_resource_validate.go call the InConfigBody with addresses 2021-04-06 15:15:52 -04:00
node_resource_validate_test.go providers.Interface: rename ValidateDataSourceConfig to ValidateDataResourceConfig (#27874) 2021-02-24 12:04:28 -05:00
node_root_variable.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_root_variable_test.go make GraphNodeExecutable return diagnostics 2020-10-28 13:47:04 -04:00
node_value.go prune unused values based on behavior 2020-04-02 16:00:36 -04:00
provider_mock.go providers.Interface: rename ValidateDataSourceConfig to ValidateDataResourceConfig (#27874) 2021-02-24 12:04:28 -05:00
provisioner_mock.go remove legacy ApplyFn from mock provisioner 2020-10-08 13:13:13 -04:00
provisioner_mock_test.go remove legacy provisioner types 2020-12-02 12:33:17 -05:00
reduce_plan.go Eval() Refactor: Plan Edition (#27177) 2020-12-08 08:50:30 -05:00
reduce_plan_test.go Eval() Refactor: Plan Edition (#27177) 2020-12-08 08:50:30 -05:00
resource_provider.go terraform: validate providers' schemas during NewContext (#28124) 2021-03-22 13:17:50 -04:00
resource_provider_mock_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
schemas.go terraform: validate providers' schemas during NewContext (#28124) 2021-03-22 13:17:50 -04:00
schemas_test.go change mock provider to use GetSchemaResponse 2021-01-12 16:31:18 -05:00
terraform_test.go ensure that provisioners are not used after Close 2021-01-19 17:48:30 -05:00
transform.go remove unused 2020-12-02 13:59:18 -05: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 audit graph builder to make them more similar 2020-10-06 17:39:53 -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 cleanup unused CBD code 2020-09-16 11:14:36 -04:00
transform_destroy_cbd_test.go terraform: rename mustReourceAddr to mustConfigResourceAddr and add mustAbsResourceAddr 2020-09-25 09:29:18 -04:00
transform_destroy_edge.go connect destroyers to all stored create deps 2021-03-21 12:14:47 -04:00
transform_destroy_edge_test.go tests for destroy-then-update dependency ordering 2021-03-22 14:18:54 -04: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 merge dependencies when refreshing 2021-03-29 14:34:01 -04:00
transform_import_state_test.go change mock return values to pointers 2021-01-12 15:16:48 -05:00
transform_local.go rename plannable local 2020-05-12 11:07:00 -04:00
transform_module_expansion.go don't connect module closers to destroy nodes 2020-09-09 12:23:23 -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 re-add orphan transformer tests that still apply 2020-12-02 12:33:18 -05: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 handle sensitivity in the OutputChange 2020-10-12 17:29:45 -04:00
transform_provider.go simplify the use of configuration_aliases 2021-02-19 10:56:55 -05:00
transform_provider_test.go provider transformer tests 2021-02-19 10:56:55 -05:00
transform_provisioner.go remove provisioner graph nodes 2021-01-19 15:54:19 -05:00
transform_reference.go rename attachDataResourceDependsOnTransformer 2021-03-08 15:39:09 -05:00
transform_reference_test.go remove unused 2020-12-02 13:59:18 -05: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 remove the need for destroyRootOutputTransformer 2020-10-12 17:29:45 -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 Staticcheck fixes 2021-01-07 10:28:40 -05:00
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 remove unused code (#26503) 2020-10-07 11:00:06 -04:00
ui_output.go
ui_output_callback.go
ui_output_callback_test.go
ui_output_mock.go minor race fix in tests 2017-10-02 16:19:01 -04:00
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
update_state_hook.go terraform: final eval-related cleanup (#27232) 2020-12-10 09:55:50 -05:00
update_state_hook_test.go terraform: final eval-related cleanup (#27232) 2020-12-10 09:55:50 -05:00
upgrade_resource_state.go terraform: final eval-related cleanup (#27232) 2020-12-10 09:55:50 -05:00
upgrade_resource_state_test.go rename files for consistency with contents 2020-12-10 08:05:00 -05:00
util.go Fix negative parallelism and negative semaphore (#23902) 2020-02-12 10:10:52 -05:00
util_test.go
validate_selfref.go terraform: refactor EvalValidateSelfref 2020-12-10 08:05:00 -05:00
validate_selfref_test.go terraform: refactor EvalValidateSelfref 2020-12-10 08:05:00 -05:00
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 Upgrade to quoted keywords to error 2021-02-21 20:27:20 -05:00
version_required.go terraform: Fix required version constraint diags 2020-08-18 09:35:32 -04:00
walkoperation_string.go remove refresh! 2020-09-22 10:27:45 -04:00