terraform/command
Martin Atkins a43b7df282 core: Handle forced-create_before_destroy during the plan walk
Previously we used a single plan action "Replace" to represent both the
destroy-before-create and the create-before-destroy variants of replacing.
However, this forces the apply graph builder to jump through a lot of
hoops to figure out which nodes need it forced on and rebuild parts of
the graph to represent that.

If we instead decide between these two cases at plan time, the actual
determination of it is more straightforward because each resource is
represented by only one node in the plan graph, and then we can ensure
we put the right nodes in the graph during DiffTransformer and thus avoid
the logic for dealing with deposed instances being spread across various
different transformers and node types.

As a nice side-effect, this also allows us to show the difference between
destroy-then-create and create-then-destroy in the rendered diff in the
CLI, although this change doesn't fully implement that yet.
2018-10-16 19:14:11 -07:00
..
clistate terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
e2etest Change -force to -auto-approve when destroying 2018-02-01 00:14:42 +00:00
format core: Handle forced-create_before_destroy during the plan walk 2018-10-16 19:14:11 -07:00
test-fixtures command: beginnings of new config loader in "terraform validate" 2018-10-16 18:20:32 -07:00
testdata Have backend operations properly unlock state 2017-02-15 14:41:55 -05:00
012_config_upgrade.go configupgrade: Analysis of input configuration 2018-10-16 18:50:29 -07:00
apply.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
apply_destroy_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
apply_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07: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 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 Implement the Enterprise enhanced remote backend 2018-08-03 22:22:55 +02:00
command_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
console.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
console_interactive.go command: update "terraform console" for HCL2 2018-10-16 18:46:46 -07: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 Use all tfvars files in working directory 2017-07-05 17:24:17 -07:00
debug_json2dot_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
flag_kv.go terraform: ugly huge change to weave in new HCL2-oriented types 2018-10-16 18:46:46 -07:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
fmt.go command: terraform fmt to use new HCL formatter 2018-10-16 18:49:20 -07:00
fmt_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
get.go use the new ModuleStorage in the command package 2017-10-27 12:58:24 -04:00
get_test.go update tests for updated output 2017-11-03 11:13:31 -04:00
graph.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
graph_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
hook_module_install.go command: new Meta methods for accessing the new config loader 2018-10-16 18:20:32 -07:00
hook_ui.go command: UiHook to report when it gets incorrect values 2018-10-16 19:14:11 -07:00
hook_ui_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
import.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
import_test.go unlock state in console, import, graph, and push 2018-03-21 12:13:40 -04:00
init.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
init_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
internal_plugin.go create a new InternalProviders test 2018-01-05 10:59:30 -05:00
internal_plugin_list.go v0.11.2 2018-01-09 23:13:33 +00:00
internal_plugin_test.go create a new InternalProviders test 2018-01-05 10:59:30 -05:00
meta.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
meta_backend.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
meta_backend_migrate.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
meta_backend_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
meta_config.go move "configschema" from "config" to "configs" 2018-10-16 18:50:29 -07:00
meta_new.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
meta_test.go properly cleanup and print correct error messages 2017-07-06 11:33:32 -04:00
output.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
output_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
plan.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
plan_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
plugins.go terraform: More wiring in of new provider types 2018-10-16 19:12:54 -07:00
plugins_lock.go Standardize on log level "WARN" rather than "WARNING" 2018-01-16 18:05:26 -08:00
plugins_lock_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
plugins_test.go cleanup temp files from command tests 2018-03-28 13:08:38 -04:00
providers.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
providers_test.go command/providers: Add regression test 2017-06-10 12:02:01 +01:00
push.go command: remove "terraform push" 2018-10-16 18:24:47 -07:00
refresh.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
refresh_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
show.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
show_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_command.go Thread the environment through all commands 2017-02-28 16:35:46 -05:00
state_list.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_list_test.go cli: "terraform state list" -id argument 2018-02-26 10:54:48 -08:00
state_meta.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_mv.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_mv_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_pull.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_pull_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_push.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_push_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_rm.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_rm_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_show.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_show_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
state_test.go Make the state commands use the real command.Meta 2017-07-27 15:33:50 -04:00
taint.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
taint_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07: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 terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
unlock_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
untaint.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
untaint_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
validate.go command: validate must set values for root variables 2018-10-16 18:50:29 -07:00
validate_test.go command: beginnings of new config loader in "terraform validate" 2018-10-16 18:20:32 -07:00
version.go command: Include provider versions in "terraform version" 2017-10-25 17:36:24 -07:00
version_test.go Implement CLI, version command 2014-05-24 12:04:43 -07:00
workspace_command.go Update wrong usage workspace command description 2018-10-03 12:00:27 +01:00
workspace_command_test.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
workspace_delete.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
workspace_list.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
workspace_new.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
workspace_select.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
workspace_show.go command: parameter autocomplete for "terraform workspace ..." 2017-09-26 14:01:13 -07:00