terraform/internal
Martin Atkins ee9e346039 refactoring: ApplyMoves skips moving when destination address occupied
Per our rule that the content of the state can never make a move statement
invalid, our behavior for two objects trying to occupy the same address
will be to just ignore that and let the object already at the address
take priority.

For the moment this is silent from an end-user perspective and appears
only in our internal logs. However, I'm hoping that our future planned
adjustment to the interface of this function will include some way to
allow reporting these collisions in some end-user-visible way, either as
a separate warning per collision or as a single warning that collects
together all of the collisions into a single message somehow.

This situation can arise both because the previous run state already
contained an object at the target address of a move and because more than
one move ends up trying to target the same location. In the latter case,
which one "wins" is decided by our depth-first traversal order, which is
in turn derived from our chaining and nesting rules and is therefore
arbitrary but deterministic.
2021-09-20 09:06:22 -07:00
..
addrs refactoring: ImpliedMoveStatements function 2021-09-20 09:06:22 -07:00
backend backend/local: TestLocal_plan_context_error to fail terraform.NewContext 2021-09-14 10:35:08 -07:00
builtin return diagnostics from provisioners 2021-05-19 11:24:54 -04:00
command cli: Omit move-only drift, except for refresh-only 2021-09-17 14:47:00 -04:00
communicator de-linting 2021-09-01 11:36:21 -04:00
configs handle NestedTypes in Block.CoerceValue 2021-09-14 16:02:50 -04:00
copy deprecate helper/copy 2020-10-08 08:42:16 -04:00
dag de-linting 2021-09-01 11:36:21 -04:00
depsfile Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
didyoumean didyoumean: move from "helper" to "internal" 2020-10-02 13:35:07 -07:00
e2e Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
earlyconfig Refactoring of module source addresses and module installation 2021-06-03 08:50:34 -07:00
experiments configs: Include "moved" blocks when merging multiple files into a module 2021-07-01 08:28:02 -07:00
getmodules Refactoring of module source addresses and module installation 2021-06-03 08:50:34 -07:00
getproviders internal/registry: Add URL to error message for clarity (#29298) 2021-08-10 15:20:40 +01:00
grpcwrap Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
helper Upgrade to Go 1.17 2021-08-17 15:20:05 -07:00
httpclient Move httpclient/ to internal/httpclient/ 2021-05-17 14:09:07 -07:00
initwd addrs: ModuleRegistryPackage for representing module registry packages 2021-06-03 08:50:34 -07:00
instances refactoring: First round of ValidateMoves rules 2021-07-29 12:29:36 -07:00
ipaddr lang/funcs: Preserve IP address leading zero behavior from Go 1.16 2021-08-17 15:20:05 -07:00
lang lang/funcs: Preserve IP address leading zero behavior from Go 1.16 2021-08-17 15:20:05 -07:00
legacy Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
logging go.mod,backend: update coreos/etcd dependency to release-3.4 branch 2021-07-20 12:27:22 -04:00
modsdir Refactoring of module source addresses and module installation 2021-06-03 08:50:34 -07:00
moduledeps Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
moduletest Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
plans plans: Add resource drift to the plan file format 2021-09-16 15:22:37 -04:00
plugin Move terraform/ to internal/terraform/ 2021-05-17 14:09:07 -07:00
plugin6 Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
provider-simple Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
provider-simple-v6 Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
provider-terraform/main Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
providercache tools: remove terraform-bundle. (#28876) 2021-06-03 14:08:04 -04:00
providers Move states/ to internal/states/ 2021-05-17 14:09:07 -07:00
provisioner-local-exec/main Move plugin/ and plugin6/ to internal/plugin{,6}/ 2021-05-17 14:09:07 -07:00
provisioners Move configs/ to internal/configs/ 2021-05-17 14:09:07 -07:00
refactoring refactoring: ApplyMoves skips moving when destination address occupied 2021-09-20 09:06:22 -07:00
registry internal/registry: Add URL to error message for clarity (#29298) 2021-08-10 15:20:40 +01:00
repl core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
replacefile Upgrade to Go 1.17 2021-08-17 15:20:05 -07:00
states core: Functional-style API for terraform.Context 2021-08-30 13:59:14 -07:00
terminal Upgrade to Go 1.17 2021-08-17 15:20:05 -07:00
terraform cli: Omit move-only drift, except for refresh-only 2021-09-17 14:47:00 -04:00
tfdiags Move tfdiags/ to internal/tfdiags/ 2021-05-17 14:09:07 -07:00
tfplugin5 build: Centralize our protobuf compilation steps 2021-08-20 16:18:48 -07:00
tfplugin6 build: Centralize our protobuf compilation steps 2021-08-20 16:18:48 -07:00
typeexpr internal/typeexpr: staticcheck 2020-12-02 13:59:19 -05:00