terraform/command
James Bardin 797a1b339d DebugInfo and DebugGraph
Implement debugInfo and the DebugGraph

DebugInfo will be a global variable through which graph debug
information can we written to a compressed archive. The DebugInfo
methods are all safe for concurrent use, and noop with a nil receiver.
The API outside of the terraform package will be to call SetDebugInfo
to create the archive, and CloseDebugInfo() to properly close the file.
Each write to the archive will be flushed and sync'ed individually, so
in the event of a crash or a missing call to Close, the archive can
still be recovered.

The DebugGraph is a representation of a terraform Graph to be written to
the debug archive, currently in dot format. The DebugGraph also contains
an internal buffer with Printf and Write methods to add to this buffer.
The buffer will be written to an accompanying file in the debug archive
along with the graph.

This also adds a GraphNodeDebugger interface. Any node implementing
`NodeDebug() string` can output information to annotate the debug graph
node, and add the data to the log. This interface may change or be
removed to provide richer options for debugging graph nodes.

The new graph builders all delegate the build to the BasicGraphBuilder.
Having a Name field lets us differentiate the actual builder
implementation in the debug graphs.
2016-11-04 11:30:51 -04:00
..
test-fixtures command/meta: validate config immediately 2016-09-03 15:26:49 -07:00
apply.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
apply_destroy_test.go remove various typos 2015-09-11 11:56:20 -07:00
apply_test.go command/apply: apply from plan respects -backup and -state-out 2016-10-28 20:51:05 -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/meta: validate config immediately 2016-09-03 15:26:49 -07:00
command_test.go command/apply: apply from plan respects -backup and -state-out 2016-10-28 20:51:05 -04:00
counthookaction_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00
flag_kv.go command: FlagTypedKV parses bool as string 2016-10-26 21:45:39 -04:00
flag_kv_test.go command: FlagTypedKV parses bool as string 2016-10-26 21:45:39 -04:00
fmt.go command/fmt: Improve documentation for -diff and defaults (#6398) 2016-04-29 00:39:53 +01:00
fmt_test.go Update HCL to latest, unskip fmt tests 2016-04-27 07:37:47 -05:00
format_plan.go Fix plan output for data sources 2016-06-30 15:34:43 -04:00
format_plan_test.go Fix plan output for data sources 2016-06-30 15:34:43 -04:00
format_state.go core: Fix crash with tainted resource 2016-06-13 09:25:21 +02:00
get.go command/get: fix typo 2015-09-13 14:40:36 -07:00
get_test.go command: put the modules in ".terraform/modules" 2014-10-13 12:05:28 -07:00
graph.go command: Change module-depth default to -1 2016-01-20 13:58:02 -06:00
graph_test.go terraform: Graph returns *Graph for now 2015-02-19 12:08:32 -08:00
hcl_printer.go Strip off extra \n in hcl encoded variables 2016-08-04 17:18:43 -04:00
hook_count.go Make all terraform package tests pass under -race 2016-07-29 16:12:21 -04:00
hook_count_action.go terraform: orphans should call post-apply hook [GH-1938] 2015-06-25 20:11:29 -07:00
hook_count_test.go command: Do not count data sources in plan totals 2016-07-11 17:27:56 -05:00
hook_state.go command: StateHook for continous state updates 2015-02-23 21:57:17 -08:00
hook_state_test.go command: StateHook for continous state updates 2015-02-23 21:57:17 -08:00
hook_ui.go Make all terraform package tests pass under -race 2016-07-29 16:12:21 -04:00
import.go command: UI for import 2016-05-11 13:02:35 -07:00
import_test.go command/import: tests passing 2016-05-11 13:02:34 -07:00
init.go Fix vet issues 2016-10-18 11:11:12 -04:00
init_test.go Fixes #5011 - Backend downcased for init 2016-02-05 06:26:12 -06: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_core.go Implemented internal plugin calls; which allows us to compile plugins into the main terraform binary 2016-05-10 14:40:11 -04:00
internal_plugin_list.go Add PagerDuty provider 2016-10-24 14:19:55 +02:00
internal_plugin_test.go Implemented internal plugin calls; which allows us to compile plugins into the main terraform binary 2016-05-10 14:40:11 -04:00
meta.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
meta_test.go command: Change module-depth default to -1 2016-01-20 13:58:02 -06: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 Align the help string of output with documentation (#9735) 2016-10-31 11:34:56 +00:00
output_test.go core: Fix -module for terraform output command 2016-07-29 16:39:59 -05:00
plan.go DebugInfo and DebugGraph 2016-11-04 11:30:51 -04:00
plan_test.go command/meta: validate config immediately 2016-09-03 15:26:49 -07:00
push.go command/push: create the proper parent directory entries in tar 2016-08-24 10:39:50 -07:00
push_test.go Fix vet issues 2016-10-18 11:11:12 -04:00
refresh.go core: Fix -module for terraform output command 2016-07-29 16:39:59 -05:00
refresh_test.go command: Fixup comment typo 2016-08-16 09:48:21 -05:00
remote.go Add -no-color to help text 2015-06-22 13:14:01 +01:00
remote_config.go Fix vet issues 2016-10-18 11:11:12 -04:00
remote_config_test.go remove various typos 2015-09-11 11:56:20 -07:00
remote_pull.go Add -no-color to help text 2015-06-22 13:14:01 +01:00
remote_pull_test.go command: when setting up state, only write back if local is newer 2015-03-26 17:16:54 -07:00
remote_push.go Add -no-color to help text 2015-06-22 13:14:01 +01:00
remote_push_test.go command: move remote configuration stuff 2015-03-04 16:17:30 -08:00
show.go command: Change module-depth default to -1 2016-01-20 13:58:02 -06:00
show_test.go core: fix `terraform show` with remote state 2015-06-16 12:26:04 -05:00
state.go command/apply: apply from plan respects -backup and -state-out 2016-10-28 20:51:05 -04:00
state_command.go Add `terraform state list` command 2016-05-10 14:14:47 -04:00
state_list.go Add `terraform state list` command 2016-05-10 14:49:14 -04:00
state_list_test.go Add `terraform state list` command 2016-05-10 14:14:47 -04:00
state_meta.go command/state meta: State func 2016-05-11 09:16:48 -07:00
state_mv.go command: correct outdated comment 2016-08-19 23:56:27 -04:00
state_mv_test.go command: test for moving resource with count [GH-7797] 2016-08-19 12:05:20 -04:00
state_rm.go core: Add `terraform state rm` command and docs 2016-08-16 16:45:44 +01:00
state_rm_test.go Update state_rm_test.go 2016-08-16 18:10:38 +01:00
state_show.go Fix panic during "terraform show" with empty state 2016-10-26 17:18:36 -04:00
state_show_test.go Fix panic during "terraform show" with empty state 2016-10-26 17:18:36 -04:00
state_test.go command: compilation works 2016-05-10 17:03:58 -07:00
taint.go command: Prevent data resources from being tainted 2016-05-14 08:26:37 -07:00
taint_test.go Add tests and fix last issues 2016-05-26 19:56:03 -05:00
ui_input.go command: use bufio.ReadString instead of scanning to get spaces 2016-08-22 12:59:48 -07:00
ui_input_test.go command: use bufio.ReadString instead of scanning to get spaces 2016-08-22 12:59:48 -07:00
untaint.go Change taint behaviour to act as a normal resource 2016-05-26 19:55:26 -05:00
untaint_test.go Add tests and fix last issues 2016-05-26 19:56:03 -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