terraform/internal/command
Chris Arcand 7c0c2e952f command: Don't always update backend hash when fetching the saved backend
The Meta.backend_C_r_S_unchanged() method was sadly a bit of a mess.

It seems to have originally been used as a method to be called
when the backend is not changing, with an extra assumption that if the
configured backend's hash doesn't match the one in state, surely the
hash should just be updated as an option might have been moved to
command line flags.

However, this function was used throughout this file as 'the method to
load the initialized (but not necessarily configured) backend',
regardless of whether or not it is the same (unchanged). This is in
addition to Meta.backendFromState(), which is used to load the same
thing except in the main codepath of 'init -backend=false'.

These changes separate the concerns of backend_C_r_S_unchanged() by

1) Fetching the saved backend (savedBackend())
2) Updating the hash value in the backend cache when appropriate (either
   by leaving it to the caller to do themselves or by calling
   updateSavedupdateSavedBackendHash())

This allows migration codepaths to *not* update the hash value until
after a migration has successfully taken place.
2021-11-02 15:23:58 -05:00
..
arguments command: Remove the experimental "terraform add" command 2021-10-20 06:42:47 -07: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: Include deletion reasons in plan report 2021-09-23 14:37:08 -07: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 Test case for changing backend hash during aborted state migration 2021-11-02 10:20:37 -05:00
views command: Remove the experimental "terraform add" command 2021-10-20 06:42:47 -07:00
webbrowser Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
autocomplete_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
cli_ui.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
cli_ui_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
command.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
command_test.go command: Remove the experimental "terraform add" command 2021-10-20 06:42:47 -07: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 Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
flag_kv.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
flag_kv_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
fmt.go Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
fmt_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
get.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
get_test.go fix temp directory handling in some tests 2021-09-13 13:45:04 -04: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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Update copy for terraform init with cloud block 2021-10-28 19:29:16 -05:00
init_test.go Test case for changing backend hash during aborted state migration 2021-11-02 10:20:37 -05:00
login.go insert panic handlers 2021-10-28 11:51:39 -04:00
login_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
logout.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
logout_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
meta.go cli: Fix init failure with deleted cache 2021-10-21 08:44:26 -04:00
meta_backend.go command: Don't always update backend hash when fetching the saved backend 2021-11-02 15:23:58 -05:00
meta_backend_migrate.go Adjust default workspace naming prompt 2021-10-28 19:29:21 -05: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 Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05: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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
plugins_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
push.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state_list.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_list_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
state_meta.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_mv.go Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
state_mv_test.go de-linting 2021-09-01 11:36:21 -04:00
state_pull.go Add cloud {} configuration block for Terraform Cloud 2021-10-28 19:29:09 -05:00
state_pull_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
test_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
version.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
version_test.go Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00
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 Move command/ to internal/command/ 2021-05-17 14:09:07 -07:00