From deab695fa01349831618267a0420d3bc00c55674 Mon Sep 17 00:00:00 2001 From: Daniel Nilsson Date: Mon, 17 Jul 2023 10:38:27 +0200 Subject: [PATCH] use PreRunE instead of Args for functions utilizing config values in cases where all credentials are resolved without config file (environment variables) we need to run these functions in the right order, first resolve the root.PersistentPreRunE (to resolve the bearer token etcetra) after we have resolved those values, we can continue with the sub-command and correctly assert opts.Appliance() without having to worry about empty Authorization header value, which is the current case in the main branch. This PR fixes cases where we have disabled keyring and do not persist the bearer token value, as example: ```bash SDPCTL_URL=https://controller.appgate.devops:8443/ SDPCTL_API_VERSION=19 SDPCTL_NO_KEYRING=true SDPCTL_USERNAME=usernmaeSDPCTL_PASSWORD=the_password sdpctl appliance export-seed ``` --- cmd/appliance/logs.go | 2 +- cmd/appliance/maintenance/disable.go | 2 +- cmd/appliance/metric.go | 2 +- cmd/appliance/resolve_name.go | 2 +- cmd/appliance/resolve_name_status.go | 2 +- cmd/appliance/seed.go | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/cmd/appliance/logs.go b/cmd/appliance/logs.go index 05186cd3..4d8e9663 100644 --- a/cmd/appliance/logs.go +++ b/cmd/appliance/logs.go @@ -56,7 +56,7 @@ func NewLogsCmd(f *factory.Factory) *cobra.Command { Short: docs.ApplianceLogsDoc.Short, Long: docs.ApplianceLogsDoc.Short, Example: docs.ApplianceLogsDoc.ExampleString(), - Args: func(cmd *cobra.Command, args []string) error { + PreRunE: func(cmd *cobra.Command, args []string) error { return cmdappliance.ArgsSelectAppliance(cmd, args, &opts.AppliancCmdOpts) }, RunE: func(c *cobra.Command, args []string) error { diff --git a/cmd/appliance/maintenance/disable.go b/cmd/appliance/maintenance/disable.go index d9e06f14..84a4328c 100644 --- a/cmd/appliance/maintenance/disable.go +++ b/cmd/appliance/maintenance/disable.go @@ -21,7 +21,7 @@ func NewDisableCmd(f *factory.Factory) *cobra.Command { Short: docs.MaintenanceDisable.Short, Long: docs.MaintenanceDisable.Long, Example: docs.MaintenanceDisable.ExampleString(), - Args: func(cmd *cobra.Command, args []string) error { + PreRunE: func(cmd *cobra.Command, args []string) error { return toggleArgs(cmd, &opts, args) }, RunE: func(c *cobra.Command, args []string) error { diff --git a/cmd/appliance/metric.go b/cmd/appliance/metric.go index 69c67f9a..0f2667d3 100644 --- a/cmd/appliance/metric.go +++ b/cmd/appliance/metric.go @@ -41,7 +41,7 @@ func NewMetricCmd(f *factory.Factory) *cobra.Command { Long: docs.ApplianceMetricsDoc.Long, Example: docs.ApplianceMetricsDoc.ExampleString(), Aliases: []string{"metrics"}, - Args: func(cmd *cobra.Command, args []string) error { + PreRunE: func(cmd *cobra.Command, args []string) error { ctx := context.Background() a, err := opts.Appliance(opts.Config) if err != nil { diff --git a/cmd/appliance/resolve_name.go b/cmd/appliance/resolve_name.go index 6a827cef..b2795e75 100644 --- a/cmd/appliance/resolve_name.go +++ b/cmd/appliance/resolve_name.go @@ -40,7 +40,7 @@ func NewResolveNameCmd(f *factory.Factory) *cobra.Command { Short: docs.ApplianceResolveNameDoc.Short, Long: docs.ApplianceResolveNameDoc.Long, Example: docs.ApplianceResolveNameDoc.ExampleString(), - Args: func(cmd *cobra.Command, args []string) error { + PreRunE: func(cmd *cobra.Command, args []string) error { a, err := opts.Appliance(opts.Config) if err != nil { return err diff --git a/cmd/appliance/resolve_name_status.go b/cmd/appliance/resolve_name_status.go index e221f0f2..74716109 100644 --- a/cmd/appliance/resolve_name_status.go +++ b/cmd/appliance/resolve_name_status.go @@ -40,7 +40,7 @@ func NewResolveNameStatusCmd(f *factory.Factory) *cobra.Command { Short: docs.ApplianceResolveNameStatusDoc.Short, Long: docs.ApplianceResolveNameStatusDoc.Long, Example: docs.ApplianceResolveNameStatusDoc.ExampleString(), - Args: func(cmd *cobra.Command, args []string) error { + PreRunE: func(cmd *cobra.Command, args []string) error { a, err := opts.Appliance(opts.Config) if err != nil { return err diff --git a/cmd/appliance/seed.go b/cmd/appliance/seed.go index d86c8646..2242f887 100644 --- a/cmd/appliance/seed.go +++ b/cmd/appliance/seed.go @@ -70,7 +70,7 @@ func NewSeedCmd(f *factory.Factory) *cobra.Command { Short: docs.ApplianceSeedDocs.Short, Long: docs.ApplianceSeedDocs.Long, Example: docs.ApplianceSeedDocs.ExampleString(), - Args: func(cmd *cobra.Command, args []string) error { + PreRunE: func(cmd *cobra.Command, args []string) error { noInteractive, err := cmd.Flags().GetBool("no-interactive") if err != nil { return err