Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions internal/cmd/beta/sqlserverflex/database/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,23 +66,20 @@ func NewCmd(params *params.CmdParams) *cobra.Command {
if err != nil {
return fmt.Errorf("get SQLServer Flex databases: %w", err)
}
if resp.Databases == nil || len(*resp.Databases) == 0 {
projectLabel, err := projectname.GetProjectName(ctx, params.Printer, params.CliVersion, cmd)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get project name: %v", err)
projectLabel = model.ProjectId
}
params.Printer.Info("No databases found for instance %s on project %s\n", model.InstanceId, projectLabel)
return nil
databases := resp.GetDatabases()

projectLabel, err := projectname.GetProjectName(ctx, params.Printer, params.CliVersion, cmd)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get project name: %v", err)
projectLabel = model.ProjectId
}
databases := *resp.Databases

// Truncate output
if model.Limit != nil && len(databases) > int(*model.Limit) {
databases = databases[:*model.Limit]
}

return outputResult(params.Printer, model.OutputFormat, databases)
return outputResult(params.Printer, model.OutputFormat, model.InstanceId, projectLabel, databases)
},
}

Expand Down Expand Up @@ -127,8 +124,13 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
return req
}

func outputResult(p *print.Printer, outputFormat string, databases []sqlserverflex.Database) error {
func outputResult(p *print.Printer, outputFormat, instanceId, projectLabel string, databases []sqlserverflex.Database) error {
return p.OutputResult(outputFormat, databases, func() error {
if len(databases) == 0 {
p.Outputf("No databases found for instance %s on project %s\n", instanceId, projectLabel)
return nil
}

table := tables.NewTable()
table.SetHeader("ID", "NAME")
for i := range databases {
Expand Down
7 changes: 5 additions & 2 deletions internal/cmd/beta/sqlserverflex/database/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
var testClient = &sqlserverflex.APIClient{}
var testProjectId = uuid.NewString()
var testInstanceId = uuid.NewString()
var testRegion = "eu01"

const testRegion = "eu01"

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
Expand Down Expand Up @@ -175,6 +176,8 @@ func TestBuildRequest(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
instanceId string
projectLabel string
databases []sqlserverflex.Database
}
tests := []struct {
Expand All @@ -199,7 +202,7 @@ func TestOutputResult(t *testing.T) {
p.Cmd = NewCmd(&params.CmdParams{Printer: p})
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := outputResult(p, tt.args.outputFormat, tt.args.databases); (err != nil) != tt.wantErr {
if err := outputResult(p, tt.args.outputFormat, tt.args.instanceId, tt.args.projectLabel, tt.args.databases); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down
24 changes: 13 additions & 11 deletions internal/cmd/beta/sqlserverflex/instance/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,20 @@ func NewCmd(params *params.CmdParams) *cobra.Command {
if err != nil {
return fmt.Errorf("get SQLServer Flex instances: %w", err)
}
if resp.Items == nil || len(*resp.Items) == 0 {
projectLabel, err := projectname.GetProjectName(ctx, params.Printer, params.CliVersion, cmd)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get project name: %v", err)
projectLabel = model.ProjectId
}
params.Printer.Info("No instances found for project %q\n", projectLabel)
return nil
instances := resp.GetItems()

projectLabel, err := projectname.GetProjectName(ctx, params.Printer, params.CliVersion, cmd)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get project name: %v", err)
projectLabel = model.ProjectId
}
instances := *resp.Items

// Truncate output
if model.Limit != nil && len(instances) > int(*model.Limit) {
instances = instances[:*model.Limit]
}

return outputResult(params.Printer, model.OutputFormat, instances)
return outputResult(params.Printer, model.OutputFormat, projectLabel, instances)
},
}

Expand Down Expand Up @@ -120,8 +117,13 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
return req
}

func outputResult(p *print.Printer, outputFormat string, instances []sqlserverflex.InstanceListInstance) error {
func outputResult(p *print.Printer, outputFormat, projectLabel string, instances []sqlserverflex.InstanceListInstance) error {
return p.OutputResult(outputFormat, instances, func() error {
if len(instances) == 0 {
p.Outputf("No instances found for project %q\n", projectLabel)
return nil
}

table := tables.NewTable()
table.SetHeader("ID", "NAME", "STATUS")
for i := range instances {
Expand Down
6 changes: 4 additions & 2 deletions internal/cmd/beta/sqlserverflex/instance/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ type testCtxKey struct{}
var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
var testClient = &sqlserverflex.APIClient{}
var testProjectId = uuid.NewString()
var testRegion = "eu01"

const testRegion = "eu01"

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
Expand Down Expand Up @@ -151,6 +152,7 @@ func TestBuildRequest(t *testing.T) {
func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
projectLabel string
instances []sqlserverflex.InstanceListInstance
}
tests := []struct {
Expand All @@ -175,7 +177,7 @@ func TestOutputResult(t *testing.T) {
p.Cmd = NewCmd(&params.CmdParams{Printer: p})
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := outputResult(p, tt.args.outputFormat, tt.args.instances); (err != nil) != tt.wantErr {
if err := outputResult(p, tt.args.outputFormat, tt.args.projectLabel, tt.args.instances); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down
24 changes: 13 additions & 11 deletions internal/cmd/beta/sqlserverflex/user/list/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -67,23 +67,20 @@ func NewCmd(params *params.CmdParams) *cobra.Command {
if err != nil {
return fmt.Errorf("get SQLServer Flex users: %w", err)
}
if resp.Items == nil || len(*resp.Items) == 0 {
instanceLabel, err := sqlserverflexUtils.GetInstanceName(ctx, apiClient, model.ProjectId, *model.InstanceId, model.Region)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get instance name: %v", err)
instanceLabel = *model.InstanceId
}
params.Printer.Info("No users found for instance %q\n", instanceLabel)
return nil
users := resp.GetItems()

instanceLabel, err := sqlserverflexUtils.GetInstanceName(ctx, apiClient, model.ProjectId, *model.InstanceId, model.Region)
if err != nil {
params.Printer.Debug(print.ErrorLevel, "get instance name: %v", err)
instanceLabel = *model.InstanceId
}
users := *resp.Items

// Truncate output
if model.Limit != nil && len(users) > int(*model.Limit) {
users = users[:*model.Limit]
}

return outputResult(params.Printer, model.OutputFormat, users)
return outputResult(params.Printer, model.OutputFormat, instanceLabel, users)
},
}

Expand Down Expand Up @@ -128,8 +125,13 @@ func buildRequest(ctx context.Context, model *inputModel, apiClient *sqlserverfl
return req
}

func outputResult(p *print.Printer, outputFormat string, users []sqlserverflex.InstanceListUser) error {
func outputResult(p *print.Printer, outputFormat, instanceLabel string, users []sqlserverflex.InstanceListUser) error {
return p.OutputResult(outputFormat, users, func() error {
if len(users) == 0 {
p.Outputf("No users found for instance %q\n", instanceLabel)
return nil
}

table := tables.NewTable()
table.SetHeader("ID", "USERNAME")
for i := range users {
Expand Down
10 changes: 6 additions & 4 deletions internal/cmd/beta/sqlserverflex/user/list/list_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo")
var testClient = &sqlserverflex.APIClient{}
var testProjectId = uuid.NewString()
var testInstanceId = uuid.NewString()
var testRegion = "eu01"

const testRegion = "eu01"

func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string {
flagValues := map[string]string{
Expand Down Expand Up @@ -167,8 +168,9 @@ func TestBuildRequest(t *testing.T) {

func TestOutputResult(t *testing.T) {
type args struct {
outputFormat string
users []sqlserverflex.InstanceListUser
outputFormat string
instanceLabel string
users []sqlserverflex.InstanceListUser
}
tests := []struct {
name string
Expand All @@ -192,7 +194,7 @@ func TestOutputResult(t *testing.T) {
p.Cmd = NewCmd(&params.CmdParams{Printer: p})
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := outputResult(p, tt.args.outputFormat, tt.args.users); (err != nil) != tt.wantErr {
if err := outputResult(p, tt.args.outputFormat, tt.args.instanceLabel, tt.args.users); (err != nil) != tt.wantErr {
t.Errorf("outputResult() error = %v, wantErr %v", err, tt.wantErr)
}
})
Expand Down
Loading