terraform/command
Martin Atkins 6979a07754 command: init -upgrade for provider plugins
Now when -upgrade is provided to "terraform init" (and plugin installation
isn't disabled) it will:

- ignore the contents of the auto-install plugin directory when deciding
  what is "available", thus causing anything there to be reinstalled,
  possibly at a newer version.
- if installation completes successfully, purge from the auto-install
  plugin directory any plugin-looking files that aren't in the set of
  chosen plugins.

As before, plugins outside of the auto-install directory are able to
take precedence over the auto-install ones, and these will never be
upgraded nor purged.

The thinking here is that the auto-install directory is an implementation
detail directly managed by Terraform, and so it's Terraform's
responsibility to automatically keep it clean as plugins are upgraded.

We don't yet have the -plugin-dir option implemented, but once it is it
should circumvent all of this behavior and just expect providers to be
already available in the given directory, meaning that nothing will be
auto-installed, -upgraded or -purged.
2017-06-13 12:28:07 -07:00
..
clistate Have the clistate Lock use LockWithContext 2017-04-01 17:09:20 -04:00
format command/format: a package for formatting plans/state for output 2017-01-26 14:33:49 -08:00
test-fixtures command: produce provider lock file during "terraform init" 2017-06-09 14:03:59 -07:00
testdata Have backend operations properly unlock state 2017-02-15 14:41:55 -05:00
apply.go have Meta.Backend use a Config rather than loading 2017-06-09 14:03:59 -07:00
apply_destroy_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
apply_test.go Merge pull request #15032 from hashicorp/jbardin/init 2017-06-12 09:06:32 -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 command: convert to use backends 2017-01-26 14:33:49 -08:00
command_test.go Update tests for the new ProviderResolver interface 2017-06-09 14:03:59 -07: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 command: require resource to be in config before import 2017-06-09 14:03:59 -07:00
import_test.go command: require resource to be in config before import 2017-06-09 14:03:59 -07:00
init.go command: init -upgrade for provider plugins 2017-06-13 12:28:07 -07:00
init_test.go command: init -upgrade for provider plugins 2017-06-13 12:28:07 -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 stop err scanner goroutines between tests 2017-06-12 13:52:30 -04:00
meta_backend.go backend: Operation.Environment renamed to "Workspace" 2017-06-09 16:26: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 have Meta.Backend use a Config rather than loading 2017-06-09 14:03:59 -07:00
plan_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07:00
plugins.go plugin/discovery: Installer interface, and provider implementation 2017-06-13 12:28:07 -07: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 plugin/discovery: Installer interface, and provider implementation 2017-06-13 12:28:07 -07: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 change providers.json to lock.json 2017-06-09 14:03:59 -07:00
refresh.go have Meta.Backend use a Config rather than loading 2017-06-09 14:03:59 -07:00
refresh_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07: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 command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
state_mv.go correct spelling mistakes (#13979) 2017-04-27 02:10:04 +12:00
state_mv_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -07: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 Split Meta back out of StateMeta 2017-03-01 10:20:32 -05:00
state_rm_test.go Push plugin discovery down into command package 2017-06-09 14:03:59 -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: respond to --help 2016-10-27 13:43:01 -04:00
validate_test.go Fixing some golint issues on the new validate command 2016-02-08 22:04:24 +00: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 + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
workspace_command_test.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07:00
workspace_delete.go command + backend: rename various API objects to "Workspace" terminology 2017-06-09 16:26:25 -07: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