opentofu/command
Alisdair McDiarmid d9d88b9243 cli: Add comprehensive JSON diagnostic structure
This commit adds a comprehensive JSON format for diagnostics, which
ensures that all current diagnostic output can be semantically
represented in a machine-readable format. The diagnostic formatter
interface remains unchanged, but it first transforms its input via the
JSON format to ensure that there is only one code path for creating the
diagnostic data.

The JSON diagnostic renderer extracts the non-presentational logic from
the format package, and returns a structure which can either be
marshaled into JSON or rendered as text. The resulting text diagnostic
output is unchanged for all cases covered by unit tests and my own
manual testing.

Included in this commit are a number of golden reference files for the
marshaled JSON output of a diagnostic. This format should change rarely
if at all, and these are in place to ensure that any changes to the
format are intentional and considered.
2021-03-12 13:12:37 -05:00
..
arguments cli: Fix overly broad auto-approve argument 2021-02-23 10:09:30 -05: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 Give suggestions & remind users to use required_providers when provider not in registry (#28014) 2021-03-11 08:54:18 -05:00
format cli: Add comprehensive JSON diagnostic structure 2021-03-12 13:12:37 -05:00
jsonconfig cli: Fix for provider requirements in JSON plan 2021-02-05 14:01:58 -05:00
jsonplan command/jsonconfig: Use correct provider address to access schema 2020-04-06 09:24:23 -07:00
jsonprovider add support for attributes with nested types in providers schema (#28055) 2021-03-12 08:28:22 -05:00
jsonstate don't marshal state with the wrong schema 2021-02-23 10:19:24 -05:00
testdata add support for attributes with nested types in providers schema (#28055) 2021-03-12 08:28:22 -05:00
views cli: Add comprehensive JSON diagnostic structure 2021-03-12 13:12:37 -05:00
webbrowser command: Revert local patch for pkg/browser 2020-12-10 09:27:02 -05:00
apply_destroy_test.go cli: Migrate apply to command views 2021-02-22 11:47:40 -05:00
apply_test.go cli: Migrate apply to command views 2021-02-22 11:47:40 -05:00
apply.go backend: Replace ShowDiagnostics with view.Diagnostics 2021-02-25 11:26:05 -05:00
autocomplete_test.go command: use newer version of "complete" library 2017-12-05 10:24:04 -08:00
autocomplete.go terraform: Ugly huge change to weave in new State and Plan types 2018-10-16 19:11:09 -07:00
cli_ui_test.go command/*: colors on error messages (red) 2014-07-12 20:59:16 -07:00
cli_ui.go adding new AskSecret to ColorizeUi 2015-04-29 13:07:13 -05:00
command_test.go cli: Add initial command views abstraction 2021-02-11 15:06:39 -05:00
command.go cli: Remove legacy positional path arguments 2021-02-02 13:21:26 -05: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_interactive.go move remaining helper packages to internal 2021-01-20 13:54:00 -05:00
console_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
console.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
flag_kv_test.go command: use helper/variables for flags and parsing 2016-12-10 14:30:40 -05:00
flag_kv.go cli: Improve error for invalid -target flags 2021-02-08 13:48:04 -05:00
fmt_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
fmt.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
get.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
graph.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
hook_module_install.go Move module install functionality over to internal/initwd 2019-01-14 11:33:21 -08:00
import_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
import.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
init_test.go command/init: Add a new flag -lockfile=readonly (#27630) 2021-03-09 11:12:00 -05:00
init.go Give suggestions & remind users to use required_providers when provider not in registry (#28014) 2021-03-11 08:54:18 -05:00
login_test.go Add command/login test for scopes 2020-09-15 19:30:48 -04:00
login.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
logout_test.go command/logout: Add terraform logout command 2020-02-06 15:00:55 -05:00
logout.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05: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_backend.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 command/init: Read, respect, and update provider dependency locks 2020-10-09 09:26:23 -07:00
meta_new.go prune dead code from command/meta 2019-07-18 16:11:41 -04:00
meta_providers.go command: Experimental "terraform test" command 2021-02-22 14:21:45 -08:00
meta_test.go command staticcheck 2020-12-02 13:59:19 -05:00
meta_vars.go vendor: switch to HCL 2.0 in the HCL repository 2019-10-02 15:10:21 -07:00
meta.go cli: Migrate apply to command views 2021-02-22 11:47:40 -05:00
output_test.go views: Expand test coverage for views.Output 2021-02-16 08:48:31 -05:00
output.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
plan_test.go views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -05:00
plan.go views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -05:00
plugins_lock_test.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
plugins_lock.go command: remove unused method on pluginSHA256LockFile (#26402) 2020-09-29 08:46:51 -04:00
plugins_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
plugins.go run built-in provisioners in-process 2020-12-02 12:45:00 -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_test.go add support for attributes with nested types in providers schema (#28055) 2021-03-12 08:28:22 -05:00
providers_schema.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
providers_test.go internal: Fix lockfile constraint output for 1.2.* 2020-10-20 10:14:03 -04:00
providers.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
push.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
refresh_test.go cli: Migrate refresh to command views 2021-02-22 11:58:52 -05:00
refresh.go views: Fix missing source in diagnostic output 2021-02-26 16:43:03 -05:00
show_test.go backend/local: Replace CLI with view instance 2021-02-18 12:08:08 -05:00
show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_command.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_list.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -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_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_mv.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_pull_test.go deprecate helper/copy 2020-10-08 08:42:16 -04:00
state_pull.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_push_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_push.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_replace_provider_test.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_replace_provider.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_rm_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
state_rm.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_show.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
state_test.go command: Allow tests to run to completion without panics or hangs 2018-10-16 19:14:11 -07:00
taint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
taint.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
test_test.go command: Experimental "terraform test" command 2021-02-22 14:21:45 -08:00
test.go command: Experimental "terraform test" command 2021-02-22 14:21:45 -08:00
ui_input_test.go Exit with error if UI input scan fails (#26509) 2020-10-21 14:10:06 -04:00
ui_input.go Exit with error if UI input scan fails (#26509) 2020-10-21 14:10:06 -04:00
unlock_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
unlock.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
untaint_test.go clistate: Update clistate.Locker for command views 2021-02-16 07:19:22 -05:00
untaint.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
validate_test.go Mildwonkey/providers interface renaming (#27805) 2021-02-18 10:13:43 -05:00
validate.go cli: Remove -var/-var-file flags from validate 2021-02-24 12:29:56 -05:00
version_test.go Remove revision from version command 2021-01-12 16:35:30 -05:00
version.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_command.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_delete.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_list.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05:00
workspace_new.go cli: Add reference to global options to help text 2021-02-22 09:25:56 -05: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