Skip to content

Commit ecf1e91

Browse files
committed
feat: review feedback
1 parent 8e713ae commit ecf1e91

File tree

6 files changed

+51
-23
lines changed

6 files changed

+51
-23
lines changed

internal/cmd/datacenter/describe.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ func DescribeDatacenter(client hcapi2.Client, datacenter *hcloud.Datacenter, sho
4141
fmt.Fprintf(&sb, "Name:\t%s\n", datacenter.Name)
4242
fmt.Fprintf(&sb, "Description:\t%s\n", datacenter.Description)
4343

44-
fmt.Fprintln(&sb)
45-
fmt.Fprintf(&sb, "Location:\n")
46-
fmt.Fprint(&sb, util.PrefixLines(location.DescribeLocation(datacenter.Location), " "))
47-
4844
if short {
4945
return sb.String()
5046
}
5147

48+
fmt.Fprintln(&sb)
49+
fmt.Fprintf(&sb, "Location:\n")
50+
fmt.Fprint(&sb, util.PrefixLines(location.DescribeLocation(datacenter.Location), " "))
51+
5252
type ServerTypeStatus struct {
5353
ID int64
5454
Available bool

internal/cmd/primaryip/describe.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/spf13/cobra"
99

1010
"github.com/hetznercloud/cli/internal/cmd/base"
11+
"github.com/hetznercloud/cli/internal/cmd/datacenter"
1112
"github.com/hetznercloud/cli/internal/cmd/location"
1213
"github.com/hetznercloud/cli/internal/cmd/util"
1314
"github.com/hetznercloud/cli/internal/hcapi2"
@@ -26,7 +27,7 @@ var DescribeCmd = base.DescribeCmd[*hcloud.PrimaryIP]{
2627
}
2728
return ip, hcloud.SchemaFromPrimaryIP(ip), nil
2829
},
29-
PrintText: func(_ state.State, _ *cobra.Command, out io.Writer, primaryIP *hcloud.PrimaryIP) error {
30+
PrintText: func(s state.State, _ *cobra.Command, out io.Writer, primaryIP *hcloud.PrimaryIP) error {
3031
fmt.Fprintf(out, "ID:\t%d\n", primaryIP.ID)
3132
fmt.Fprintf(out, "Name:\t%s\n", primaryIP.Name)
3233
fmt.Fprintf(out, "Created:\t%s (%s)\n", util.Datetime(primaryIP.Created), humanize.Time(primaryIP.Created))
@@ -64,6 +65,13 @@ var DescribeCmd = base.DescribeCmd[*hcloud.PrimaryIP]{
6465
fmt.Fprintln(out)
6566
fmt.Fprintf(out, "Location:\n")
6667
fmt.Fprintf(out, "%s", util.PrefixLines(location.DescribeLocation(primaryIP.Location), " "))
68+
69+
if primaryIP.Datacenter != nil {
70+
fmt.Fprintln(out)
71+
fmt.Fprintf(out, "Datacenter:\n")
72+
fmt.Fprintf(out, "%s", util.PrefixLines(datacenter.DescribeDatacenter(s.Client(), primaryIP.Datacenter, true), " "))
73+
}
74+
6775
return nil
6876
},
6977
}

internal/cmd/primaryip/describe_test.go

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,16 @@ func TestDescribe(t *testing.T) {
3535
Blocked: true,
3636
AutoDelete: false,
3737
AssigneeType: "server",
38-
Location: &hcloud.Location{ID: 0},
38+
Location: &hcloud.Location{
39+
ID: 3,
40+
Name: "hel1",
41+
Description: "Helsinki DC Park 1",
42+
NetworkZone: "eu-central",
43+
Country: "FI",
44+
City: "Helsinki",
45+
Latitude: 60.169855,
46+
Longitude: 24.938379,
47+
},
3948
}
4049

4150
fx.Client.PrimaryIPClient.EXPECT().
@@ -65,14 +74,14 @@ Labels:
6574
No labels
6675
6776
Location:
68-
ID: 0
69-
Name:
70-
Description:
71-
Network Zone:
72-
Country:
73-
City:
74-
Latitude: 0.000000
75-
Longitude: 0.000000
77+
ID: 3
78+
Name: hel1
79+
Description: Helsinki DC Park 1
80+
Network Zone: eu-central
81+
Country: FI
82+
City: Helsinki
83+
Latitude: 60.169855
84+
Longitude: 24.938379
7685
`, util.Datetime(primaryIP.Created), humanize.Time(primaryIP.Created))
7786

7887
require.NoError(t, err)

internal/cmd/server/describe.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/spf13/cobra"
1010

1111
"github.com/hetznercloud/cli/internal/cmd/base"
12+
"github.com/hetznercloud/cli/internal/cmd/datacenter"
1213
"github.com/hetznercloud/cli/internal/cmd/image"
1314
"github.com/hetznercloud/cli/internal/cmd/iso"
1415
"github.com/hetznercloud/cli/internal/cmd/location"
@@ -148,6 +149,12 @@ var DescribeCmd = base.DescribeCmd[*hcloud.Server]{
148149
fmt.Fprintf(out, "Location:\n")
149150
fmt.Fprint(out, util.PrefixLines(location.DescribeLocation(server.Location), " "))
150151

152+
if server.Datacenter != nil {
153+
fmt.Fprintln(out)
154+
fmt.Fprintf(out, "Datacenter:\n")
155+
fmt.Fprintf(out, "%s", util.PrefixLines(datacenter.DescribeDatacenter(s.Client(), server.Datacenter, true), " "))
156+
}
157+
151158
fmt.Fprintln(out)
152159
if server.BackupWindow != "" {
153160
fmt.Fprintf(out, "Backup Window:\t%s\n", server.BackupWindow)

internal/cmd/server/list.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"strings"
88
"time"
99

10-
humanize "github.com/dustin/go-humanize"
10+
"github.com/dustin/go-humanize"
1111
"github.com/spf13/cobra"
1212
"github.com/spf13/pflag"
1313

@@ -37,7 +37,7 @@ var serverStatusStrings = []string{
3737
var ListCmd = &base.ListCmd[*hcloud.Server, schema.Server]{
3838
ResourceNamePlural: "Servers",
3939
JSONKeyGetByName: "servers",
40-
DefaultColumns: []string{"id", "name", "status", "ipv4", "ipv6", "private_net", "datacenter", "age"},
40+
DefaultColumns: []string{"id", "name", "status", "ipv4", "ipv6", "private_net", "location", "age"},
4141
SortOption: config.OptionSortServer,
4242

4343
AdditionalFlags: func(cmd *cobra.Command) {
@@ -89,7 +89,11 @@ var ListCmd = &base.ListCmd[*hcloud.Server, schema.Server]{
8989
return humanize.IBytes(server.OutgoingTraffic)
9090
}).
9191
AddFieldFn("datacenter", func(server *hcloud.Server) string {
92-
return server.Datacenter.Name
92+
if server.Datacenter != nil {
93+
return server.Datacenter.Name
94+
} else {
95+
return "-"
96+
}
9397
}).
9498
AddFieldFn("location", func(server *hcloud.Server) string {
9599
return server.Location.Name

internal/cmd/server/list_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ func TestList(t *testing.T) {
3434
).
3535
Return([]*hcloud.Server{
3636
{
37-
ID: 123,
38-
Name: "test",
39-
Status: hcloud.ServerStatusRunning,
40-
Datacenter: &hcloud.Datacenter{Name: "fsn1-dc14"},
37+
ID: 123,
38+
Name: "test",
39+
Status: hcloud.ServerStatusRunning,
40+
Location: &hcloud.Location{Name: "fsn1"},
4141
PublicNet: hcloud.ServerPublicNet{
4242
IPv4: hcloud.ServerPublicNetIPv4{
4343
IP: net.ParseIP("192.168.2.1"),
@@ -49,8 +49,8 @@ func TestList(t *testing.T) {
4949

5050
out, errOut, err := fx.Run(cmd, []string{"--status", "running"})
5151

52-
expOut := `ID NAME STATUS IPV4 IPV6 PRIVATE NET DATACENTER AGE
53-
123 test running 192.168.2.1 - - fsn1-dc14 20s
52+
expOut := `ID NAME STATUS IPV4 IPV6 PRIVATE NET LOCATION AGE
53+
123 test running 192.168.2.1 - - fsn1 20s
5454
`
5555

5656
require.NoError(t, err)

0 commit comments

Comments
 (0)