opentofu/terraform
Martin Atkins 0e0e3d73af core: New ResourceProvider methods for data resources
This is a breaking change to the ResourceProvider interface that adds the
new operations relating to data sources.

DataSources, ValidateDataSource, ReadDataDiff and ReadDataApply are the
data source equivalents of Resources, Validate, Diff and Apply (respectively)
for managed resources.

The diff/apply model seems at first glance a rather strange workflow for
read-only resources, but implementing data resources in this way allows them
to fit cleanly into the standard plan/apply lifecycle in cases where the
configuration contains computed arguments and thus the read must be deferred
until apply time.

Along with breaking the interface, we also fix up the plugin client/server
and helper/schema implementations of it, which are all of the callers
used when provider plugins use helper/schema. This would be a breaking
change for any provider plugin that directly implements the provider
interface, but no known plugins do this and it is not recommended.

At the helper/schema layer the implementer sees ReadDataApply as a "Read",
as opposed to "Create" or "Update" as in the managed resource Apply
implementation. The planning mechanics are handled entirely within
helper/schema, so that complexity is hidden from the provider implementation
itself.
2016-05-14 08:26:36 -07:00
..
test-fixtures terraform: Module option to Import to add module to graph 2016-05-11 13:02:37 -07:00
context_apply_test.go terraform: Correct fix for destroy interp errors 2016-05-10 15:58:51 -05:00
context_import_test.go terraform: Module option to Import to add module to graph 2016-05-11 13:02:37 -07:00
context_import.go terraform: Module option to Import to add module to graph 2016-05-11 13:02:37 -07:00
context_input_test.go core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -04:00
context_plan_test.go core: Do not type check unset variables 2016-04-21 23:30:34 -05:00
context_refresh_test.go state: Add support for outputs of multiple types 2016-05-10 14:40:12 -04:00
context_test.go core: Add terraform_version to state 2016-05-10 14:40:11 -04:00
context_validate_test.go terraform: upgrade resource name regexp failure to error 2016-02-23 10:32:49 -06:00
context.go terraform: start Import function, totally untested 2016-05-11 13:02:30 -07:00
diff_test.go core: fix diff mismatch when RequiresNew field and list both change 2016-01-19 15:38:04 -06:00
diff.go core: Fix issues with ignore_changes 2016-03-21 14:20:36 -05:00
eval_apply.go removed extra parentheses 2015-10-08 15:48:04 +03:00
eval_check_prevent_destroy.go update prevent_destroy error message 2015-08-13 09:57:52 -05: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 core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -04: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.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: tweak diffs didn't match output spacing 2016-02-23 14:35:30 -06: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_ignore_changes.go core: Fix issues with ignore_changes 2016-03-21 14:20:36 -05: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 terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_noop.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_output.go core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -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_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 core: tweaks from code review 2015-03-05 10:11:14 -06:00
eval_state.go Support for multiple providers of the same type 2015-04-20 14:14:34 -07:00
eval_test.go terraform: clean up EvalNodes 2015-02-19 12:08:32 -08:00
eval_validate.go terraform: upgrade resource name regexp failure to error 2016-02-23 10:32:49 -06:00
eval_variable.go core: Fix go vet issues shown by Travis 2016-05-10 16:00:28 -04: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_import.go terraform: Module option to Import to add module to graph 2016-05-11 13:02:37 -07:00
graph_builder_test.go Bypass CreateBeforeDestroyTransformer during terraform destroy 2016-02-10 20:08:36 -08:00
graph_builder.go core: Print node types in traces 2016-04-13 10:20:18 -07: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 core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -04:00
graph_config_node_output.go Add operation walkDestroy 2015-10-03 14:16:40 -07: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 terraform: add debug logging to Noop impls 2016-05-10 15:58:46 -05: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: Correct fix for destroy interp errors 2016-05-10 15:58:51 -05:00
graph_config_node.go terraform: fill in more flat interfaces 2015-05-01 15:28:41 -07:00
graph_dot_test.go removed extra parentheses 2015-10-08 15:48:04 +03:00
graph_dot.go Fix three trivial errors 'go vet' discovered. 2015-05-13 21:23:07 -04:00
graph_interface_subgraph.go terraform: subpath context setting 2015-05-01 14:19:32 -07:00
graph_test.go core: fix deadlock when dependable node replaced with non-dependable one 2015-08-10 15:50:36 -05:00
graph_walk_context.go core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -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 terraform: subpath context setting 2015-05-01 14:19:32 -07:00
graph.go core: fix deadlock when dependable node replaced with non-dependable one 2015-08-10 15:50:36 -05:00
graphnodeconfigtype_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00
hook_mock.go terraform: import state ID should be sent to hook 2016-05-11 13:02:35 -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 core: support native list variables in config 2016-05-10 14:49:14 -04:00
interpolate.go helper/schema: Read native maps from configuration 2016-05-10 14:49:14 -04:00
path.go terraform: module inputs are passed through to subgraphs 2015-02-19 12:08:01 -08:00
plan_test.go terraform: Plan should use module.Tree 2014-09-24 14:56:48 -07:00
plan.go core: Add terraform_version to state 2016-05-10 14:40:11 -04:00
resource_address_test.go terraform: ResourceAddress should output instance type if set 2016-05-10 13:25:02 -07:00
resource_address.go terraform: ResourceAddress should output instance type if set 2016-05-10 13:25:02 -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 core: New ResourceProvider methods for data resources 2016-05-14 08:26:36 -07:00
resource_provider_test.go terraform: add ResourceProviderFactoryFixed 2014-07-10 09:46:21 -07:00
resource_provider.go core: New ResourceProvider methods for data resources 2016-05-14 08:26: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 terraform: change provisioners to take UIOutput 2014-10-04 09:20:05 -07:00
resource_provisioner.go core: close provider/provisioner connections 2015-06-19 21:52:50 +02:00
resource_test.go terraform: replace config/lang usage 2016-02-03 13:24:04 -05:00
resource.go helper/schema: FieldReaderConfig detects computed maps 2015-04-21 22:07:52 +02:00
semantics_test.go terraform: semantic check that variables are set on the correct types 2014-07-22 09:27:28 -07:00
semantics.go terraform: start implementing interfaces for semantic checks 2015-02-19 12:07:52 -08:00
state_add_test.go terraform: test moving a module to be nested 2016-05-10 13:25:43 -07:00
state_add.go terraform: fix compilation with new func call 2016-05-11 13:07:33 -07:00
state_filter_test.go terraform: state filter wasn't comparing resource names 2016-05-10 14:49:14 -04:00
state_filter.go terraform: fix failing tests 2016-05-10 13:25:02 -07:00
state_test.go terraform: add stateadd to its own test file 2016-05-10 13:25:02 -07:00
state_v0_test.go Renumber original binary state as V0 2016-05-10 14:40:12 -04:00
state_v0.go Renumber original binary state as V0 2016-05-10 14:40:12 -04:00
state.go terraform: working on fixes for imports in modules 2016-05-11 13:02:32 -07:00
terraform_test.go core: Use native HIL maps instead of flatmaps 2016-05-10 14:49:13 -04: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_deposed.go Add operation walkDestroy 2015-10-03 14:16:40 -07:00
transform_destroy_test.go core: validate graph w/ diff during plan phase 2015-05-05 17:24:44 -05:00
transform_destroy.go terraform: orphan dependencies should be inverted 2015-06-23 20:41:02 -07:00
transform_expand_test.go terraform: fix tests 2015-02-19 12:08:01 -08:00
transform_expand.go terraform: orphan module should flatten 2015-05-14 20:54:33 -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 verifies the refresh results in non-nil state 2016-05-11 13:02:36 -07:00
transform_module_test.go core: Remove module input transformer 2016-04-13 11:15:24 -05:00
transform_module.go core: Remove module input transformer 2016-04-13 11:15:24 -05: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_test.go core: Orphan addressing / targeting 2016-01-19 17:48:44 -06:00
transform_orphan.go core: Orphan addressing / targeting 2016-01-19 17:48:44 -06:00
transform_output_test.go state: Add support for outputs of multiple types 2016-05-10 14:40:12 -04:00
transform_output.go Add operation walkDestroy 2015-10-03 14:16:40 -07:00
transform_provider_test.go terraform: more provider transform tests 2016-05-11 13:02:32 -07:00
transform_provider.go terraform: getting providers to connect the way we want for modules 2016-05-11 13:02:32 -07:00
transform_provisioner_test.go Cleaning up the PruneProvisionerTransformer 2016-02-04 21:32:10 +01:00
transform_provisioner.go Cleaning up the PruneProvisionerTransformer 2016-02-04 21:32:10 +01: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_resource_test.go terraform: inner-count dependencies work [GH-1540] 2015-04-18 15:56:43 -07:00
transform_resource.go core: Fix issues with ignore_changes 2016-03-21 14:20:36 -05: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_tainted_test.go Support for multiple providers of the same type 2015-04-20 14:14:34 -07:00
transform_tainted.go Add operation walkDestroy 2015-10-03 14:16:40 -07:00
transform_targets_test.go core: targeted operations 2015-03-31 14:49:38 -05:00
transform_targets.go core: Orphan addressing / targeting 2016-01-19 17:48:44 -06: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_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: GraphVertexTransformers 2015-02-19 12:07:57 -08: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
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
version.go core: Add terraform_version to state 2016-05-10 14:40:11 -04:00
walkoperation_string.go terraform: generate 2016-05-11 13:02:30 -07:00