opentofu/internal/terraform
Martin Atkins 38ec730b0e core: Opportunistic schema loading during graph construction
Previously the graph builders all expected to be given a full manifest
of all of the plugin component schemas that they could need during their
analysis work. That made sense when terraform.NewContext would always
proactively load all of the schemas before doing any other work, but we
now have a load-as-needed strategy for schemas.

We'll now have the graph builders use the contextPlugins object they each
already hold to retrieve individual schemas when needed. This avoids the
need to prepare a redundant data structure to pass alongside the
contextPlugins object, and leans on the memoization behavior inside
contextPlugins to preserve the old behavior of loading each provider's
schema only once.
2021-09-10 14:56:49 -07:00
..
testdata Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
context_apply2_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_apply_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_apply.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_eval_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_eval.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_fixtures_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_import_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_import.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_input_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_input.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_plan2_test.go core: Enable TestContext2Plan_movedResourceBasic 2021-08-30 13:59:14 -07:00
context_plan_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_plan.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_plugins_test.go core: Replace contextComponentFactory with contextPlugins 2021-09-10 14:56:49 -07:00
context_plugins.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_refresh_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_refresh.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_test.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context_validate_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_validate.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
context_walk.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
context.go core: Replace contextComponentFactory with contextPlugins 2021-09-10 14:56:49 -07:00
eval_context_builtin_test.go core: Replace contextComponentFactory with contextPlugins 2021-09-10 14:56:49 -07:00
eval_context_builtin.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
eval_context_mock.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
eval_context.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
eval_count_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
eval_count.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
eval_for_each_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
eval_for_each.go remove IsMarked and ContainsMarked calls 2021-06-25 14:17:06 -04:00
eval_provider_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
eval_provider.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
eval_variable.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
evaluate_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
evaluate_valid_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
evaluate_valid.go addrs: Rename AbsModuleCallOutput to ModuleCallInstanceOutput 2021-07-01 08:28:02 -07:00
evaluate.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
execute.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
features.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_builder_apply_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_apply.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_destroy_plan.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_eval.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_import.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_plan_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_plan.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
graph_builder_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_builder_validate.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_builder.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_dot_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_dot.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_interface_subgraph.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_test.go de-linting 2021-09-01 11:36:21 -04:00
graph_walk_context.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
graph_walk_operation.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_walk_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph_walk.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
graph.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
hook_mock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
hook_stop_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
hook_stop.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
hook_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
hook.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
instance_expanders.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
marks_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
marks.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_count_boundary_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_count_boundary.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_data_destroy_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_data_destroy.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_local_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_local.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_module_expand_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_module_expand.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_module_variable_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_module_variable.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_output_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
node_output.go remove IsMarked and ContainsMarked calls 2021-06-25 14:17:06 -04:00
node_provider_abstract.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_provider_eval.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_provider_test.go Merge pull request #29039 from hashicorp/jbardin/sensitive 2021-06-25 17:11:59 -04:00
node_provider.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
node_resource_abstract_instance_test.go addrs: Rename DefaultRegistryHost to DefaultProviderRegistryHost 2021-06-03 08:50:34 -07:00
node_resource_abstract_instance.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
node_resource_abstract_test.go addrs: Rename DefaultRegistryHost to DefaultProviderRegistryHost 2021-06-03 08:50:34 -07:00
node_resource_abstract.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_apply_instance.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_apply_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_apply.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_destroy_deposed_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_destroy_deposed.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_destroy.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_plan_destroy.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_plan_instance.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_plan_orphan_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_plan_orphan.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_plan_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_plan.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_resource_validate_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
node_resource_validate.go core: EvalContextBuiltin no longer has a "Schemas" 2021-09-10 14:56:49 -07:00
node_root_variable_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_root_variable.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
node_value.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
phasestate_string.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
provider_mock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
provisioner_mock_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
provisioner_mock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
reduce_plan_test.go handle marks within ignore_changes 2021-07-19 16:42:26 -04:00
reduce_plan.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
resource_provider_mock_test.go de-linting 2021-09-01 11:36:21 -04:00
schemas_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
schemas.go core: Context.Schemas in terms of contextPlugins methods 2021-09-10 14:56:49 -07:00
terraform_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_attach_config_provider_meta.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_attach_config_provider.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_attach_config_resource.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_attach_schema.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
transform_attach_state.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_config_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_config.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_count_boundary.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_destroy_cbd_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
transform_destroy_cbd.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
transform_destroy_edge_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
transform_destroy_edge.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
transform_diff_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_diff.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_expand.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_import_state_test.go update to use typed sensitive marks 2021-06-25 12:49:07 -04:00
transform_import_state.go return error for invalid resource import 2021-05-25 17:13:49 -04:00
transform_local.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_module_expansion.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_module_variable_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_module_variable.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_orphan_count_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_orphan_count.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_orphan_output.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_orphan_resource_test.go deposed instances should not be counted as orphans 2021-05-20 09:36:45 -04:00
transform_orphan_resource.go deposed instances should not be counted as orphans 2021-05-20 09:36:45 -04:00
transform_output.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_provider_test.go core: Provider transformers don't use the set of all available providers 2021-09-10 14:56:49 -07:00
transform_provider.go core: Provider transformers don't use the set of all available providers 2021-09-10 14:56:49 -07:00
transform_provisioner.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_reference_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_reference.go addrs: Rename AbsModuleCallOutput to ModuleCallInstanceOutput 2021-07-01 08:28:02 -07:00
transform_removed_modules.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_resource_count.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_root_test.go core: Provider transformers don't use the set of all available providers 2021-09-10 14:56:49 -07:00
transform_root.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_state.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_targets_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_targets.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_transitive_reduction_test.go core: Opportunistic schema loading during graph construction 2021-09-10 14:56:49 -07:00
transform_transitive_reduction.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_variable.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_vertex_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform_vertex.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
transform.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_input_mock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_input_prefix_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_input_prefix.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_input.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output_callback_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output_callback.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output_mock_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output_mock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output_provisioner_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output_provisioner.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
ui_output.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
update_state_hook_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
update_state_hook.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
upgrade_resource_state_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
upgrade_resource_state.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
util_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
util.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
validate_selfref_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
validate_selfref.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
valuesourcetype_string.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
variables_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
variables.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
version_required.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
walkoperation_string.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00