terraform/command
Martin Atkins 39c4d6ab1f Merge #15424: Improve robustness of state persistence handling
Previously the APIs for state persistence and management had some problematic cases where we depended on hidden mutations of the state structure as side-effects of otherwise-innocent-looking operations, which was a frequent cause of accidental regressions due to faulty assumptions.

This new model attempts to isolate certain state mutations to just within the state managers, and makes the state managers work on separated snapshots of the state rather than on the "live" object to reduce the risk of race conditions.
2017-07-05 16:27:08 -07:00
..
clistate Have the clistate Lock use LockWithContext 2017-04-01 17:09:20 -04:00
format command/format: minor adjustments to plan rendering 2017-06-22 07:03:23 -07:00
test-fixtures command/validate: Add flag to check that all variables are specified (#13872) 2017-07-05 17:32:29 +01:00
testdata Have backend operations properly unlock state 2017-02-15 14:41:55 -05:00
apply.go command: also print plan for destroy 2017-06-27 11:22:31 -07:00
apply_destroy_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
apply_test.go add some Serial checks to apply and refresh tests 2017-07-05 18:18:28 -04:00
cli_ui.go adding new AskSecret to ColorizeUi 2015-04-29 13:07:13 -05:00
cli_ui_test.go command/*: colors on error messages (red) 2014-07-12 20:59:16 -07:00
command.go always pass in the full plugin path to dicovery 2017-06-16 14:09:47 -04:00
command_test.go use testStateRead helper in apply tests 2017-07-05 18:18:16 -04:00
console.go have Meta.Backend use a Config rather than loading 2017-06-09 14:03:59 -07: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 Add debug command with json2dot 2016-11-21 11:59:20 -05:00
debug_json2dot_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07: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/fmt: Improve documentation for -diff and defaults (#6398) 2016-04-29 00:39:53 +01:00
fmt_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
get.go command: convert to use backends 2017-01-26 14:33:49 -08:00
get_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
graph.go have Meta.Backend use a Config rather than loading 2017-06-09 14:03:59 -07:00
graph_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07: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_ui.go it's possible to get a nil diff in PreApply 2017-04-28 21:59:56 -04:00
hook_ui_test.go command/hook_ui: Increase max length of state IDs (#13317) 2017-04-04 15:41:54 +01:00
import.go find -plugin-dir during import 2017-06-26 18:28:45 -04:00
import_test.go test import with -plugin-dir 2017-06-27 11:07:45 -04:00
init.go core: Skip provider checksum validation based on env var 2017-07-03 13:59:13 -04:00
init_test.go command: init to allow plugin init without backend init 2017-06-21 11:43:28 -07:00
internal_plugin.go Set a log prefix for each plugin and remove go-dynect global log prefix (#6336) 2016-05-10 14:49:13 -04:00
internal_plugin_list.go remove "core" distinction 2017-06-12 13:43:54 -04:00
internal_plugin_test.go remove "core" distinction 2017-06-12 13:43:54 -04:00
meta.go core: Skip provider checksum validation based on env var 2017-07-03 13:59:13 -04:00
meta_backend.go command: add "apply -auto-approve=false" flag 2017-06-27 11:22:26 -07:00
meta_backend_migrate.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
meta_backend_test.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
meta_new.go have Meta.Backend use a Config rather than loading 2017-06-09 14:03:59 -07:00
meta_test.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
module_storage.go fix a bunch of tests from go-getter import 2015-10-15 13:48:58 -07:00
module_storage_test.go fix a bunch of tests from go-getter import 2015-10-15 13:48:58 -07:00
output.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
output_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
plan.go Add plugin dir scaffolding 2017-06-15 14:26:12 -04:00
plan_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
plugins.go improve plugin error formatting 2017-06-22 15:31:36 -04:00
plugins_lock.go change providers.json to lock.json 2017-06-09 14:03:59 -07:00
plugins_lock_test.go command: helper to manage the provider plugins lock file 2017-06-09 14:03:59 -07:00
plugins_test.go add -plugin-dir option 2017-06-15 15:23:16 -04:00
providers.go command/providers: Enable processing of meta-parameters 2017-06-10 11:51:06 +01:00
providers_test.go command/providers: Add regression test 2017-06-10 12:02:01 +01:00
push.go command: shallow UI-focused rename of "environment" to "workspace" 2017-06-09 15:01:39 -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 Add plugin dir scaffolding 2017-06-15 14:26:12 -04:00
refresh_test.go add some Serial checks to apply and refresh tests 2017-07-05 18:18:28 -04:00
show.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
show_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
state_list_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_meta.go don't load the backend when -state is provided 2017-06-23 14:41:49 -04:00
state_mv.go Fix state mv/rm -backup documentation 2017-06-23 14:46:09 -04:00
state_mv_test.go don't load the backend when -state is provided 2017-06-23 14:41:49 -04:00
state_pull.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
state_pull_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_push.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
state_push_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_rm.go command: terraform state rm to require at least one argument 2017-07-05 16:19:32 -07:00
state_rm_test.go command: terraform state rm to require at least one argument 2017-07-05 16:19:32 -07:00
state_show.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
state_show_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
state_test.go command: tests should move to temporary cwd 2017-02-07 09:11:48 -08:00
taint.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07: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 command: use bufio.ReadString instead of scanning to get spaces 2016-08-22 12:59:48 -07:00
unlock.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
unlock_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
untaint.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
untaint_test.go Clean up LockInfo and LockError and use them 2017-02-15 14:44:43 -05:00
validate.go command/validate: Add flag to check that all variables are specified (#13872) 2017-07-05 17:32:29 +01:00
validate_test.go command/validate: Add flag to check that all variables are specified (#13872) 2017-07-05 17:32:29 +01:00
version.go fixing version numbers RCs should be labeled x.x.x-rcx 2015-02-07 16:56:56 +01:00
version_test.go Implement CLI, version command 2014-05-24 12:04:43 -07:00
workspace_command.go command: "terraform workspace show" to print current workspace name 2017-07-05 14:35:46 -07:00
workspace_command_test.go Merge #15424: Improve robustness of state persistence handling 2017-07-05 16:27:08 -07:00
workspace_delete.go Unlock state before workspace deletion 2017-06-27 14:31:08 -04:00
workspace_list.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
workspace_new.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
workspace_select.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
workspace_show.go command: "terraform workspace show" to print current workspace name 2017-07-05 14:35:46 -07:00