diff --git a/internal/cmd/argus/instance/create/create_test.go b/internal/cmd/argus/instance/create/create_test.go index e75827f86..9edf81191 100644 --- a/internal/cmd/argus/instance/create/create_test.go +++ b/internal/cmd/argus/instance/create/create_test.go @@ -56,6 +56,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), PlanId: utils.Ptr(testPlanId), @@ -134,6 +135,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), InstanceName: utils.Ptr(""), diff --git a/internal/cmd/argus/instance/delete/delete_test.go b/internal/cmd/argus/instance/delete/delete_test.go index 5508651cb..b9e905e9f 100644 --- a/internal/cmd/argus/instance/delete/delete_test.go +++ b/internal/cmd/argus/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/argus/instance/describe/describe_test.go b/internal/cmd/argus/instance/describe/describe_test.go index 0799f8989..4a6f22a4b 100644 --- a/internal/cmd/argus/instance/describe/describe_test.go +++ b/internal/cmd/argus/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/argus/instance/list/list_test.go b/internal/cmd/argus/instance/list/list_test.go index 1f40779d7..f9a0a0e7c 100644 --- a/internal/cmd/argus/instance/list/list_test.go +++ b/internal/cmd/argus/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/argus/instance/update/update_test.go b/internal/cmd/argus/instance/update/update_test.go index 5a2ab1d33..9c0864840 100644 --- a/internal/cmd/argus/instance/update/update_test.go +++ b/internal/cmd/argus/instance/update/update_test.go @@ -82,6 +82,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, PlanId: utils.Ptr(testNewPlanId), diff --git a/internal/cmd/argus/plans/plans_test.go b/internal/cmd/argus/plans/plans_test.go index d7072ab48..2e6364416 100644 --- a/internal/cmd/argus/plans/plans_test.go +++ b/internal/cmd/argus/plans/plans_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/auth/activate-service-account/activate_service_account.go b/internal/cmd/auth/activate-service-account/activate_service_account.go index ae1b2f537..6f2c5b9db 100644 --- a/internal/cmd/auth/activate-service-account/activate_service_account.go +++ b/internal/cmd/auth/activate-service-account/activate_service_account.go @@ -9,6 +9,7 @@ import ( cliErr "github.com/stackitcloud/stackit-cli/internal/pkg/errors" "github.com/stackitcloud/stackit-cli/internal/pkg/examples" "github.com/stackitcloud/stackit-cli/internal/pkg/flags" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/spf13/cobra" sdkAuth "github.com/stackitcloud/stackit-sdk-go/core/auth" @@ -31,7 +32,7 @@ type inputModel struct { JwksCustomEndpoint string } -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "activate-service-account", Short: "Authenticates using a service account", @@ -72,11 +73,12 @@ func NewCmd() *cobra.Command { // Initializes the authentication flow rt, err := sdkAuth.SetupAuth(cfg) if err != nil { + p.Debug(print.ErrorLevel, "setup auth: %v", err) return &cliErr.ActivateServiceAccountError{} } // Authenticates the service account and stores credentials - email, err := auth.AuthenticateServiceAccount(rt) + email, err := auth.AuthenticateServiceAccount(p, rt) if err != nil { var activateServiceAccountError *cliErr.ActivateServiceAccountError if !errors.As(err, &activateServiceAccountError) { @@ -85,7 +87,7 @@ func NewCmd() *cobra.Command { return err } - cmd.Printf("You have been successfully authenticated to the STACKIT CLI!\nService account email: %s\n", email) + p.Info("You have been successfully authenticated to the STACKIT CLI!\nService account email: %s\n", email) return nil }, diff --git a/internal/cmd/auth/activate-service-account/activate_service_account_test.go b/internal/cmd/auth/activate-service-account/activate_service_account_test.go index 912412c56..04f7a9084 100644 --- a/internal/cmd/auth/activate-service-account/activate_service_account_test.go +++ b/internal/cmd/auth/activate-service-account/activate_service_account_test.go @@ -90,7 +90,7 @@ func TestParseInput(t *testing.T) { for _, tt := range tests { t.Run(tt.description, func(t *testing.T) { - cmd := NewCmd() + cmd := NewCmd(nil) err := globalflags.Configure(cmd.Flags()) if err != nil { t.Fatalf("configure global flags: %v", err) diff --git a/internal/cmd/auth/auth.go b/internal/cmd/auth/auth.go index e3215f9e2..a539f7432 100644 --- a/internal/cmd/auth/auth.go +++ b/internal/cmd/auth/auth.go @@ -4,12 +4,13 @@ import ( activateserviceaccount "github.com/stackitcloud/stackit-cli/internal/cmd/auth/activate-service-account" "github.com/stackitcloud/stackit-cli/internal/cmd/auth/login" "github.com/stackitcloud/stackit-cli/internal/pkg/args" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-cli/internal/pkg/utils" "github.com/spf13/cobra" ) -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "auth", Short: "Provides authentication functionality", @@ -17,11 +18,11 @@ func NewCmd() *cobra.Command { Args: args.NoArgs, Run: utils.CmdHelp, } - addSubcommands(cmd) + addSubcommands(cmd, p) return cmd } -func addSubcommands(cmd *cobra.Command) { +func addSubcommands(cmd *cobra.Command, p *print.Printer) { cmd.AddCommand(login.NewCmd()) - cmd.AddCommand(activateserviceaccount.NewCmd()) + cmd.AddCommand(activateserviceaccount.NewCmd(p)) } diff --git a/internal/cmd/dns/dns.go b/internal/cmd/dns/dns.go index e73164998..d6154b4be 100644 --- a/internal/cmd/dns/dns.go +++ b/internal/cmd/dns/dns.go @@ -4,12 +4,13 @@ import ( recordset "github.com/stackitcloud/stackit-cli/internal/cmd/dns/record-set" "github.com/stackitcloud/stackit-cli/internal/cmd/dns/zone" "github.com/stackitcloud/stackit-cli/internal/pkg/args" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-cli/internal/pkg/utils" "github.com/spf13/cobra" ) -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "dns", Short: "Provides functionality for DNS", @@ -17,11 +18,11 @@ func NewCmd() *cobra.Command { Args: args.NoArgs, Run: utils.CmdHelp, } - addSubcommands(cmd) + addSubcommands(cmd, p) return cmd } -func addSubcommands(cmd *cobra.Command) { - cmd.AddCommand(zone.NewCmd()) +func addSubcommands(cmd *cobra.Command, p *print.Printer) { + cmd.AddCommand(zone.NewCmd(p)) cmd.AddCommand(recordset.NewCmd()) } diff --git a/internal/cmd/dns/record-set/create/create_test.go b/internal/cmd/dns/record-set/create/create_test.go index 1094d1e33..341e05fa3 100644 --- a/internal/cmd/dns/record-set/create/create_test.go +++ b/internal/cmd/dns/record-set/create/create_test.go @@ -42,6 +42,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, Name: utils.Ptr("example.com"), @@ -104,6 +105,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, Name: utils.Ptr("example.com"), @@ -125,6 +127,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, Name: utils.Ptr(""), @@ -305,6 +308,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, Name: utils.Ptr("example.com"), diff --git a/internal/cmd/dns/record-set/delete/delete_test.go b/internal/cmd/dns/record-set/delete/delete_test.go index 751a4e23b..b5964065d 100644 --- a/internal/cmd/dns/record-set/delete/delete_test.go +++ b/internal/cmd/dns/record-set/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, RecordSetId: testRecordSetId, diff --git a/internal/cmd/dns/record-set/describe/describe_test.go b/internal/cmd/dns/record-set/describe/describe_test.go index 0a5c506a6..5801d41d4 100644 --- a/internal/cmd/dns/record-set/describe/describe_test.go +++ b/internal/cmd/dns/record-set/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, RecordSetId: testRecordSetId, diff --git a/internal/cmd/dns/record-set/list/list_test.go b/internal/cmd/dns/record-set/list/list_test.go index c6d404be9..aad867561 100644 --- a/internal/cmd/dns/record-set/list/list_test.go +++ b/internal/cmd/dns/record-set/list/list_test.go @@ -44,6 +44,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, NameLike: utils.Ptr("some-pattern"), @@ -133,6 +134,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, PageSize: 100, // Default value @@ -302,6 +304,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, PageSize: 10, diff --git a/internal/cmd/dns/record-set/update/update_test.go b/internal/cmd/dns/record-set/update/update_test.go index c95506423..301a74050 100644 --- a/internal/cmd/dns/record-set/update/update_test.go +++ b/internal/cmd/dns/record-set/update/update_test.go @@ -52,6 +52,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, RecordSetId: testRecordSetId, @@ -127,6 +128,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, RecordSetId: testRecordSetId, @@ -147,6 +149,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, RecordSetId: testRecordSetId, @@ -317,6 +320,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, RecordSetId: testRecordSetId, diff --git a/internal/cmd/dns/zone/create/create.go b/internal/cmd/dns/zone/create/create.go index 624578749..6b27fe166 100644 --- a/internal/cmd/dns/zone/create/create.go +++ b/internal/cmd/dns/zone/create/create.go @@ -10,6 +10,7 @@ import ( "github.com/stackitcloud/stackit-cli/internal/pkg/examples" "github.com/stackitcloud/stackit-cli/internal/pkg/flags" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-cli/internal/pkg/projectname" "github.com/stackitcloud/stackit-cli/internal/pkg/services/dns/client" "github.com/stackitcloud/stackit-cli/internal/pkg/spinner" @@ -52,7 +53,7 @@ type inputModel struct { ContactEmail *string } -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "create", Short: "Creates a DNS zone", @@ -115,7 +116,7 @@ func NewCmd() *cobra.Command { if model.Async { operationState = "Triggered creation of" } - cmd.Printf("%s zone for project %q. Zone ID: %s\n", operationState, projectLabel, zoneId) + p.Outputf("%s zone for project %q. Zone ID: %s\n", operationState, projectLabel, zoneId) return nil }, } diff --git a/internal/cmd/dns/zone/create/create_test.go b/internal/cmd/dns/zone/create/create_test.go index 6a9b01a42..75a43ae75 100644 --- a/internal/cmd/dns/zone/create/create_test.go +++ b/internal/cmd/dns/zone/create/create_test.go @@ -48,6 +48,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Name: utils.Ptr("example"), DnsName: utils.Ptr("example.com"), @@ -122,6 +123,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Name: utils.Ptr("example"), DnsName: utils.Ptr("example.com"), @@ -149,6 +151,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Name: utils.Ptr(""), DnsName: utils.Ptr(""), @@ -212,7 +215,7 @@ func TestParseInput(t *testing.T) { for _, tt := range tests { t.Run(tt.description, func(t *testing.T) { - cmd := NewCmd() + cmd := NewCmd(nil) err := globalflags.Configure(cmd.Flags()) if err != nil { t.Fatalf("configure global flags: %v", err) @@ -281,6 +284,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Name: utils.Ptr("example"), DnsName: utils.Ptr("example.com"), diff --git a/internal/cmd/dns/zone/delete/delete_test.go b/internal/cmd/dns/zone/delete/delete_test.go index 031a5b80b..06dbd7d4b 100644 --- a/internal/cmd/dns/zone/delete/delete_test.go +++ b/internal/cmd/dns/zone/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, } diff --git a/internal/cmd/dns/zone/describe/describe_test.go b/internal/cmd/dns/zone/describe/describe_test.go index 8fcea083d..e85152646 100644 --- a/internal/cmd/dns/zone/describe/describe_test.go +++ b/internal/cmd/dns/zone/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, } diff --git a/internal/cmd/dns/zone/list/list_test.go b/internal/cmd/dns/zone/list/list_test.go index 430f3372a..4fb2c315c 100644 --- a/internal/cmd/dns/zone/list/list_test.go +++ b/internal/cmd/dns/zone/list/list_test.go @@ -42,6 +42,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, NameLike: utils.Ptr("some-pattern"), OrderByName: utils.Ptr("asc"), @@ -129,6 +130,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PageSize: pageSizeDefault, }, @@ -297,6 +299,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PageSize: pageSizeDefault, }, diff --git a/internal/cmd/dns/zone/update/update_test.go b/internal/cmd/dns/zone/update/update_test.go index c53d511e2..c1d4e35a0 100644 --- a/internal/cmd/dns/zone/update/update_test.go +++ b/internal/cmd/dns/zone/update/update_test.go @@ -56,6 +56,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, Name: utils.Ptr("example"), @@ -139,6 +140,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, }, @@ -163,6 +165,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, Name: utils.Ptr(""), @@ -318,6 +321,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ZoneId: testZoneId, }, diff --git a/internal/cmd/dns/zone/zone.go b/internal/cmd/dns/zone/zone.go index c8a5d8522..f5e9a2f65 100644 --- a/internal/cmd/dns/zone/zone.go +++ b/internal/cmd/dns/zone/zone.go @@ -7,12 +7,13 @@ import ( "github.com/stackitcloud/stackit-cli/internal/cmd/dns/zone/list" "github.com/stackitcloud/stackit-cli/internal/cmd/dns/zone/update" "github.com/stackitcloud/stackit-cli/internal/pkg/args" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-cli/internal/pkg/utils" "github.com/spf13/cobra" ) -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "zone", Short: "Provides functionality for DNS zones", @@ -20,13 +21,13 @@ func NewCmd() *cobra.Command { Args: args.NoArgs, Run: utils.CmdHelp, } - addSubcommands(cmd) + addSubcommands(cmd, p) return cmd } -func addSubcommands(cmd *cobra.Command) { +func addSubcommands(cmd *cobra.Command, p *print.Printer) { cmd.AddCommand(list.NewCmd()) - cmd.AddCommand(create.NewCmd()) + cmd.AddCommand(create.NewCmd(p)) cmd.AddCommand(describe.NewCmd()) cmd.AddCommand(update.NewCmd()) cmd.AddCommand(delete.NewCmd()) diff --git a/internal/cmd/logme/credentials/create/create_test.go b/internal/cmd/logme/credentials/create/create_test.go index 6cf81ee9a..c0fd85a18 100644 --- a/internal/cmd/logme/credentials/create/create_test.go +++ b/internal/cmd/logme/credentials/create/create_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/logme/credentials/delete/delete_test.go b/internal/cmd/logme/credentials/delete/delete_test.go index c7ea5a330..13b772d80 100644 --- a/internal/cmd/logme/credentials/delete/delete_test.go +++ b/internal/cmd/logme/credentials/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/logme/credentials/describe/describe_test.go b/internal/cmd/logme/credentials/describe/describe_test.go index b157ff651..b71e7bd88 100644 --- a/internal/cmd/logme/credentials/describe/describe_test.go +++ b/internal/cmd/logme/credentials/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/logme/credentials/list/list_test.go b/internal/cmd/logme/credentials/list/list_test.go index 7f3cb8faa..d71fcd678 100644 --- a/internal/cmd/logme/credentials/list/list_test.go +++ b/internal/cmd/logme/credentials/list/list_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/logme/instance/create/create_test.go b/internal/cmd/logme/instance/create/create_test.go index cac6708d2..f5e1cb0a5 100644 --- a/internal/cmd/logme/instance/create/create_test.go +++ b/internal/cmd/logme/instance/create/create_test.go @@ -65,6 +65,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), EnableMonitoring: utils.Ptr(true), @@ -151,6 +152,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), PlanId: utils.Ptr(testPlanId), @@ -171,6 +173,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), InstanceName: utils.Ptr(""), @@ -437,6 +440,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), }, diff --git a/internal/cmd/logme/instance/delete/delete_test.go b/internal/cmd/logme/instance/delete/delete_test.go index 41863912d..d4c8fc9fb 100644 --- a/internal/cmd/logme/instance/delete/delete_test.go +++ b/internal/cmd/logme/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/logme/instance/describe/describe_test.go b/internal/cmd/logme/instance/describe/describe_test.go index cbfa438c4..bb342b9a4 100644 --- a/internal/cmd/logme/instance/describe/describe_test.go +++ b/internal/cmd/logme/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/logme/instance/list/list_test.go b/internal/cmd/logme/instance/list/list_test.go index eb6f9faac..a2be6bda6 100644 --- a/internal/cmd/logme/instance/list/list_test.go +++ b/internal/cmd/logme/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/logme/instance/update/update_test.go b/internal/cmd/logme/instance/update/update_test.go index e2da035a9..1f0065726 100644 --- a/internal/cmd/logme/instance/update/update_test.go +++ b/internal/cmd/logme/instance/update/update_test.go @@ -77,6 +77,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, EnableMonitoring: utils.Ptr(true), @@ -162,6 +163,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, @@ -181,6 +183,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, PlanId: utils.Ptr(testPlanId), @@ -451,6 +454,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, diff --git a/internal/cmd/logme/plans/plans_test.go b/internal/cmd/logme/plans/plans_test.go index 49045f706..032fac61c 100644 --- a/internal/cmd/logme/plans/plans_test.go +++ b/internal/cmd/logme/plans/plans_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/mariadb/credentials/create/create_test.go b/internal/cmd/mariadb/credentials/create/create_test.go index a47d55d57..8a4e09d57 100644 --- a/internal/cmd/mariadb/credentials/create/create_test.go +++ b/internal/cmd/mariadb/credentials/create/create_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/mariadb/credentials/delete/delete_test.go b/internal/cmd/mariadb/credentials/delete/delete_test.go index ed6f81c92..8e73551d1 100644 --- a/internal/cmd/mariadb/credentials/delete/delete_test.go +++ b/internal/cmd/mariadb/credentials/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/mariadb/credentials/describe/describe_test.go b/internal/cmd/mariadb/credentials/describe/describe_test.go index 154913803..8941f1e3d 100644 --- a/internal/cmd/mariadb/credentials/describe/describe_test.go +++ b/internal/cmd/mariadb/credentials/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/mariadb/credentials/list/list_test.go b/internal/cmd/mariadb/credentials/list/list_test.go index 56b2c2556..1abdc3e76 100644 --- a/internal/cmd/mariadb/credentials/list/list_test.go +++ b/internal/cmd/mariadb/credentials/list/list_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/mariadb/instance/create/create_test.go b/internal/cmd/mariadb/instance/create/create_test.go index db3eb811b..5f54f92c6 100644 --- a/internal/cmd/mariadb/instance/create/create_test.go +++ b/internal/cmd/mariadb/instance/create/create_test.go @@ -65,6 +65,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), EnableMonitoring: utils.Ptr(true), @@ -151,6 +152,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), PlanId: utils.Ptr(testPlanId), @@ -171,6 +173,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), InstanceName: utils.Ptr(""), @@ -437,6 +440,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), }, diff --git a/internal/cmd/mariadb/instance/delete/delete_test.go b/internal/cmd/mariadb/instance/delete/delete_test.go index 554580b6c..6cbf076d3 100644 --- a/internal/cmd/mariadb/instance/delete/delete_test.go +++ b/internal/cmd/mariadb/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/mariadb/instance/describe/describe_test.go b/internal/cmd/mariadb/instance/describe/describe_test.go index aaeb3d5f5..ecd4af094 100644 --- a/internal/cmd/mariadb/instance/describe/describe_test.go +++ b/internal/cmd/mariadb/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/mariadb/instance/list/list_test.go b/internal/cmd/mariadb/instance/list/list_test.go index a730195b9..10dd9fd94 100644 --- a/internal/cmd/mariadb/instance/list/list_test.go +++ b/internal/cmd/mariadb/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/mariadb/instance/update/update_test.go b/internal/cmd/mariadb/instance/update/update_test.go index 362bf4447..54e6d11b3 100644 --- a/internal/cmd/mariadb/instance/update/update_test.go +++ b/internal/cmd/mariadb/instance/update/update_test.go @@ -77,6 +77,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, EnableMonitoring: utils.Ptr(true), @@ -162,6 +163,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, @@ -181,6 +183,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, PlanId: utils.Ptr(testPlanId), @@ -462,6 +465,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, diff --git a/internal/cmd/mariadb/plans/plans_test.go b/internal/cmd/mariadb/plans/plans_test.go index fe2d96445..fe38082b0 100644 --- a/internal/cmd/mariadb/plans/plans_test.go +++ b/internal/cmd/mariadb/plans/plans_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/mongodbflex/instance/create/create_test.go b/internal/cmd/mongodbflex/instance/create/create_test.go index 44fbaa2d5..270751e88 100644 --- a/internal/cmd/mongodbflex/instance/create/create_test.go +++ b/internal/cmd/mongodbflex/instance/create/create_test.go @@ -71,6 +71,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), ACL: utils.Ptr([]string{"0.0.0.0/0"}), diff --git a/internal/cmd/mongodbflex/instance/delete/delete_test.go b/internal/cmd/mongodbflex/instance/delete/delete_test.go index 13469325f..59879251b 100644 --- a/internal/cmd/mongodbflex/instance/delete/delete_test.go +++ b/internal/cmd/mongodbflex/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/mongodbflex/instance/describe/describe_test.go b/internal/cmd/mongodbflex/instance/describe/describe_test.go index 2067e1990..249184c2d 100644 --- a/internal/cmd/mongodbflex/instance/describe/describe_test.go +++ b/internal/cmd/mongodbflex/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/mongodbflex/instance/list/list_test.go b/internal/cmd/mongodbflex/instance/list/list_test.go index 5f2d89749..eef3a67b0 100644 --- a/internal/cmd/mongodbflex/instance/list/list_test.go +++ b/internal/cmd/mongodbflex/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/mongodbflex/instance/update/update_test.go b/internal/cmd/mongodbflex/instance/update/update_test.go index 9390d83ff..4da4cb025 100644 --- a/internal/cmd/mongodbflex/instance/update/update_test.go +++ b/internal/cmd/mongodbflex/instance/update/update_test.go @@ -101,6 +101,7 @@ func fixtureRequiredInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } @@ -114,6 +115,7 @@ func fixtureStandardInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, FlavorId: utils.Ptr(testFlavorId), diff --git a/internal/cmd/mongodbflex/options/options_test.go b/internal/cmd/mongodbflex/options/options_test.go index 0cdc7bc75..41dd53431 100644 --- a/internal/cmd/mongodbflex/options/options_test.go +++ b/internal/cmd/mongodbflex/options/options_test.go @@ -75,7 +75,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, Flavors: false, Versions: false, Storages: false, @@ -88,7 +88,7 @@ func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { func fixtureInputModelAllTrue(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, Flavors: true, Versions: true, Storages: true, diff --git a/internal/cmd/mongodbflex/user/create/create_test.go b/internal/cmd/mongodbflex/user/create/create_test.go index feb2dc175..2165b3b77 100644 --- a/internal/cmd/mongodbflex/user/create/create_test.go +++ b/internal/cmd/mongodbflex/user/create/create_test.go @@ -41,6 +41,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Username: utils.Ptr("johndoe"), diff --git a/internal/cmd/mongodbflex/user/delete/delete_test.go b/internal/cmd/mongodbflex/user/delete/delete_test.go index e3d930a64..309fdfcad 100644 --- a/internal/cmd/mongodbflex/user/delete/delete_test.go +++ b/internal/cmd/mongodbflex/user/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/mongodbflex/user/describe/describe_test.go b/internal/cmd/mongodbflex/user/describe/describe_test.go index 49d8089e8..8ce6b70e4 100644 --- a/internal/cmd/mongodbflex/user/describe/describe_test.go +++ b/internal/cmd/mongodbflex/user/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/mongodbflex/user/list/list_test.go b/internal/cmd/mongodbflex/user/list/list_test.go index ddebcda27..c4ac29db8 100644 --- a/internal/cmd/mongodbflex/user/list/list_test.go +++ b/internal/cmd/mongodbflex/user/list/list_test.go @@ -39,6 +39,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: utils.Ptr(testInstanceId), Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/mongodbflex/user/reset-password/reset_password_test.go b/internal/cmd/mongodbflex/user/reset-password/reset_password_test.go index 103ab19f0..aecd8628b 100644 --- a/internal/cmd/mongodbflex/user/reset-password/reset_password_test.go +++ b/internal/cmd/mongodbflex/user/reset-password/reset_password_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/mongodbflex/user/update/update_test.go b/internal/cmd/mongodbflex/user/update/update_test.go index 223325c57..c719ca351 100644 --- a/internal/cmd/mongodbflex/user/update/update_test.go +++ b/internal/cmd/mongodbflex/user/update/update_test.go @@ -49,6 +49,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/object-storage/bucket/create/create_test.go b/internal/cmd/object-storage/bucket/create/create_test.go index 2cf5e65e6..5f20432cf 100644 --- a/internal/cmd/object-storage/bucket/create/create_test.go +++ b/internal/cmd/object-storage/bucket/create/create_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, BucketName: testBucketName, } diff --git a/internal/cmd/object-storage/bucket/delete/delete_test.go b/internal/cmd/object-storage/bucket/delete/delete_test.go index 1648a3989..6a423ea5c 100644 --- a/internal/cmd/object-storage/bucket/delete/delete_test.go +++ b/internal/cmd/object-storage/bucket/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, BucketName: testBucketName, } diff --git a/internal/cmd/object-storage/bucket/describe/describe_test.go b/internal/cmd/object-storage/bucket/describe/describe_test.go index 8a57f6c25..e5ec4f789 100644 --- a/internal/cmd/object-storage/bucket/describe/describe_test.go +++ b/internal/cmd/object-storage/bucket/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, BucketName: testBucketName, } diff --git a/internal/cmd/object-storage/bucket/list/list_test.go b/internal/cmd/object-storage/bucket/list/list_test.go index 4c50f6931..7d83b76e0 100644 --- a/internal/cmd/object-storage/bucket/list/list_test.go +++ b/internal/cmd/object-storage/bucket/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/object-storage/credentials-group/create/create_test.go b/internal/cmd/object-storage/credentials-group/create/create_test.go index 72e5d55e4..bb7ce3212 100644 --- a/internal/cmd/object-storage/credentials-group/create/create_test.go +++ b/internal/cmd/object-storage/credentials-group/create/create_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, CredentialsGroupName: testCredentialsGroupName, } diff --git a/internal/cmd/object-storage/credentials-group/delete/delete_test.go b/internal/cmd/object-storage/credentials-group/delete/delete_test.go index fc00516a3..54f403e37 100644 --- a/internal/cmd/object-storage/credentials-group/delete/delete_test.go +++ b/internal/cmd/object-storage/credentials-group/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, CredentialsGroupId: testCredentialsGroupId, } diff --git a/internal/cmd/object-storage/credentials-group/list/list_test.go b/internal/cmd/object-storage/credentials-group/list/list_test.go index 0658184a5..f37526b2b 100644 --- a/internal/cmd/object-storage/credentials-group/list/list_test.go +++ b/internal/cmd/object-storage/credentials-group/list/list_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/object-storage/credentials/create/create_test.go b/internal/cmd/object-storage/credentials/create/create_test.go index c9c5e1b8d..64718e9ec 100644 --- a/internal/cmd/object-storage/credentials/create/create_test.go +++ b/internal/cmd/object-storage/credentials/create/create_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ExpireDate: utils.Ptr(testExpirationDate), CredentialsGroupId: testCredentialsGroupId, diff --git a/internal/cmd/object-storage/credentials/delete/delete_test.go b/internal/cmd/object-storage/credentials/delete/delete_test.go index c160315af..e594ed7e3 100644 --- a/internal/cmd/object-storage/credentials/delete/delete_test.go +++ b/internal/cmd/object-storage/credentials/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, CredentialsGroupId: testCredentialsGroupId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/object-storage/credentials/list/list_test.go b/internal/cmd/object-storage/credentials/list/list_test.go index fa828642e..6299e0022 100644 --- a/internal/cmd/object-storage/credentials/list/list_test.go +++ b/internal/cmd/object-storage/credentials/list/list_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, CredentialsGroupId: testCredentialsGroupId, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/object-storage/disable/disable_test.go b/internal/cmd/object-storage/disable/disable_test.go index 1512e1168..8a52bbf27 100644 --- a/internal/cmd/object-storage/disable/disable_test.go +++ b/internal/cmd/object-storage/disable/disable_test.go @@ -35,6 +35,7 @@ func fixtureInputModel(mods ...func(model *InputModel)) *InputModel { model := &InputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, } for _, mod := range mods { diff --git a/internal/cmd/object-storage/enable/enable_test.go b/internal/cmd/object-storage/enable/enable_test.go index 03cd814f8..1c12bd918 100644 --- a/internal/cmd/object-storage/enable/enable_test.go +++ b/internal/cmd/object-storage/enable/enable_test.go @@ -35,6 +35,7 @@ func fixtureInputModel(mods ...func(model *InputModel)) *InputModel { model := &InputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, } for _, mod := range mods { diff --git a/internal/cmd/opensearch/credentials/create/create_test.go b/internal/cmd/opensearch/credentials/create/create_test.go index 5ba51a1f2..98b84e16f 100644 --- a/internal/cmd/opensearch/credentials/create/create_test.go +++ b/internal/cmd/opensearch/credentials/create/create_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/opensearch/credentials/delete/delete_test.go b/internal/cmd/opensearch/credentials/delete/delete_test.go index ad1a9a41f..f96107c88 100644 --- a/internal/cmd/opensearch/credentials/delete/delete_test.go +++ b/internal/cmd/opensearch/credentials/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/opensearch/credentials/describe/describe_test.go b/internal/cmd/opensearch/credentials/describe/describe_test.go index e72ed1694..69f06b230 100644 --- a/internal/cmd/opensearch/credentials/describe/describe_test.go +++ b/internal/cmd/opensearch/credentials/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/opensearch/credentials/list/list_test.go b/internal/cmd/opensearch/credentials/list/list_test.go index 4c503e18f..fb75b52e7 100644 --- a/internal/cmd/opensearch/credentials/list/list_test.go +++ b/internal/cmd/opensearch/credentials/list/list_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/opensearch/instance/create/create_test.go b/internal/cmd/opensearch/instance/create/create_test.go index 6a6679242..9d4e32470 100644 --- a/internal/cmd/opensearch/instance/create/create_test.go +++ b/internal/cmd/opensearch/instance/create/create_test.go @@ -65,6 +65,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), EnableMonitoring: utils.Ptr(true), @@ -151,6 +152,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), PlanId: utils.Ptr(testPlanId), @@ -171,6 +173,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), InstanceName: utils.Ptr(""), @@ -437,6 +440,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), }, diff --git a/internal/cmd/opensearch/instance/delete/delete_test.go b/internal/cmd/opensearch/instance/delete/delete_test.go index 3f6042eb9..096f29217 100644 --- a/internal/cmd/opensearch/instance/delete/delete_test.go +++ b/internal/cmd/opensearch/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/opensearch/instance/describe/describe_test.go b/internal/cmd/opensearch/instance/describe/describe_test.go index 6881ec419..2dfc8385e 100644 --- a/internal/cmd/opensearch/instance/describe/describe_test.go +++ b/internal/cmd/opensearch/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/opensearch/instance/list/list_test.go b/internal/cmd/opensearch/instance/list/list_test.go index 17f77beb8..fad552b73 100644 --- a/internal/cmd/opensearch/instance/list/list_test.go +++ b/internal/cmd/opensearch/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/opensearch/instance/update/update_test.go b/internal/cmd/opensearch/instance/update/update_test.go index 7623b7dde..b012bacbd 100644 --- a/internal/cmd/opensearch/instance/update/update_test.go +++ b/internal/cmd/opensearch/instance/update/update_test.go @@ -77,6 +77,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, EnableMonitoring: utils.Ptr(true), @@ -162,6 +163,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, @@ -181,6 +183,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, PlanId: utils.Ptr(testPlanId), @@ -462,6 +465,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, diff --git a/internal/cmd/opensearch/plans/plans_test.go b/internal/cmd/opensearch/plans/plans_test.go index d0f656b7f..dbd843a56 100644 --- a/internal/cmd/opensearch/plans/plans_test.go +++ b/internal/cmd/opensearch/plans/plans_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/organization/member/add/add_test.go b/internal/cmd/organization/member/add/add_test.go index 8bfb8c6c8..cd05dca09 100644 --- a/internal/cmd/organization/member/add/add_test.go +++ b/internal/cmd/organization/member/add/add_test.go @@ -43,7 +43,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, OrganizationId: utils.Ptr(testOrganizationID), Subject: testSubject, Role: utils.Ptr(testRole), diff --git a/internal/cmd/organization/member/list/list_test.go b/internal/cmd/organization/member/list/list_test.go index dd7819331..48800ae1c 100644 --- a/internal/cmd/organization/member/list/list_test.go +++ b/internal/cmd/organization/member/list/list_test.go @@ -32,7 +32,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, OrganizationId: utils.Ptr(testOrganizationID), Limit: utils.Ptr(int64(10)), SortBy: "subject", diff --git a/internal/cmd/organization/member/remove/remove_test.go b/internal/cmd/organization/member/remove/remove_test.go index 6ba7eff7a..560b8276f 100644 --- a/internal/cmd/organization/member/remove/remove_test.go +++ b/internal/cmd/organization/member/remove/remove_test.go @@ -43,7 +43,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, OrganizationId: utils.Ptr(testOrganizationID), Subject: testSubject, Role: utils.Ptr(testRole), diff --git a/internal/cmd/organization/role/list/list_test.go b/internal/cmd/organization/role/list/list_test.go index 4e6ee570a..413a3d072 100644 --- a/internal/cmd/organization/role/list/list_test.go +++ b/internal/cmd/organization/role/list/list_test.go @@ -32,7 +32,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, OrganizationId: utils.Ptr(testOrganizationID), Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/postgresflex/instance/clone/clone_test.go b/internal/cmd/postgresflex/instance/clone/clone_test.go index 4eb2c11b3..9d4e0557e 100644 --- a/internal/cmd/postgresflex/instance/clone/clone_test.go +++ b/internal/cmd/postgresflex/instance/clone/clone_test.go @@ -98,6 +98,7 @@ func fixtureRequiredInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, RecoveryDate: utils.Ptr(recoveryTimestampString), @@ -118,6 +119,7 @@ func fixtureStandardInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, StorageClass: utils.Ptr(testStorageClass), diff --git a/internal/cmd/postgresflex/instance/create/create_test.go b/internal/cmd/postgresflex/instance/create/create_test.go index 53babd3b8..3370e58e7 100644 --- a/internal/cmd/postgresflex/instance/create/create_test.go +++ b/internal/cmd/postgresflex/instance/create/create_test.go @@ -71,6 +71,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), ACL: utils.Ptr([]string{"0.0.0.0/0"}), diff --git a/internal/cmd/postgresflex/instance/delete/delete_test.go b/internal/cmd/postgresflex/instance/delete/delete_test.go index a9b5f8735..eab429ccf 100644 --- a/internal/cmd/postgresflex/instance/delete/delete_test.go +++ b/internal/cmd/postgresflex/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/postgresflex/instance/describe/describe_test.go b/internal/cmd/postgresflex/instance/describe/describe_test.go index a1b50bb49..965a46f32 100644 --- a/internal/cmd/postgresflex/instance/describe/describe_test.go +++ b/internal/cmd/postgresflex/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/postgresflex/instance/list/list_test.go b/internal/cmd/postgresflex/instance/list/list_test.go index fca5029bd..c8aede301 100644 --- a/internal/cmd/postgresflex/instance/list/list_test.go +++ b/internal/cmd/postgresflex/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/postgresflex/instance/update/update_test.go b/internal/cmd/postgresflex/instance/update/update_test.go index 190823939..3c56d055f 100644 --- a/internal/cmd/postgresflex/instance/update/update_test.go +++ b/internal/cmd/postgresflex/instance/update/update_test.go @@ -101,6 +101,7 @@ func fixtureRequiredInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } @@ -114,6 +115,7 @@ func fixtureStandardInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, FlavorId: utils.Ptr(testFlavorId), diff --git a/internal/cmd/postgresflex/options/options_test.go b/internal/cmd/postgresflex/options/options_test.go index acb6c2a88..67c449c95 100644 --- a/internal/cmd/postgresflex/options/options_test.go +++ b/internal/cmd/postgresflex/options/options_test.go @@ -75,7 +75,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, Flavors: false, Versions: false, Storages: false, @@ -88,7 +88,7 @@ func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { func fixtureInputModelAllTrue(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, Flavors: true, Versions: true, Storages: true, diff --git a/internal/cmd/postgresflex/user/create/create_test.go b/internal/cmd/postgresflex/user/create/create_test.go index 106dff903..f12b20b89 100644 --- a/internal/cmd/postgresflex/user/create/create_test.go +++ b/internal/cmd/postgresflex/user/create/create_test.go @@ -40,6 +40,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Username: utils.Ptr("johndoe"), diff --git a/internal/cmd/postgresflex/user/delete/delete_test.go b/internal/cmd/postgresflex/user/delete/delete_test.go index 47a1240ef..fc1a42e00 100644 --- a/internal/cmd/postgresflex/user/delete/delete_test.go +++ b/internal/cmd/postgresflex/user/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/postgresflex/user/describe/describe_test.go b/internal/cmd/postgresflex/user/describe/describe_test.go index 1826289dd..adc47ba07 100644 --- a/internal/cmd/postgresflex/user/describe/describe_test.go +++ b/internal/cmd/postgresflex/user/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/postgresflex/user/list/list_test.go b/internal/cmd/postgresflex/user/list/list_test.go index 38e70b921..58f5c7434 100644 --- a/internal/cmd/postgresflex/user/list/list_test.go +++ b/internal/cmd/postgresflex/user/list/list_test.go @@ -39,6 +39,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: utils.Ptr(testInstanceId), Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/postgresflex/user/reset-password/reset_password_test.go b/internal/cmd/postgresflex/user/reset-password/reset_password_test.go index 0898d2b7b..954982534 100644 --- a/internal/cmd/postgresflex/user/reset-password/reset_password_test.go +++ b/internal/cmd/postgresflex/user/reset-password/reset_password_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/postgresflex/user/update/update_test.go b/internal/cmd/postgresflex/user/update/update_test.go index e73ddff46..d337ac32c 100644 --- a/internal/cmd/postgresflex/user/update/update_test.go +++ b/internal/cmd/postgresflex/user/update/update_test.go @@ -49,6 +49,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/project/create/create_test.go b/internal/cmd/project/create/create_test.go index 3da6087e5..15b495339 100644 --- a/internal/cmd/project/create/create_test.go +++ b/internal/cmd/project/create/create_test.go @@ -36,7 +36,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, ParentId: utils.Ptr(testParentId), Name: utils.Ptr(nameFlag), Labels: utils.Ptr(map[string]string{ diff --git a/internal/cmd/project/delete/delete.go b/internal/cmd/project/delete/delete.go index f939a52d1..957b180aa 100644 --- a/internal/cmd/project/delete/delete.go +++ b/internal/cmd/project/delete/delete.go @@ -9,6 +9,7 @@ import ( "github.com/stackitcloud/stackit-cli/internal/pkg/errors" "github.com/stackitcloud/stackit-cli/internal/pkg/examples" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-cli/internal/pkg/projectname" "github.com/stackitcloud/stackit-cli/internal/pkg/services/resourcemanager/client" @@ -20,7 +21,7 @@ type inputModel struct { *globalflags.GlobalFlagModel } -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "delete", Short: "Deletes a STACKIT project", @@ -67,9 +68,11 @@ func NewCmd() *cobra.Command { return fmt.Errorf("delete project: %w", err) } - cmd.Printf("Deleted project %q\n", projectLabel) - cmd.Printf("If this was your default project, consider configuring a new project ID by running:\n") - cmd.Printf(" $ stackit config set --project-id \n") + p.Info("Deleted project %q\n", projectLabel) + p.Warn(fmt.Sprintf("%s\n%s", + "If this was your default project, consider configuring a new project ID by running:", + " $ stackit config set --project-id ", + )) return nil }, } diff --git a/internal/cmd/project/delete/delete_test.go b/internal/cmd/project/delete/delete_test.go index 122b5b930..2bb0b63c6 100644 --- a/internal/cmd/project/delete/delete_test.go +++ b/internal/cmd/project/delete/delete_test.go @@ -34,6 +34,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, } for _, mod := range mods { diff --git a/internal/cmd/project/describe/describe_test.go b/internal/cmd/project/describe/describe_test.go index 7584bf55d..51513d8c9 100644 --- a/internal/cmd/project/describe/describe_test.go +++ b/internal/cmd/project/describe/describe_test.go @@ -35,6 +35,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, IncludeParents: false, } diff --git a/internal/cmd/project/list/list_test.go b/internal/cmd/project/list/list_test.go index 8bbd3b70d..dddd312c1 100644 --- a/internal/cmd/project/list/list_test.go +++ b/internal/cmd/project/list/list_test.go @@ -46,7 +46,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { } model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, ParentId: utils.Ptr(testParentId), Member: utils.Ptr("member"), CreationTimeAfter: utils.Ptr(testCreationTimeAfter), diff --git a/internal/cmd/project/member/add/add_test.go b/internal/cmd/project/member/add/add_test.go index 36d78653f..5499c9ff2 100644 --- a/internal/cmd/project/member/add/add_test.go +++ b/internal/cmd/project/member/add/add_test.go @@ -48,6 +48,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Subject: testSubject, Role: utils.Ptr(testRole), diff --git a/internal/cmd/project/member/list/list_test.go b/internal/cmd/project/member/list/list_test.go index eaf78bec2..469ce2eb0 100644 --- a/internal/cmd/project/member/list/list_test.go +++ b/internal/cmd/project/member/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), SortBy: "subject", diff --git a/internal/cmd/project/member/remove/remove_test.go b/internal/cmd/project/member/remove/remove_test.go index 76372e8af..f4faf6bc7 100644 --- a/internal/cmd/project/member/remove/remove_test.go +++ b/internal/cmd/project/member/remove/remove_test.go @@ -48,6 +48,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Subject: testSubject, Role: utils.Ptr(testRole), diff --git a/internal/cmd/project/project.go b/internal/cmd/project/project.go index c3d486707..5cfabe4fa 100644 --- a/internal/cmd/project/project.go +++ b/internal/cmd/project/project.go @@ -11,12 +11,13 @@ import ( "github.com/stackitcloud/stackit-cli/internal/cmd/project/role" "github.com/stackitcloud/stackit-cli/internal/cmd/project/update" "github.com/stackitcloud/stackit-cli/internal/pkg/args" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-cli/internal/pkg/utils" "github.com/spf13/cobra" ) -func NewCmd() *cobra.Command { +func NewCmd(p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "project", Short: "Provides functionality regarding projects", @@ -27,14 +28,14 @@ func NewCmd() *cobra.Command { Args: args.NoArgs, Run: utils.CmdHelp, } - addSubcommands(cmd) + addSubcommands(cmd, p) return cmd } -func addSubcommands(cmd *cobra.Command) { +func addSubcommands(cmd *cobra.Command, p *print.Printer) { cmd.AddCommand(create.NewCmd()) cmd.AddCommand(update.NewCmd()) - cmd.AddCommand(delete.NewCmd()) + cmd.AddCommand(delete.NewCmd(p)) cmd.AddCommand(describe.NewCmd()) cmd.AddCommand(list.NewCmd()) cmd.AddCommand(member.NewCmd()) diff --git a/internal/cmd/project/role/list/list_test.go b/internal/cmd/project/role/list/list_test.go index 6246fbac9..80ee22574 100644 --- a/internal/cmd/project/role/list/list_test.go +++ b/internal/cmd/project/role/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/project/update/update_test.go b/internal/cmd/project/update/update_test.go index 1cff1088d..57cf25bc6 100644 --- a/internal/cmd/project/update/update_test.go +++ b/internal/cmd/project/update/update_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ParentId: utils.Ptr(testParentId), Name: utils.Ptr(nameFlag), @@ -88,6 +89,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, }, }, @@ -196,6 +198,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, }, expectedRequest: testClient.PartialUpdateProject(testCtx, testProjectId). diff --git a/internal/cmd/rabbitmq/credentials/create/create_test.go b/internal/cmd/rabbitmq/credentials/create/create_test.go index 898311b52..124687871 100644 --- a/internal/cmd/rabbitmq/credentials/create/create_test.go +++ b/internal/cmd/rabbitmq/credentials/create/create_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/rabbitmq/credentials/delete/delete_test.go b/internal/cmd/rabbitmq/credentials/delete/delete_test.go index c9b53315d..19b572f82 100644 --- a/internal/cmd/rabbitmq/credentials/delete/delete_test.go +++ b/internal/cmd/rabbitmq/credentials/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/rabbitmq/credentials/describe/describe_test.go b/internal/cmd/rabbitmq/credentials/describe/describe_test.go index b71162bb4..b2be161f7 100644 --- a/internal/cmd/rabbitmq/credentials/describe/describe_test.go +++ b/internal/cmd/rabbitmq/credentials/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/rabbitmq/credentials/list/list_test.go b/internal/cmd/rabbitmq/credentials/list/list_test.go index e8d2f9b24..78f822c50 100644 --- a/internal/cmd/rabbitmq/credentials/list/list_test.go +++ b/internal/cmd/rabbitmq/credentials/list/list_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/rabbitmq/instance/create/create_test.go b/internal/cmd/rabbitmq/instance/create/create_test.go index cf475a8a2..eacbf4a09 100644 --- a/internal/cmd/rabbitmq/instance/create/create_test.go +++ b/internal/cmd/rabbitmq/instance/create/create_test.go @@ -65,6 +65,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), EnableMonitoring: utils.Ptr(true), @@ -151,6 +152,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), PlanId: utils.Ptr(testPlanId), @@ -171,6 +173,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), InstanceName: utils.Ptr(""), @@ -437,6 +440,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), }, diff --git a/internal/cmd/rabbitmq/instance/delete/delete_test.go b/internal/cmd/rabbitmq/instance/delete/delete_test.go index 5f4c7f79b..08500bee0 100644 --- a/internal/cmd/rabbitmq/instance/delete/delete_test.go +++ b/internal/cmd/rabbitmq/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/rabbitmq/instance/describe/describe_test.go b/internal/cmd/rabbitmq/instance/describe/describe_test.go index 82625bf0d..03306dde4 100644 --- a/internal/cmd/rabbitmq/instance/describe/describe_test.go +++ b/internal/cmd/rabbitmq/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/rabbitmq/instance/list/list_test.go b/internal/cmd/rabbitmq/instance/list/list_test.go index 80556d791..e940eb894 100644 --- a/internal/cmd/rabbitmq/instance/list/list_test.go +++ b/internal/cmd/rabbitmq/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/rabbitmq/instance/update/update_test.go b/internal/cmd/rabbitmq/instance/update/update_test.go index fe62bbd43..1e4d205f7 100644 --- a/internal/cmd/rabbitmq/instance/update/update_test.go +++ b/internal/cmd/rabbitmq/instance/update/update_test.go @@ -77,6 +77,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, EnableMonitoring: utils.Ptr(true), @@ -162,6 +163,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, @@ -181,6 +183,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, PlanId: utils.Ptr(testPlanId), @@ -462,6 +465,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, diff --git a/internal/cmd/rabbitmq/plans/plans_test.go b/internal/cmd/rabbitmq/plans/plans_test.go index 9829fe35d..87319bf6d 100644 --- a/internal/cmd/rabbitmq/plans/plans_test.go +++ b/internal/cmd/rabbitmq/plans/plans_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/redis/credentials/create/create_test.go b/internal/cmd/redis/credentials/create/create_test.go index aea102622..6f0e24f88 100644 --- a/internal/cmd/redis/credentials/create/create_test.go +++ b/internal/cmd/redis/credentials/create/create_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/redis/credentials/delete/delete_test.go b/internal/cmd/redis/credentials/delete/delete_test.go index 42a6730bf..981be15c8 100644 --- a/internal/cmd/redis/credentials/delete/delete_test.go +++ b/internal/cmd/redis/credentials/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/redis/credentials/describe/describe_test.go b/internal/cmd/redis/credentials/describe/describe_test.go index d53abcd65..1331b8054 100644 --- a/internal/cmd/redis/credentials/describe/describe_test.go +++ b/internal/cmd/redis/credentials/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, CredentialsId: testCredentialsId, diff --git a/internal/cmd/redis/credentials/list/list_test.go b/internal/cmd/redis/credentials/list/list_test.go index 5371e72fd..80634e531 100644 --- a/internal/cmd/redis/credentials/list/list_test.go +++ b/internal/cmd/redis/credentials/list/list_test.go @@ -38,6 +38,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/redis/instance/create/create_test.go b/internal/cmd/redis/instance/create/create_test.go index ed9e8bf55..e9c6e39f8 100644 --- a/internal/cmd/redis/instance/create/create_test.go +++ b/internal/cmd/redis/instance/create/create_test.go @@ -65,6 +65,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), EnableMonitoring: utils.Ptr(true), @@ -151,6 +152,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example-name"), PlanId: utils.Ptr(testPlanId), @@ -171,6 +173,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), InstanceName: utils.Ptr(""), @@ -437,6 +440,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, PlanId: utils.Ptr(testPlanId), }, diff --git a/internal/cmd/redis/instance/delete/delete_test.go b/internal/cmd/redis/instance/delete/delete_test.go index 41a664543..0729e4889 100644 --- a/internal/cmd/redis/instance/delete/delete_test.go +++ b/internal/cmd/redis/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/redis/instance/describe/describe_test.go b/internal/cmd/redis/instance/describe/describe_test.go index b8a4af50f..4a8142f77 100644 --- a/internal/cmd/redis/instance/describe/describe_test.go +++ b/internal/cmd/redis/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/redis/instance/list/list_test.go b/internal/cmd/redis/instance/list/list_test.go index 7788ac864..9a8ffc30b 100644 --- a/internal/cmd/redis/instance/list/list_test.go +++ b/internal/cmd/redis/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/redis/instance/update/update_test.go b/internal/cmd/redis/instance/update/update_test.go index 73c49e3f1..fc15e2b5f 100644 --- a/internal/cmd/redis/instance/update/update_test.go +++ b/internal/cmd/redis/instance/update/update_test.go @@ -77,6 +77,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, EnableMonitoring: utils.Ptr(true), @@ -162,6 +163,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, @@ -181,6 +183,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, PlanId: utils.Ptr(testPlanId), @@ -462,6 +465,7 @@ func TestBuildRequest(t *testing.T) { model: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, }, diff --git a/internal/cmd/redis/plans/plans_test.go b/internal/cmd/redis/plans/plans_test.go index ff0098767..43b6f9577 100644 --- a/internal/cmd/redis/plans/plans_test.go +++ b/internal/cmd/redis/plans/plans_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/root.go b/internal/cmd/root.go index 726bbd180..45fa3f419 100644 --- a/internal/cmd/root.go +++ b/internal/cmd/root.go @@ -28,11 +28,12 @@ import ( "github.com/stackitcloud/stackit-cli/internal/pkg/errors" "github.com/stackitcloud/stackit-cli/internal/pkg/flags" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/spf13/cobra" ) -func NewRootCmd(version, date string) *cobra.Command { +func NewRootCmd(version, date string, p *print.Printer) *cobra.Command { cmd := &cobra.Command{ Use: "stackit", Short: "Manage STACKIT resources using the command line", @@ -41,6 +42,10 @@ func NewRootCmd(version, date string) *cobra.Command { SilenceErrors: true, // Error is beautified in a custom way before being printed SilenceUsage: true, DisableAutoGenTag: true, + PersistentPreRun: func(cmd *cobra.Command, args []string) { + p.Cmd = cmd + p.Verbosity = print.Level(globalflags.Parse(cmd).Verbosity) + }, RunE: func(cmd *cobra.Command, args []string) error { if flags.FlagToBoolValue(cmd, "version") { cmd.Printf("STACKIT CLI (BETA)\n") @@ -62,7 +67,7 @@ func NewRootCmd(version, date string) *cobra.Command { err := configureFlags(cmd) cobra.CheckErr(err) - addSubcommands(cmd) + addSubcommands(cmd, p) // Cobra creates the help flag with "help for " as the description // We want to override that message by capitalizing the first letter to match the other flag descriptions @@ -84,12 +89,12 @@ func configureFlags(cmd *cobra.Command) error { return nil } -func addSubcommands(cmd *cobra.Command) { +func addSubcommands(cmd *cobra.Command, p *print.Printer) { cmd.AddCommand(argus.NewCmd()) - cmd.AddCommand(auth.NewCmd()) + cmd.AddCommand(auth.NewCmd(p)) cmd.AddCommand(config.NewCmd()) cmd.AddCommand(curl.NewCmd()) - cmd.AddCommand(dns.NewCmd()) + cmd.AddCommand(dns.NewCmd(p)) cmd.AddCommand(logme.NewCmd()) cmd.AddCommand(mariadb.NewCmd()) cmd.AddCommand(mongodbflex.NewCmd()) @@ -97,7 +102,7 @@ func addSubcommands(cmd *cobra.Command) { cmd.AddCommand(opensearch.NewCmd()) cmd.AddCommand(organization.NewCmd()) cmd.AddCommand(postgresflex.NewCmd()) - cmd.AddCommand(project.NewCmd()) + cmd.AddCommand(project.NewCmd(p)) cmd.AddCommand(rabbitmq.NewCmd()) cmd.AddCommand(redis.NewCmd()) cmd.AddCommand(secretsmanager.NewCmd()) @@ -114,11 +119,18 @@ func traverseCommands(c *cobra.Command, f func(*cobra.Command)) { } func Execute(version, date string) { - cmd := NewRootCmd(version, date) + p := print.NewPrinter() + cmd := NewRootCmd(version, date, p) + + // We need to set the printer and verbosity here because the + // PersistentPreRun is not called when the command is wrongly called + p.Cmd = cmd + p.Verbosity = print.InfoLevel + err := cmd.Execute() if err != nil { err := beautifyUnknownAndMissingCommandsError(cmd, err) - cmd.PrintErrln(cmd.ErrPrefix(), err.Error()) + p.Error(err.Error()) os.Exit(1) } } diff --git a/internal/cmd/secrets-manager/instance/create/create_test.go b/internal/cmd/secrets-manager/instance/create/create_test.go index cd8df3d1c..e8531fa7a 100644 --- a/internal/cmd/secrets-manager/instance/create/create_test.go +++ b/internal/cmd/secrets-manager/instance/create/create_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr("example"), Acls: utils.Ptr([]string{"198.51.100.14/24"}), @@ -101,6 +102,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceName: utils.Ptr(""), Acls: &[]string{}, diff --git a/internal/cmd/secrets-manager/instance/delete/delete_test.go b/internal/cmd/secrets-manager/instance/delete/delete_test.go index fff0cf83c..28ddcab1b 100644 --- a/internal/cmd/secrets-manager/instance/delete/delete_test.go +++ b/internal/cmd/secrets-manager/instance/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/secrets-manager/instance/describe/describe_test.go b/internal/cmd/secrets-manager/instance/describe/describe_test.go index da65fa1cc..58f16e67d 100644 --- a/internal/cmd/secrets-manager/instance/describe/describe_test.go +++ b/internal/cmd/secrets-manager/instance/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, } diff --git a/internal/cmd/secrets-manager/instance/list/list_test.go b/internal/cmd/secrets-manager/instance/list/list_test.go index 7fc0b159d..bc27b6ae4 100644 --- a/internal/cmd/secrets-manager/instance/list/list_test.go +++ b/internal/cmd/secrets-manager/instance/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/secrets-manager/instance/update/update_test.go b/internal/cmd/secrets-manager/instance/update/update_test.go index ee62ce0b6..b36c6169b 100644 --- a/internal/cmd/secrets-manager/instance/update/update_test.go +++ b/internal/cmd/secrets-manager/instance/update/update_test.go @@ -55,6 +55,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Acls: utils.Ptr([]string{testACL1}), diff --git a/internal/cmd/secrets-manager/user/create/create_test.go b/internal/cmd/secrets-manager/user/create/create_test.go index 1f1016ba4..d88b94e2a 100644 --- a/internal/cmd/secrets-manager/user/create/create_test.go +++ b/internal/cmd/secrets-manager/user/create/create_test.go @@ -40,6 +40,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, Description: utils.Ptr("sample description"), diff --git a/internal/cmd/secrets-manager/user/delete/delete_test.go b/internal/cmd/secrets-manager/user/delete/delete_test.go index 2fec10573..815a4a6a4 100644 --- a/internal/cmd/secrets-manager/user/delete/delete_test.go +++ b/internal/cmd/secrets-manager/user/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/secrets-manager/user/describe/describe_test.go b/internal/cmd/secrets-manager/user/describe/describe_test.go index 226967fe5..06e0d1728 100644 --- a/internal/cmd/secrets-manager/user/describe/describe_test.go +++ b/internal/cmd/secrets-manager/user/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/secrets-manager/user/list/list_test.go b/internal/cmd/secrets-manager/user/list/list_test.go index 0f85250ee..b3e764903 100644 --- a/internal/cmd/secrets-manager/user/list/list_test.go +++ b/internal/cmd/secrets-manager/user/list/list_test.go @@ -39,6 +39,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: utils.Ptr(testInstanceId), Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/secrets-manager/user/update/update_test.go b/internal/cmd/secrets-manager/user/update/update_test.go index 3b80192ce..d33da4484 100644 --- a/internal/cmd/secrets-manager/user/update/update_test.go +++ b/internal/cmd/secrets-manager/user/update/update_test.go @@ -49,6 +49,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, InstanceId: testInstanceId, UserId: testUserId, diff --git a/internal/cmd/service-account/create/create_test.go b/internal/cmd/service-account/create/create_test.go index fa980d5cc..ea1eb597b 100644 --- a/internal/cmd/service-account/create/create_test.go +++ b/internal/cmd/service-account/create/create_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Name: utils.Ptr("example"), } @@ -84,6 +85,7 @@ func TestParseInput(t *testing.T) { expectedModel: &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Name: utils.Ptr(""), }, diff --git a/internal/cmd/service-account/delete/delete_test.go b/internal/cmd/service-account/delete/delete_test.go index b6b194c93..bc055b60e 100644 --- a/internal/cmd/service-account/delete/delete_test.go +++ b/internal/cmd/service-account/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Email: testEmail, } diff --git a/internal/cmd/service-account/key/create/create_test.go b/internal/cmd/service-account/key/create/create_test.go index b15b3b681..7bd1d0d3b 100644 --- a/internal/cmd/service-account/key/create/create_test.go +++ b/internal/cmd/service-account/key/create/create_test.go @@ -41,6 +41,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, } diff --git a/internal/cmd/service-account/key/delete/delete_test.go b/internal/cmd/service-account/key/delete/delete_test.go index 737e8b351..03f5ab0ab 100644 --- a/internal/cmd/service-account/key/delete/delete_test.go +++ b/internal/cmd/service-account/key/delete/delete_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, KeyId: testKeyId, diff --git a/internal/cmd/service-account/key/describe/describe_test.go b/internal/cmd/service-account/key/describe/describe_test.go index 7bd871b8a..7f0ffba05 100644 --- a/internal/cmd/service-account/key/describe/describe_test.go +++ b/internal/cmd/service-account/key/describe/describe_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, KeyId: testKeyId, diff --git a/internal/cmd/service-account/key/list/list_test.go b/internal/cmd/service-account/key/list/list_test.go index 09ac930d6..574480c63 100644 --- a/internal/cmd/service-account/key/list/list_test.go +++ b/internal/cmd/service-account/key/list/list_test.go @@ -39,6 +39,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/service-account/key/update/update_test.go b/internal/cmd/service-account/key/update/update_test.go index ea573bf5c..6d419e0c9 100644 --- a/internal/cmd/service-account/key/update/update_test.go +++ b/internal/cmd/service-account/key/update/update_test.go @@ -51,6 +51,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, KeyId: testKeyId, diff --git a/internal/cmd/service-account/list/list_test.go b/internal/cmd/service-account/list/list_test.go index 9f2da3a0e..e853aad3d 100644 --- a/internal/cmd/service-account/list/list_test.go +++ b/internal/cmd/service-account/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/service-account/token/create/create_test.go b/internal/cmd/service-account/token/create/create_test.go index 0191bf84b..0813a9573 100644 --- a/internal/cmd/service-account/token/create/create_test.go +++ b/internal/cmd/service-account/token/create/create_test.go @@ -40,6 +40,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, TTLDays: utils.Ptr(testTTLDays), diff --git a/internal/cmd/service-account/token/list/list_test.go b/internal/cmd/service-account/token/list/list_test.go index 333c1b854..2f577572f 100644 --- a/internal/cmd/service-account/token/list/list_test.go +++ b/internal/cmd/service-account/token/list/list_test.go @@ -39,6 +39,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, Limit: utils.Ptr(int64(10)), diff --git a/internal/cmd/service-account/token/revoke/revoke_test.go b/internal/cmd/service-account/token/revoke/revoke_test.go index a9cb08739..8e8a5fbe4 100644 --- a/internal/cmd/service-account/token/revoke/revoke_test.go +++ b/internal/cmd/service-account/token/revoke/revoke_test.go @@ -47,6 +47,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ServiceAccountEmail: testServiceAccountEmail, TokenId: testTokenId, diff --git a/internal/cmd/ske/cluster/create/create_test.go b/internal/cmd/ske/cluster/create/create_test.go index db09309f1..06aee5249 100644 --- a/internal/cmd/ske/cluster/create/create_test.go +++ b/internal/cmd/ske/cluster/create/create_test.go @@ -124,6 +124,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: testClusterName, Payload: testPayload, diff --git a/internal/cmd/ske/cluster/delete/delete_test.go b/internal/cmd/ske/cluster/delete/delete_test.go index f95a3ed58..8b0c0f3af 100644 --- a/internal/cmd/ske/cluster/delete/delete_test.go +++ b/internal/cmd/ske/cluster/delete/delete_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: testClusterName, } diff --git a/internal/cmd/ske/cluster/describe/describe_test.go b/internal/cmd/ske/cluster/describe/describe_test.go index 658cd69fa..48fa4614a 100644 --- a/internal/cmd/ske/cluster/describe/describe_test.go +++ b/internal/cmd/ske/cluster/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: testClusterName, } diff --git a/internal/cmd/ske/cluster/generate-payload/generate_payload_test.go b/internal/cmd/ske/cluster/generate-payload/generate_payload_test.go index 3f7e0adec..831832835 100644 --- a/internal/cmd/ske/cluster/generate-payload/generate_payload_test.go +++ b/internal/cmd/ske/cluster/generate-payload/generate_payload_test.go @@ -36,6 +36,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: utils.Ptr("example-name"), } @@ -71,7 +72,7 @@ func TestParseInput(t *testing.T) { flagValues: map[string]string{}, isValid: true, expectedModel: &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, }, }, { diff --git a/internal/cmd/ske/cluster/list/list_test.go b/internal/cmd/ske/cluster/list/list_test.go index c9507f95e..898de77e0 100644 --- a/internal/cmd/ske/cluster/list/list_test.go +++ b/internal/cmd/ske/cluster/list/list_test.go @@ -37,6 +37,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, Limit: utils.Ptr(int64(10)), } diff --git a/internal/cmd/ske/cluster/update/update_test.go b/internal/cmd/ske/cluster/update/update_test.go index cfe07e8fd..fd602df4c 100644 --- a/internal/cmd/ske/cluster/update/update_test.go +++ b/internal/cmd/ske/cluster/update/update_test.go @@ -124,6 +124,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: testClusterName, Payload: testPayload, diff --git a/internal/cmd/ske/credentials/describe/describe_test.go b/internal/cmd/ske/credentials/describe/describe_test.go index 4ce8e45f4..faf8b5034 100644 --- a/internal/cmd/ske/credentials/describe/describe_test.go +++ b/internal/cmd/ske/credentials/describe/describe_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: testClusterName, } diff --git a/internal/cmd/ske/credentials/rotate/rotate_test.go b/internal/cmd/ske/credentials/rotate/rotate_test.go index aee433373..f137e9698 100644 --- a/internal/cmd/ske/credentials/rotate/rotate_test.go +++ b/internal/cmd/ske/credentials/rotate/rotate_test.go @@ -45,6 +45,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, ClusterName: testClusterName, } diff --git a/internal/cmd/ske/describe/describe_test.go b/internal/cmd/ske/describe/describe_test.go index 590762946..9f2407d44 100644 --- a/internal/cmd/ske/describe/describe_test.go +++ b/internal/cmd/ske/describe/describe_test.go @@ -35,6 +35,7 @@ func fixtureInputModel(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, } for _, mod := range mods { diff --git a/internal/cmd/ske/disable/disable_test.go b/internal/cmd/ske/disable/disable_test.go index 51575b825..1d2831e0d 100644 --- a/internal/cmd/ske/disable/disable_test.go +++ b/internal/cmd/ske/disable/disable_test.go @@ -35,6 +35,7 @@ func fixtureInputModel(mods ...func(model *InputModel)) *InputModel { model := &InputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, } for _, mod := range mods { diff --git a/internal/cmd/ske/enable/enable_test.go b/internal/cmd/ske/enable/enable_test.go index a6755f27c..57505d7a0 100644 --- a/internal/cmd/ske/enable/enable_test.go +++ b/internal/cmd/ske/enable/enable_test.go @@ -35,6 +35,7 @@ func fixtureInputModel(mods ...func(model *InputModel)) *InputModel { model := &InputModel{ GlobalFlagModel: &globalflags.GlobalFlagModel{ ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, }, } for _, mod := range mods { diff --git a/internal/cmd/ske/options/options_test.go b/internal/cmd/ske/options/options_test.go index 080cbf96e..a9e86f11f 100644 --- a/internal/cmd/ske/options/options_test.go +++ b/internal/cmd/ske/options/options_test.go @@ -32,7 +32,7 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, AvailabilityZones: false, KubernetesVersions: false, MachineImages: false, @@ -47,7 +47,7 @@ func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { func fixtureInputModelAllTrue(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{}, + GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, AvailabilityZones: true, KubernetesVersions: true, MachineImages: true, diff --git a/internal/pkg/auth/service_account.go b/internal/pkg/auth/service_account.go index be5e749c5..f04d0f388 100644 --- a/internal/pkg/auth/service_account.go +++ b/internal/pkg/auth/service_account.go @@ -6,6 +6,7 @@ import ( "net/http" "github.com/stackitcloud/stackit-cli/internal/pkg/errors" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/stackitcloud/stackit-sdk-go/core/clients" ) @@ -34,7 +35,7 @@ var _ http.RoundTripper = &keyFlowWithStorage{} // For the key flow, it fetches an access and refresh token from the Service Account API. // For the token flow, it just stores the provided token and doesn't check if it is valid. // It returns the email associated with the service account -func AuthenticateServiceAccount(rt http.RoundTripper) (email string, err error) { +func AuthenticateServiceAccount(p *print.Printer, rt http.RoundTripper) (email string, err error) { authFields := make(map[authFieldKey]string) var authFlowType AuthFlow switch flow := rt.(type) { @@ -43,6 +44,7 @@ func AuthenticateServiceAccount(rt http.RoundTripper) (email string, err error) accessToken, err := flow.GetAccessToken() if err != nil { + p.Debug(print.ErrorLevel, "get access token: %v", err) return "", &errors.ActivateServiceAccountError{} } serviceAccountKey := flow.GetConfig().ServiceAccountKey diff --git a/internal/pkg/auth/service_account_test.go b/internal/pkg/auth/service_account_test.go index 75251550a..a4b3a72ce 100644 --- a/internal/pkg/auth/service_account_test.go +++ b/internal/pkg/auth/service_account_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/stackitcloud/stackit-cli/internal/pkg/config" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/golang-jwt/jwt/v5" "github.com/stackitcloud/stackit-sdk-go/core/clients" @@ -151,7 +152,8 @@ func TestAuthenticateServiceAccount(t *testing.T) { flow = &http.Transport{} } - email, err := AuthenticateServiceAccount(flow) + p := print.NewPrinter() + email, err := AuthenticateServiceAccount(p, flow) if !tt.isValid { if err == nil { diff --git a/internal/pkg/globalflags/global_flags.go b/internal/pkg/globalflags/global_flags.go index f0a3e3e1a..6a6aef335 100644 --- a/internal/pkg/globalflags/global_flags.go +++ b/internal/pkg/globalflags/global_flags.go @@ -5,6 +5,7 @@ import ( "github.com/stackitcloud/stackit-cli/internal/pkg/config" "github.com/stackitcloud/stackit-cli/internal/pkg/flags" + "github.com/stackitcloud/stackit-cli/internal/pkg/print" "github.com/spf13/cobra" "github.com/spf13/pflag" @@ -21,10 +22,10 @@ const ( JSONOutputFormat = "json" PrettyOutputFormat = "pretty" - DebugVerbosity = "debug" - InfoVerbosity = "info" - WarningVerbosity = "warning" - ErrorVerbosity = "error" + DebugVerbosity = string(print.DebugLevel) + InfoVerbosity = string(print.InfoLevel) + WarningVerbosity = string(print.WarningLevel) + ErrorVerbosity = string(print.ErrorLevel) VerbosityDefault = InfoVerbosity ) @@ -37,6 +38,7 @@ type GlobalFlagModel struct { AssumeYes bool OutputFormat string ProjectId string + Verbosity string } func Configure(flagSet *pflag.FlagSet) error { @@ -75,5 +77,6 @@ func Parse(cmd *cobra.Command) *GlobalFlagModel { AssumeYes: flags.FlagToBoolValue(cmd, AssumeYesFlag), OutputFormat: viper.GetString(config.OutputFormatKey), ProjectId: viper.GetString(config.ProjectIdKey), + Verbosity: viper.GetString(config.VerbosityKey), } } diff --git a/internal/pkg/print/print.go b/internal/pkg/print/print.go new file mode 100644 index 000000000..ced7f8b5d --- /dev/null +++ b/internal/pkg/print/print.go @@ -0,0 +1,87 @@ +package print + +import ( + "io" + "log/slog" + "os" + + "github.com/spf13/cobra" +) + +type Level string + +const ( + DebugLevel Level = "debug" + InfoLevel Level = "info" + WarningLevel Level = "warning" + ErrorLevel Level = "error" +) + +type Printer struct { + Cmd *cobra.Command + Verbosity Level +} + +// Creates a new printer, including setting up the default logger. +func NewPrinter() *Printer { + logger := slog.New(slog.NewTextHandler(os.Stderr, &slog.HandlerOptions{AddSource: true, Level: slog.LevelDebug})) + slog.SetDefault(logger) + + return &Printer{} +} + +// Print an output using Printf to the defined output (falling back to Stderr if not set). +func (p *Printer) Outputf(msg string, args ...any) { + p.Cmd.Printf(msg, args...) +} + +// Print an output using Println to the defined output (falling back to Stderr if not set). +func (p *Printer) Outputln(msg string) { + p.Cmd.Println(msg) +} + +// Print a Debug level log through the "slog" package. +// If the verbosity level is not Debug, it does nothing +func (p *Printer) Debug(level Level, msg string, args ...any) { + if p.Verbosity != DebugLevel { + return + } + switch level { + case DebugLevel: + slog.Debug(msg, args...) + case InfoLevel: + slog.Info(msg, args...) + case WarningLevel: + slog.Warn(msg, args...) + case ErrorLevel: + slog.Error(msg, args...) + } +} + +// Print an Info level output to the defined Err output (falling back to Stderr if not set). +// If the verbosity level is not Debug or Info, it does nothing. +func (p *Printer) Info(msg string, args ...any) { + if p.Verbosity != DebugLevel && p.Verbosity != InfoLevel { + return + } + p.Cmd.PrintErrf(msg, args...) +} + +// Print a Warn level output to the defined Err output (falling back to Stderr if not set). +// If the verbosity level is not Debug, Info, or Warn, it does nothing. +func (p *Printer) Warn(msg string) { + if p.Verbosity != DebugLevel && p.Verbosity != InfoLevel && p.Verbosity != WarningLevel { + return + } + p.Cmd.PrintErrf("Warning: %s\n", msg) +} + +// Print an Error level output to the defined Err output (falling back to Stderr if not set). +func (p *Printer) Error(msg string) { + p.Cmd.PrintErrln(p.Cmd.ErrPrefix(), msg) +} + +// Returns the printer's command defined output +func (p *Printer) OutOrStdout() io.Writer { + return p.Cmd.OutOrStdout() +} diff --git a/internal/pkg/print/print_test.go b/internal/pkg/print/print_test.go new file mode 100644 index 000000000..48555b817 --- /dev/null +++ b/internal/pkg/print/print_test.go @@ -0,0 +1,434 @@ +package print + +import ( + "bytes" + "fmt" + "io" + "log/slog" + "os" + "testing" + + "github.com/spf13/cobra" +) + +func TestOutputf(t *testing.T) { + tests := []struct { + description string + message string + args []any + verbosity Level + }{ + { + description: "debug verbosity", + message: "Test message", + verbosity: DebugLevel, + }, + { + description: "info verbosity", + message: "Test message", + verbosity: InfoLevel, + }, + { + description: "info verbosity - with args", + message: "Test message with args: %s, %s", + args: []any{"arg1", "arg2"}, + verbosity: DebugLevel, + }, + { + description: "warning verbosity", + message: "Test message", + verbosity: WarningLevel, + }, + { + description: "error verbosity", + message: "Test message", + verbosity: ErrorLevel, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + var buf bytes.Buffer + cmd := &cobra.Command{} + cmd.SetOutput(&buf) + p := &Printer{ + Cmd: cmd, + Verbosity: tt.verbosity, + } + + if len(tt.args) == 0 { + p.Outputf(tt.message) + } else { + p.Outputf(tt.message, tt.args...) + } + + expectedOutput := tt.message + if len(tt.args) > 0 { + expectedOutput = fmt.Sprintf(tt.message, tt.args...) + } + output := buf.String() + if output != expectedOutput { + t.Errorf("unexpected output: got %q, want %q", output, expectedOutput) + } + }) + } +} + +func TestOutputln(t *testing.T) { + tests := []struct { + description string + message string + verbosity Level + }{ + { + description: "debug verbosity", + message: "Test message", + verbosity: DebugLevel, + }, + { + description: "info verbosity", + message: "Test message", + verbosity: InfoLevel, + }, + { + description: "warning verbosity", + message: "Test message", + verbosity: WarningLevel, + }, + { + description: "error verbosity", + message: "Test message", + verbosity: ErrorLevel, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + var buf bytes.Buffer + cmd := &cobra.Command{} + cmd.SetOutput(&buf) + p := &Printer{ + Cmd: cmd, + Verbosity: tt.verbosity, + } + + p.Outputln(tt.message) + + expectedOutput := fmt.Sprintf("%s\n", tt.message) + output := buf.String() + if output != expectedOutput { + t.Errorf("unexpected output: got %q, want %q", output, expectedOutput) + } + }) + } +} + +func TestDebug(t *testing.T) { + tests := []struct { + description string + message string + args []any + verbosity Level + expectsLog bool + logLevel Level + }{ + { + description: "debug verbosity - debug log", + message: "Test message", + verbosity: DebugLevel, + expectsLog: true, + logLevel: DebugLevel, + }, + { + description: "debug verbosity - info log", + message: "Test message", + verbosity: DebugLevel, + expectsLog: true, + logLevel: InfoLevel, + }, + { + description: "debug verbosity - warning log", + message: "Test message", + verbosity: DebugLevel, + expectsLog: true, + logLevel: WarningLevel, + }, + { + description: "debug verbosity - error log", + message: "Test message", + verbosity: DebugLevel, + expectsLog: true, + logLevel: ErrorLevel, + }, + { + description: "debug verbosity - error log with args", + message: "Test message", + args: []any{"arg1", "arg2"}, + verbosity: DebugLevel, + expectsLog: true, + logLevel: ErrorLevel, + }, + { + description: "info verbosity", + message: "Test message", + verbosity: InfoLevel, + expectsLog: false, + logLevel: DebugLevel, + }, + { + description: "warning verbosity", + message: "Test message", + verbosity: WarningLevel, + expectsLog: false, + logLevel: DebugLevel, + }, + { + description: "error verbosity", + message: "Test message", + verbosity: ErrorLevel, + expectsLog: false, + logLevel: DebugLevel, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + var buf bytes.Buffer + cmd := &cobra.Command{} + cmd.SetOutput(&buf) + logger := slog.New(slog.NewTextHandler(&buf, &slog.HandlerOptions{AddSource: true, Level: slog.LevelDebug})) + slog.SetDefault(logger) + p := &Printer{ + Cmd: cmd, + Verbosity: tt.verbosity, + } + + if len(tt.args) == 0 { + p.Debug(tt.logLevel, tt.message) + } + if len(tt.args) > 0 { + p.Debug(tt.logLevel, tt.message, tt.args...) + } + + output := buf.String() + // We only check if a log is printed, as the content of the log as fields that change such as the time + if tt.expectsLog && output == "" { + t.Errorf("expected a log but got none") + } + if !tt.expectsLog && output != "" { + t.Errorf("got log when it wasn't expected: got %q", output) + } + }) + } +} + +func TestInfo(t *testing.T) { + tests := []struct { + description string + message string + verbosity Level + shouldPrint bool + }{ + { + description: "debug verbosity", + message: "Test message", + verbosity: DebugLevel, + shouldPrint: true, + }, + { + description: "info verbosity", + message: "Test message", + verbosity: InfoLevel, + shouldPrint: true, + }, + { + description: "warning verbosity", + message: "Test message", + verbosity: WarningLevel, + shouldPrint: false, + }, + { + description: "error verbosity", + message: "Test message", + verbosity: ErrorLevel, + shouldPrint: false, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + var buf bytes.Buffer + cmd := &cobra.Command{} + cmd.SetOutput(&buf) + p := &Printer{ + Cmd: cmd, + Verbosity: tt.verbosity, + } + + p.Info(tt.message) + + expectedOutput := tt.message + output := buf.String() + if tt.shouldPrint { + if output != expectedOutput { + t.Errorf("unexpected output: got %q, want %q", output, expectedOutput) + } + } else { + if output != "" { + t.Errorf("unexpected output: got %q, want %q", output, "") + } + } + }) + } +} + +func TestWarn(t *testing.T) { + tests := []struct { + description string + message string + verbosity Level + shouldPrint bool + }{ + { + description: "debug verbosity", + message: "Test message", + verbosity: DebugLevel, + shouldPrint: true, + }, + { + description: "info verbosity", + message: "Test message", + verbosity: InfoLevel, + shouldPrint: true, + }, + { + description: "warning verbosity", + message: "Test message", + verbosity: WarningLevel, + shouldPrint: true, + }, + { + description: "error verbosity", + message: "Test message", + verbosity: ErrorLevel, + shouldPrint: false, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + var buf bytes.Buffer + cmd := &cobra.Command{} + cmd.SetOutput(&buf) + p := &Printer{ + Cmd: cmd, + Verbosity: tt.verbosity, + } + + p.Warn(tt.message) + + expectedOutput := fmt.Sprintf("Warning: %s\n", tt.message) + output := buf.String() + if tt.shouldPrint { + if output != expectedOutput { + t.Errorf("unexpected output: got %q, want %q", output, expectedOutput) + } + } else { + if output != "" { + t.Errorf("unexpected output: got %q, want %q", output, "") + } + } + }) + } +} + +func TestError(t *testing.T) { + tests := []struct { + description string + message string + verbosity Level + shouldPrint bool + }{ + { + description: "debug verbosity", + message: "Test message", + verbosity: DebugLevel, + shouldPrint: true, + }, + { + description: "info verbosity", + message: "Test message", + verbosity: InfoLevel, + shouldPrint: true, + }, + { + description: "warning verbosity", + message: "Test message", + verbosity: WarningLevel, + shouldPrint: true, + }, + { + description: "error verbosity", + message: "Test message", + verbosity: ErrorLevel, + shouldPrint: true, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + var buf bytes.Buffer + cmd := &cobra.Command{} + cmd.SetOutput(&buf) + p := &Printer{ + Cmd: cmd, + Verbosity: tt.verbosity, + } + + p.Error(tt.message) + + expectedOutput := fmt.Sprintf("Error: %s\n", tt.message) + output := buf.String() + if tt.shouldPrint { + if output != expectedOutput { + t.Errorf("unexpected output: got %q, want %q", output, expectedOutput) + } + } else { + if output != "" { + t.Errorf("unexpected output: got %q, want %q", output, "") + } + } + }) + } +} + +func TestOutOrStdout(t *testing.T) { + tests := []struct { + description string + writer io.Writer + }{ + { + description: "os stdout", + writer: os.Stdout, + }, + { + description: "os stderr", + writer: os.Stderr, + }, + { + description: "custom bytes buffer", + writer: &bytes.Buffer{}, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + cmd := &cobra.Command{} + cmd.SetOutput(tt.writer) + p := &Printer{ + Cmd: cmd, + Verbosity: DebugLevel, + } + + got := p.OutOrStdout() + + expected := tt.writer + if got != expected { + t.Errorf("unexpected output: got %v, want %v", got, expected) + } + }) + } +} diff --git a/scripts/generate.go b/scripts/generate.go index 479e68a18..878078862 100644 --- a/scripts/generate.go +++ b/scripts/generate.go @@ -38,7 +38,7 @@ func main() { linkHandler := func(filename string) string { return fmt.Sprintf("./%s", filename) } - err = doc.GenMarkdownTreeCustom(cmd.NewRootCmd("", ""), docsDir, filePrepender, linkHandler) + err = doc.GenMarkdownTreeCustom(cmd.NewRootCmd("", "", nil), docsDir, filePrepender, linkHandler) if err != nil { log.Fatalf("Error generating documentation: %v", err) }