terraform/internal/command
Martin Atkins 23395a1022 providercache: Discard lock entries for unused providers
Previously we would only ever add new lock entries or update existing
ones. However, it's possible that over time a module may _cease_ using
a particular provider, at which point we ought to remove it from the lock
file so that operations won't fail when seeing that the provider cache
directory is inconsistent with the lock file.

Now the provider installer (EnsureProviderVersions) will remove any lock
file entries that relate to providers not included in the given
requirements, which therefore makes the resulting lock file properly match
the set of packages the installer wrote into the cache.

This does potentially mean that someone could inadvertently defeat the
lock by removing a provider dependency, running "terraform init", then
undoing that removal, and finally running "terraform init" again. However,
that seems relatively unlikely compared to the likelihood of removing
a provider and keeping it removed, and in the event it _did_ happen the
changes to the lock entry for that provider would be visible in the diff
of the provider lock file as usual, and so could be noticed in code
review just as for any other change to dependencies.
2021-12-17 15:30:21 -08:00
..
arguments command/init: Add -cloud alias (of -backend) 2021-11-19 14:40:12 -06:00
cliconfig cliconfig: Fix error message about invalid credentials helper type 2021-09-29 13:36:59 -07:00
clistate Upgrade to Go 1.17 2021-08-17 15:20:05 -07:00
e2etest cli: Fix backend init failure with deleted cache 2021-10-25 12:45:35 -04:00
format command/format: Limitation of plans.ResourceInstanceDeleteBecauseNoModule 2021-12-13 10:04:15 -05:00
jsonconfig allow json output to marshal ConfigModeAttr blocks 2021-09-03 13:53:52 -04:00
jsonplan json-output: Release format version 1.0 2021-10-06 11:13:06 -04:00
jsonprovider Merge pull request #29648 from hashicorp/jbardin/tfproto6.1 2021-10-28 16:00:02 -04:00
jsonstate json-output: Release format version 1.0 2021-10-06 11:13:06 -04:00
testdata providercache: Discard lock entries for unused providers 2021-12-17 15:30:21 -08:00
views command: Remove the experimental "terraform add" command 2021-10-20 06:42:47 -07:00
webbrowser
workdir workdir: Start of a new package for working directory state management 2021-09-10 14:56:49 -07:00
apply.go command: Adjust skipping of resource counts for any remote implementation 2021-10-29 21:23:28 -05:00
apply_destroy_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
apply_test.go test planfile may need to have a specific lineage 2021-10-13 17:28:14 -04:00
autocomplete.go
autocomplete_test.go
cli_ui.go
cli_ui_test.go
command.go
command_test.go command: make module installation interruptible 2021-11-11 12:28:10 +00:00
console.go Merge pull request #29825 from hashicorp/jbardin/no-panicwrap 2021-10-29 14:41:05 -04:00
console_interactive.go remove wrapped streams and readline 2021-10-28 11:51:39 -04:00
console_interactive_solaris.go Upgrade to Go 1.17 2021-08-17 15:20:05 -07:00
console_test.go
flag_kv.go
flag_kv_test.go
fmt.go
fmt_test.go
get.go command: make module installation interruptible 2021-11-11 12:28:10 +00:00
get_test.go command: make module installation interruptible 2021-11-11 12:28:10 +00:00
graph.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
graph_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
hook_module_install.go
import.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
import_test.go backend/local: Check dependency lock consistency before any operations 2021-10-01 14:43:58 -07:00
init.go command/init: Adjust init help output 2021-11-19 14:40:12 -06:00
init_test.go providercache: Discard lock entries for unused providers 2021-12-17 15:30:21 -08:00
login.go insert panic handlers 2021-10-28 11:51:39 -04:00
login_test.go
logout.go
logout_test.go
meta.go cli: Fix init failure with deleted cache 2021-10-21 08:44:26 -04:00
meta_backend.go command/meta_backend: Allow the remote backend to have no workspaces [again] 2021-12-14 09:50:42 -06:00
meta_backend_migrate.go Do not ask to migrate empty default workspace 2021-12-01 11:43:41 -06:00
meta_backend_migrate_test.go Backend State Migration to `cloud`: Multiple Workspaces 2021-10-28 19:29:13 -05:00
meta_backend_test.go command/init: Fail if -input=false but required 2021-10-25 15:08:10 -04:00
meta_config.go revert change to installModules diag handling 2021-11-11 12:28:16 +00:00
meta_dependencies.go backend/local: Check dependency lock consistency before any operations 2021-10-01 14:43:58 -07:00
meta_new.go Move plans/ to internal/plans/ 2021-05-17 14:09:07 -07:00
meta_providers.go command: Early error message for missing cache entries of locked providers 2021-10-05 10:59:59 -07:00
meta_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
meta_vars.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
output.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
output_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
plan.go Clarify legacy Ui comments 2021-10-28 19:29:21 -05:00
plan_test.go backend/local: Check dependency lock consistency before any operations 2021-10-01 14:43:58 -07:00
plugins.go workdir: Start of a new package for working directory state management 2021-09-10 14:56:49 -07:00
plugins_lock.go core: Simplify and centralize plugin availability checks 2021-10-01 14:43:58 -07:00
plugins_lock_test.go
plugins_test.go
providers.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
providers_lock.go providers subcommand tests (#28744) 2021-05-19 12:56:16 -04:00
providers_lock_test.go providers subcommand tests (#28744) 2021-05-19 12:56:16 -04:00
providers_mirror.go
providers_mirror_test.go providers subcommand tests (#28744) 2021-05-19 12:56:16 -04:00
providers_schema.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
providers_schema_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
providers_test.go
push.go
refresh.go Clarify legacy Ui comments 2021-10-28 19:29:21 -05:00
refresh_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
show.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
show_test.go remove debugging println 2021-09-28 17:58:40 -04:00
state_command.go
state_list.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_list_test.go
state_meta.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_mv.go Error if backup or backup-out options are used without the state option on non-local backends for the state mv command 2021-11-09 13:09:36 -06:00
state_mv_test.go Error if backup or backup-out options are used without the state option on non-local backends for the state mv command 2021-11-09 13:09:36 -06:00
state_pull.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_pull_test.go
state_push.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_push_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_replace_provider.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_replace_provider_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_rm.go
state_rm_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_show.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_show_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
taint.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
taint_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
test.go command: make module installation interruptible 2021-11-11 12:28:10 +00:00
test_test.go
ui_input.go command: Ensure all answers were used in command.testInputResponseMap 2021-09-21 22:26:16 -05:00
ui_input_test.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
unlock.go Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
unlock_test.go
untaint.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
untaint_test.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
validate.go core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
validate_test.go
version.go
version_test.go
workspace_command.go command/workspace_delete: Allow deleting a workspace with empty husks 2021-10-13 13:54:11 -07:00
workspace_command_test.go command/workspace_delete: Allow deleting a workspace with empty husks 2021-10-13 13:54:11 -07:00
workspace_delete.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
workspace_list.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
workspace_new.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
workspace_select.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
workspace_show.go