From b53375e650a6b759cd83eaaf73e7da1e2ff40a84 Mon Sep 17 00:00:00 2001 From: peteski22 Date: Thu, 12 May 2022 20:08:12 +0100 Subject: [PATCH 1/4] Added optional -log-level flag to 'operator migrate' command, also falls back to 'VAULT_LOG_LEVEL' before defaulting to 'info' --- command/operator_migrate.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/command/operator_migrate.go b/command/operator_migrate.go index 1931584bc3f4..6e1712856883 100644 --- a/command/operator_migrate.go +++ b/command/operator_migrate.go @@ -11,6 +11,7 @@ import ( "time" log "github.com/hashicorp/go-hclog" + "github.com/hashicorp/go-secure-stdlib/strutil" "github.com/hashicorp/hcl" "github.com/hashicorp/hcl/hcl/ast" "github.com/hashicorp/vault/command/server" @@ -38,6 +39,7 @@ type OperatorMigrateCommand struct { flagStart string flagReset bool logger log.Logger + flagLogLevel string ShutdownCh chan struct{} } @@ -96,6 +98,16 @@ func (c *OperatorMigrateCommand) Flags() *FlagSets { Usage: "Reset the migration lock. No migration will occur.", }) + f.StringVar(&StringVar{ + Name: "log-level", + Target: &c.flagLogLevel, + Default: "info", + EnvVar: "VAULT_LOG_LEVEL", + Completion: complete.PredictSet("trace", "debug", "info", "warn", "error"), + Usage: "Log verbosity level. Supported values (in order of detail) are " + + "\"trace\", \"debug\", \"info\", \"warn\", and \"error\". These are not case sensitive.", + }) + return set } @@ -108,7 +120,6 @@ func (c *OperatorMigrateCommand) AutocompleteFlags() complete.Flags { } func (c *OperatorMigrateCommand) Run(args []string) int { - c.logger = logging.NewVaultLogger(log.Info) f := c.Flags() if err := f.Parse(args); err != nil { @@ -116,6 +127,14 @@ func (c *OperatorMigrateCommand) Run(args []string) int { return 1 } + c.flagLogLevel = strings.ToLower(c.flagLogLevel) + validLevels := []string{"trace", "debug", "info", "warn", "error"} + if !strutil.StrListContains(validLevels, c.flagLogLevel) { + c.UI.Error(fmt.Sprintf("%s is an unknown log level. Valid log levels are: %s", c.flagLogLevel, validLevels)) + return 1 + } + c.logger = logging.NewVaultLogger(log.LevelFromString(c.flagLogLevel)) + if c.flagConfig == "" { c.UI.Error("Must specify exactly one config path using -config") return 1 From 3f58089f032938ca1a9bdb2c731d2c38125b3036 Mon Sep 17 00:00:00 2001 From: peteski22 Date: Thu, 12 May 2022 20:22:15 +0100 Subject: [PATCH 2/4] Added changelog entry --- changelog/15405.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 changelog/15405.txt diff --git a/changelog/15405.txt b/changelog/15405.txt new file mode 100644 index 000000000000..eb98386335a8 --- /dev/null +++ b/changelog/15405.txt @@ -0,0 +1,3 @@ +```release-note:improvement +command: Support optional '-log-level' flag to be passed to 'operator migrate' command (defaults to info). Also support VAULT_LOG_LEVEL env var. +``` \ No newline at end of file From d5de5cb0f869c95d921af218e4cbb7eaecc5fd48 Mon Sep 17 00:00:00 2001 From: peteski22 Date: Thu, 12 May 2022 20:24:51 +0100 Subject: [PATCH 3/4] Reordered flag --- command/operator_migrate.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command/operator_migrate.go b/command/operator_migrate.go index 6e1712856883..5dcec8a56ed6 100644 --- a/command/operator_migrate.go +++ b/command/operator_migrate.go @@ -36,10 +36,10 @@ type OperatorMigrateCommand struct { PhysicalBackends map[string]physical.Factory flagConfig string + flagLogLevel string flagStart string flagReset bool logger log.Logger - flagLogLevel string ShutdownCh chan struct{} } From c4950aa99eb557bbaf20adb892e9058f16c2b9e2 Mon Sep 17 00:00:00 2001 From: peteski22 Date: Thu, 12 May 2022 20:46:15 +0100 Subject: [PATCH 4/4] Fix log levels for agent and server --- command/agent.go | 4 ++-- command/server.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/command/agent.go b/command/agent.go index 6bafd4cb072d..bc074afd0f27 100644 --- a/command/agent.go +++ b/command/agent.go @@ -127,9 +127,9 @@ func (c *AgentCommand) Flags() *FlagSets { Target: &c.flagLogLevel, Default: "info", EnvVar: "VAULT_LOG_LEVEL", - Completion: complete.PredictSet("trace", "debug", "info", "warn", "err"), + Completion: complete.PredictSet("trace", "debug", "info", "warn", "error"), Usage: "Log verbosity level. Supported values (in order of detail) are " + - "\"trace\", \"debug\", \"info\", \"warn\", and \"err\".", + "\"trace\", \"debug\", \"info\", \"warn\", and \"error\".", }) f.BoolVar(&BoolVar{ diff --git a/command/server.go b/command/server.go index 1b0a3231a9c8..5404468b74dd 100644 --- a/command/server.go +++ b/command/server.go @@ -189,9 +189,9 @@ func (c *ServerCommand) Flags() *FlagSets { Target: &c.flagLogLevel, Default: notSetValue, EnvVar: "VAULT_LOG_LEVEL", - Completion: complete.PredictSet("trace", "debug", "info", "warn", "err"), + Completion: complete.PredictSet("trace", "debug", "info", "warn", "error"), Usage: "Log verbosity level. Supported values (in order of detail) are " + - "\"trace\", \"debug\", \"info\", \"warn\", and \"err\".", + "\"trace\", \"debug\", \"info\", \"warn\", and \"error\".", }) f.StringVar(&StringVar{