terraform/command
James Bardin feb7622846 monitor plugin std outputs for unexpected data
Once a plugin process is started, go-plugin will redirect the stdout and
stderr stream through a grpc service and provide those streams to the
client. This is rarely used, as it is prone to failing with races
because those same file descriptors are needed for the initial handshake
and logging setup, but data may be accidentally sent to these
nonetheless.

The usual culprits are stray `fmt.Print` usage where logging was
intended, or the configuration of a logger after the os.Stderr file
descriptor was replaced by go-plugin. These situations are very hard for
provider developers to debug since the data is discarded entirely.

While there may be improvements to be made in the go-plugin package to
configure this behavior, in the meantime we can add a simple monitoring
io.Writer to the streams which will surface th data as warnings in the
logs instead of writing it to `io.Discard`
2021-05-13 16:57:36 -04:00
..
arguments command+backend/local: -refresh-only and drift detection 2021-05-13 09:05:06 -07:00
cliconfig Grammar nit: "setup" as a verb should be spelled "set up" 2021-01-26 20:39:11 +01:00
clistate clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
e2etest command+backend/local: -refresh-only and drift detection 2021-05-13 09:05:06 -07:00
format Merge pull request #28687 from hashicorp/jbardin/sensitive-changes 2021-05-13 12:44:03 -04:00
jsonconfig command/jsonconfig: Add variable sensitive flag 2021-03-26 19:26:11 -04:00
jsonplan Merge pull request #28687 from hashicorp/jbardin/sensitive-changes 2021-05-13 12:44:03 -04:00
jsonprovider command/jsonprovider: bump format version (#28115) 2021-03-22 11:45:36 -04:00
jsonstate don't marshal state with the wrong schema 2021-02-23 10:19:24 -05:00
testdata command+backend/local: -refresh-only and drift detection 2021-05-13 09:05:06 -07:00
views core: Treat deposed objects the same as orphaned current objects 2021-05-13 09:05:06 -07:00
webbrowser command: Revert local patch for pkg/browser 2020-12-10 09:27:02 -05:00
apply.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
apply_destroy_test.go cli: Migrate apply to command views 2021-02-22 11:47:40 -05:00
apply_test.go command+backend/local: -refresh-only and drift detection 2021-05-13 09:05:06 -07:00
autocomplete.go
autocomplete_test.go
cli_ui.go
cli_ui_test.go
command.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
command_test.go plans: Track both the previous run and prior states in the plan 2021-05-05 15:11:05 -07:00
console.go lang/funcs: add (console-only) TypeFunction (#28501) 2021-04-23 10:29:50 -04:00
console_interactive.go move remaining helper packages to internal 2021-01-20 13:54:00 -05:00
console_interactive_solaris.go
console_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
flag_kv.go cli: Improve error for invalid -target flags 2021-02-08 13:48:04 -05:00
flag_kv_test.go
fmt.go cli: Fix fmt output for multi-line value exprs 2021-03-25 15:40:54 -04:00
fmt_test.go
get.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
get_test.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05:00
graph.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
graph_test.go cli: Remove positional plan argument from graph 2021-02-02 13:21:26 -05:00
hook_module_install.go
import.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
import_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
init.go cli: Only rewrite provider locks file if changed 2021-03-29 16:09:07 -04:00
init_test.go command tests: plan and init (#28616) 2021-05-05 14:13:20 -04:00
login.go Split off error MOTD error logging 2021-04-22 09:05:57 -05:00
login_test.go Add customized login success output for TFC/E 2021-04-21 21:23:42 -05:00
logout.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
logout_test.go
meta.go Add purple to the list of colorstring codes 2021-04-21 21:35:45 -05:00
meta_backend.go call the InConfigBody with addresses 2021-04-06 15:15:52 -04:00
meta_backend_migrate.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_backend_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
meta_config.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
meta_dependencies.go
meta_new.go
meta_providers.go monitor plugin std outputs for unexpected data 2021-05-13 16:57:36 -04:00
meta_test.go command staticcheck 2020-12-02 13:59:19 -05:00
meta_vars.go
output.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
output_test.go views: Expand test coverage for views.Output 2021-02-16 08:48:31 -05:00
plan.go command+backend/local: -refresh-only and drift detection 2021-05-13 09:05:06 -07:00
plan_test.go command tests: plan and init (#28616) 2021-05-05 14:13:20 -04:00
plugins.go monitor plugin std outputs for unexpected data 2021-05-13 16:57:36 -04:00
plugins_lock.go
plugins_lock_test.go
plugins_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
providers.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_lock.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_mirror.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_schema.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_schema_test.go add support for attributes with nested types in providers schema (#28055) 2021-03-12 08:28:22 -05:00
providers_test.go
push.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
refresh.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
refresh_test.go command tests: plan and init (#28616) 2021-05-05 14:13:20 -04:00
show.go command/views: Remove baseState argument from plan-rendering views 2021-05-10 09:25:30 -07:00
show_test.go command+backend/local: -refresh-only and drift detection 2021-05-13 09:05:06 -07:00
state_command.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_list.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_list_test.go command/state list: list resources in nested and expanded modules (#27268) 2020-12-14 11:07:15 -05:00
state_meta.go command/state list: list resources in nested and expanded modules (#27268) 2020-12-14 11:07:15 -05:00
state_mv.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
state_mv_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_pull.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_pull_test.go
state_push.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
state_push_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_replace_provider.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
state_replace_provider_test.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_rm.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
state_rm_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_show_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
state_test.go
taint.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
taint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
test.go core: Generalize the idea of a "plan mode", vs just destroy flag 2021-04-27 08:23:54 -07:00
test_test.go command: Experimental "terraform test" command 2021-02-22 14:21:45 -08:00
ui_input.go
ui_input_test.go
unlock.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
unlock_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
untaint.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
untaint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
validate.go cli: Migrate validate command to views 2021-03-18 15:56:28 -04:00
validate_test.go cli: Migrate validate command to views 2021-03-18 15:56:28 -04:00
version.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
version_test.go Remove revision from version command 2021-01-12 16:35:30 -05:00
workspace_command.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_command_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
workspace_delete.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
workspace_list.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_new.go command: use -lock=false consistently in -help output 2021-05-12 09:27:37 -07:00
workspace_select.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00