terraform/command
Martin Atkins bfd9392eb8 command: beginnings of new config loader in "terraform validate"
As part of some light reorganization of our commands, this new
implementation no longer does validation of variables and will thus avoid
the need to spin up a fully-valid context. Instead, its focus is on
validating the configuration itself, regardless of any variables, state,
etc.

This change anticipates us later adding a -validate-only flag to
"terraform plan" which will then take over the related use-case of
checking if a particular execution of Terraform is valid, _including_ the
state, variables, etc.

Although leaving variables out of validate feels pretty arbitrary today
while all of the variable sources are local anyway, we have plans to
allow per-workspace variables to be stored in the backend in future and
at that point it will no longer be possible to fully validate variables
without accessing the backend. The "terraform plan" command explicitly
requires access to the backend, while "terraform validate" is now
explicitly for local-only validation of a single module.

In a future commit this will be extended to do basic type checking of
the configuration based on provider schemas, etc.
2018-10-16 18:20:32 -07:00
..
clistate improve clistate.Locker docs 2018-02-27 10:49:06 -05:00
e2etest Change -force to -auto-approve when destroying 2018-02-01 00:14:42 +00:00
format command/format: include source snippets in diagnostics 2018-10-16 18:20:32 -07:00
test-fixtures command: beginnings of new config loader in "terraform validate" 2018-10-16 18:20:32 -07:00
testdata Have backend operations properly unlock state 2017-02-15 14:41:55 -05:00
apply.go Allow enhanced backends to pass custom exit codes 2018-10-05 20:44:12 +02:00
apply_destroy_test.go Change -force to -auto-approve when destroying 2018-02-01 00:14:42 +00:00
apply_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
autocomplete.go command: use newer version of "complete" library 2017-12-05 10:24:04 -08:00
autocomplete_test.go command: use newer version of "complete" library 2017-12-05 10:24:04 -08:00
cli_ui.go
cli_ui_test.go
command.go Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
command_test.go Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
console.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
console_interactive.go command: split out and tag code so compilation works on Solaris 2016-11-14 00:32:01 -08:00
console_interactive_solaris.go command: split out and tag code so compilation works on Solaris 2016-11-14 00:32:01 -08:00
console_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
debug_command.go Add debug command with json2dot 2016-11-21 11:59:20 -05:00
debug_json2dot.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
debug_json2dot_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
flag_kv.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
fmt.go command: add -check flag to fmt (#15304) 2017-07-21 14:37:15 -05:00
fmt_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
get.go use the new ModuleStorage in the command package 2017-10-27 12:58:24 -04:00
get_test.go update tests for updated output 2017-11-03 11:13:31 -04:00
graph.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
graph_test.go graph should not panic with no config 2017-07-18 13:03:57 -04:00
hcl_printer.go always quote hcl map keys 2017-02-24 18:32:59 -05:00
hcl_printer_test.go always quote hcl map keys 2017-02-24 18:32:59 -05:00
hook_module_install.go command: new Meta methods for accessing the new config loader 2018-10-16 18:20:32 -07:00
hook_ui.go command: show resource actions using resource addresses 2017-09-01 17:55:05 -07:00
hook_ui_test.go Output duration in UiHook after successful operation completion. 2017-08-16 14:41:41 -07:00
import.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
import_test.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
init.go Fix drift caused from gofmt when running make dev and go 1.11. 2018-09-09 10:18:08 -07:00
init_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
internal_plugin.go create a new InternalProviders test 2018-01-05 10:59:30 -05:00
internal_plugin_list.go v0.11.2 2018-01-09 23:13:33 +00:00
internal_plugin_test.go create a new InternalProviders test 2018-01-05 10:59:30 -05:00
meta.go command: new Meta methods for accessing the new config loader 2018-10-16 18:20:32 -07:00
meta_backend.go Add checks for all flags we currently don’t support 2018-10-05 20:16:34 +02:00
meta_backend_migrate.go backend/migrations: migrate the default state 2018-08-29 21:37:39 +02:00
meta_backend_test.go Fix drift caused from gofmt when running make dev and go 1.11. 2018-09-09 10:18:08 -07:00
meta_config.go command: new Meta methods for accessing the new config loader 2018-10-16 18:20:32 -07:00
meta_new.go command: new Meta methods for accessing the new config loader 2018-10-16 18:20:32 -07:00
meta_test.go properly cleanup and print correct error messages 2017-07-06 11:33:32 -04:00
output.go cli: Remove error on empty outputs when `-json` is set (#11721) 2018-06-20 08:58:07 -07:00
output_test.go cli: update tests 2018-06-26 11:57:52 -07:00
plan.go Allow enhanced backends to pass custom exit codes 2018-10-05 20:44:12 +02:00
plan_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
plugins.go Merge pull request #16969 from hashicorp/jbardin/reset-plugin-dir 2018-01-08 16:51:47 -05:00
plugins_lock.go Standardize on log level "WARN" rather than "WARNING" 2018-01-16 18:05:26 -08:00
plugins_lock_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
plugins_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
providers.go command: validate config as part of loading it 2017-12-07 14:28:43 -08:00
providers_test.go command/providers: Add regression test 2017-06-10 12:02:01 +01:00
push.go command: Fix inconsistent spacing in "terraform push -help" 2018-09-04 18:47:46 -07:00
push_test.go Don't show plugin init message if there are none 2017-06-19 12:08:42 -04:00
refresh.go move backend operation cancellation into meta 2018-02-12 11:56:54 -05:00
refresh_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
show.go command/format: improve consistency of plan results 2017-09-01 17:55:05 -07:00
show_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go cli: "terraform state list" -id argument 2018-02-26 10:54:48 -08:00
state_list_test.go cli: "terraform state list" -id argument 2018-02-26 10:54:48 -08:00
state_meta.go Update the backend import names 2018-08-03 11:29:11 +02:00
state_mv.go update state rm amd mv docs 2017-08-03 13:24:23 -04:00
state_mv_test.go add tests for state commands through a backend 2017-07-27 18:06:47 -04:00
state_pull.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
state_pull_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_push.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
state_push_test.go create failing test cases for remote lineage issue 2017-08-01 19:34:21 -04:00
state_rm.go command/state-rm: tell the user how many items were removed 2017-09-20 12:48:27 -07:00
state_rm_test.go add tests for state commands through a backend 2017-07-27 18:06:47 -04:00
state_show.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
state_show_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_test.go Make the state commands use the real command.Meta 2017-07-27 15:33:50 -04:00
taint.go Make sure the state is locked before it is used 2018-09-18 20:32:04 +02:00
taint_test.go Clean up LockInfo and LockError and use them 2017-02-15 14:44:43 -05:00
ui_input.go command: initial work on migrating envs, basic cases first 2017-03-01 10:59:17 -08:00
ui_input_test.go
unlock.go Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
unlock_test.go create failing test cases for remote lineage issue 2017-08-01 19:34:21 -04:00
untaint.go Make sure the state is locked before it is used 2018-09-18 20:32:04 +02:00
untaint_test.go Clean up LockInfo and LockError and use them 2017-02-15 14:44:43 -05:00
validate.go command: beginnings of new config loader in "terraform validate" 2018-10-16 18:20:32 -07:00
validate_test.go command: beginnings of new config loader in "terraform validate" 2018-10-16 18:20:32 -07:00
version.go command: Include provider versions in "terraform version" 2017-10-25 17:36:24 -07:00
version_test.go
workspace_command.go Update wrong usage workspace command description 2018-10-03 12:00:27 +01:00
workspace_command_test.go update workspace new test for inmem backend 2017-08-01 19:34:22 -04:00
workspace_delete.go use the new clistate.Locker in commands 2018-02-23 16:48:15 -05:00
workspace_list.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00
workspace_new.go use the new clistate.Locker in commands 2018-02-23 16:48:15 -05:00
workspace_select.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00
workspace_show.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00