terraform/command
Alisdair McDiarmid 2d1976bbda clistate: Update clistate.Locker for command views
The clistate package includes a Locker interface which provides a simple
way for the local backend to lock and unlock state, while providing
feedback to the user if there is a delay while waiting for the lock.
Prior to this commit, the backend was responsible for initializing the
Locker, passing through direct access to the cli.Ui instance.

This structure prevented commands from implementing different
implementations of the state locker UI. In this commit, we:

- Move the responsibility of creating the appropriate Locker to the
  source of the Operation;
- Add the ability to set the context for a Locker via a WithContext
  method;
- Replace the Locker's cli.Ui and Colorize members with a StateLocker
  view;
- Implement views.StateLocker for human-readable UI;
- Update the Locker interface to return detailed diagnostics instead of
  errors, reducing its direct interactions with UI;
- Add a Timeout() method on Locker to allow the remote backend to
  continue to misuse the -lock-timeout flag to cancel pending runs.

When an Operation is created, the StateLocker field must now be
populated with an implementation of Locker. For situations where locking
is disabled, this can be a no-op locker.

This change has no significant effect on the operation of Terraform,
with the exception of slightly different formatting of errors when state
locking or unlocking fails.
2021-02-16 07:19:22 -05:00
..
arguments cli: Add global view arguments parser 2021-02-12 09:56:02 -05:00
cliconfig Grammar nit: "setup" as a verb should be spelled "set up" 2021-01-26 20:39:11 +01:00
clistate clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
e2etest command: Use different warning messaging in init command and move above potentially confusing output (#27514) 2021-02-01 10:50:08 -05:00
format cli: Optimize for large multi-line string outputs 2021-02-11 10:42:06 -05:00
jsonconfig Ensure depends_on is in module calls for config 2020-08-20 07:49:03 +10:00
jsonplan command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonprovider command/jsonprovider: staticcheck 2020-12-02 13:59:20 -05:00
jsonstate command: Fix terraform show not outputting child_modules properly in certain circumstances (#27352) 2021-01-11 12:31:20 -05:00
testdata cli: Improve error for invalid -target flags 2021-02-08 13:48:04 -05:00
views clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
webbrowser command: Revert local patch for pkg/browser 2020-12-10 09:27:02 -05:00
012_config_upgrade.go staticcheck 2020-12-02 13:59:19 -05:00
012_config_upgrade_test.go command/0.13upgrade: Remove this subcommand 2020-09-29 10:00:35 -07:00
013_config_upgrade.go staticcheck 2020-12-02 13:59:19 -05:00
013_config_upgrade_test.go command/0.13upgrade: Remove this subcommand 2020-09-29 10:00:35 -07:00
apply.go backend: Add per-operation diagnostic rendering 2021-02-12 14:30:35 -05:00
apply_destroy_test.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
apply_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
autocomplete.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07: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 cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
command_test.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
console.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
console_interactive.go move remaining helper packages to internal 2021-01-20 13:54:00 -05:00
console_interactive_solaris.go
console_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
flag_kv.go cli: Improve error for invalid -target flags 2021-02-08 13:48:04 -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: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
fmt_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
get.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
get_test.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
graph.go cli: Remove positional plan argument from graph 2021-02-02 13:21:26 -05:00
graph_test.go cli: Remove positional plan argument from graph 2021-02-02 13:21:26 -05:00
hook_count.go cli: Move resource count code to command package 2021-01-29 15:29:35 -05:00
hook_count_test.go cli: Move resource count code to command package 2021-01-29 15:29:35 -05:00
hook_module_install.go Move module install functionality over to internal/initwd 2019-01-14 11:33:21 -08:00
hook_ui.go command: Remove stubbed-out apply diff output code 2020-07-22 14:19:00 -04:00
hook_ui_test.go Merge pull request #18823 from minamijoyo/fix-multibyte-trucate 2019-08-06 14:24:24 -04:00
import.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
import_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
init.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
init_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
login.go Add scopes support to password grant type 2020-09-15 19:32:41 -04:00
login_test.go Add command/login test for scopes 2020-09-15 19:30:48 -04:00
logout.go command: Simplify Meta.process helper method 2020-04-01 15:01:08 -04:00
logout_test.go command/logout: Add terraform logout command 2020-02-06 15:00:55 -05:00
meta.go cli: Add global view arguments parser 2021-02-12 09:56:02 -05:00
meta_backend.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_backend_migrate.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_backend_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_config.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
meta_dependencies.go command/init: Read, respect, and update provider dependency locks 2020-10-09 09:26:23 -07:00
meta_new.go prune dead code from command/meta 2019-07-18 16:11:41 -04:00
meta_providers.go command: Use different warning messaging in init command and move above potentially confusing output (#27514) 2021-02-01 10:50:08 -05:00
meta_test.go command staticcheck 2020-12-02 13:59:19 -05:00
meta_vars.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
output.go cli: Add global view arguments parser 2021-02-12 09:56:02 -05:00
output_test.go cli: Add global view arguments parser 2021-02-12 09:56:02 -05:00
plan.go backend: Add per-operation diagnostic rendering 2021-02-12 14:30:35 -05:00
plan_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
plugins.go run built-in provisioners in-process 2020-12-02 12:45:00 -05:00
plugins_lock.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
plugins_lock_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
plugins_test.go command: Make the tests compile again 2020-04-06 09:24:23 -07:00
providers.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
providers_lock.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
providers_mirror.go command: Improve consistency of the command short descriptions 2020-10-26 09:55:21 -07:00
providers_schema.go backend: Validate remote backend Terraform version 2020-11-19 13:19:40 -05:00
providers_schema_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
providers_test.go internal: Fix lockfile constraint output for 1.2.* 2020-10-20 10:14:03 -04:00
push.go command: remove "terraform push" 2018-10-16 18:24:47 -07:00
refresh.go backend: Add per-operation diagnostic rendering 2021-02-12 14:30:35 -05:00
refresh_test.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
show.go backend/local: Use terminal properties to tweak the plan output 2021-01-13 15:37:04 -08:00
show_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go command staticcheck 2020-12-02 13:59:19 -05:00
state_list_test.go command/state list: list resources in nested and expanded modules (#27268) 2020-12-14 11:07:15 -05:00
state_meta.go command/state list: list resources in nested and expanded modules (#27268) 2020-12-14 11:07:15 -05:00
state_mv.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_mv_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_pull.go docs: Note: state pull upgrades to current version 2021-01-25 10:31:11 -05:00
state_pull_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_push.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_push_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_replace_provider.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_replace_provider_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_rm.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_rm_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_show.go command staticcheck 2020-12-02 13:59:19 -05:00
state_show_test.go update MockProvider usage 2021-01-12 17:47:55 -05:00
state_test.go command: Allow tests to run to completion without panics or hangs 2018-10-16 19:14:11 -07:00
taint.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
taint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
ui_input.go Exit with error if UI input scan fails (#26509) 2020-10-21 14:10:06 -04:00
ui_input_test.go Exit with error if UI input scan fails (#26509) 2020-10-21 14:10:06 -04:00
unlock.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
unlock_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
untaint.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
untaint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
validate.go command: Use different warning messaging in init command and move above potentially confusing output (#27514) 2021-02-01 10:50:08 -05:00
validate_test.go update MockProvider usage 2021-01-12 17:47:55 -05:00
version.go Remove revision from version command 2021-01-12 16:35:30 -05:00
version_test.go Remove revision from version command 2021-01-12 16:35:30 -05:00
workspace_command.go command staticcheck 2020-12-02 13:59:19 -05:00
workspace_command_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
workspace_delete.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
workspace_list.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
workspace_new.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
workspace_select.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
workspace_show.go command: Always validate workspace name 2020-08-11 12:33:12 -04:00