Skip to content

Commit e39840b

Browse files
authored
[SPPSP-2925] add timeout to ListPodNodes (#78)
1 parent 338e42f commit e39840b

File tree

6 files changed

+72
-29
lines changed

6 files changed

+72
-29
lines changed

cmd/node/get.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ func (o *getNodeOptions) run(ctx context.Context) error {
2424
return err
2525
}
2626

27-
describe.Nodes(node)
27+
describe.NodesWithInfo(node)
2828
return nil
2929
}
3030

cmd/pod/cmd.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,15 @@ func Command() *cli.Command {
112112
Name: "label",
113113
Usage: "labels to filter, e.g, a=1, b=2",
114114
},
115+
&cli.IntFlag{
116+
Name: "timeout",
117+
Usage: "timeout in second, default value is 10",
118+
Value: 10,
119+
},
120+
&cli.BoolFlag{
121+
Name: "show-info",
122+
Usage: "show node info",
123+
},
115124
},
116125
},
117126
{

cmd/pod/nodes.go

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,12 @@ const (
1919
)
2020

2121
type listPodNodesOptions struct {
22-
client corepb.CoreRPCClient
23-
name string
24-
filter string
25-
labels map[string]string
22+
client corepb.CoreRPCClient
23+
name string
24+
filter string
25+
labels map[string]string
26+
timeoutInSecond int32
27+
showInfo bool
2628
}
2729

2830
func (o *listPodNodesOptions) run(ctx context.Context) error {
@@ -34,18 +36,20 @@ func (o *listPodNodesOptions) run(ctx context.Context) error {
3436

3537
func (o *listPodNodesOptions) listDown(ctx context.Context) error {
3638
resp1, err := o.client.ListPodNodes(ctx, &corepb.ListNodesOptions{
37-
Podname: o.name,
38-
All: true,
39-
Labels: o.labels,
39+
Podname: o.name,
40+
All: true,
41+
Labels: o.labels,
42+
TimeoutInSecond: o.timeoutInSecond,
4043
})
4144
if err != nil {
4245
return err
4346
}
4447

4548
resp2, err := o.client.ListPodNodes(ctx, &corepb.ListNodesOptions{
46-
Podname: o.name,
47-
All: false,
48-
Labels: o.labels,
49+
Podname: o.name,
50+
All: false,
51+
Labels: o.labels,
52+
TimeoutInSecond: o.timeoutInSecond,
4953
})
5054
if err != nil {
5155
return err
@@ -64,26 +68,35 @@ func (o *listPodNodesOptions) listDown(ctx context.Context) error {
6468
nodes = append(nodes, node)
6569
}
6670

67-
describe.Nodes(nodes...)
71+
o.describeNodes(nodes)
6872
return nil
6973
}
7074

7175
func (o *listPodNodesOptions) listUpOrAll(ctx context.Context) error {
7276
// filter == all, list all nodes
7377
// filter == up, list available nodes only
7478
resp, err := o.client.ListPodNodes(ctx, &corepb.ListNodesOptions{
75-
Podname: o.name,
76-
All: o.filter == all,
77-
Labels: o.labels,
79+
Podname: o.name,
80+
All: o.filter == all,
81+
Labels: o.labels,
82+
TimeoutInSecond: o.timeoutInSecond,
7883
})
7984
if err != nil {
8085
return err
8186
}
8287

83-
describe.Nodes(resp.GetNodes()...)
88+
o.describeNodes(resp.GetNodes())
8489
return nil
8590
}
8691

92+
func (o *listPodNodesOptions) describeNodes(nodes []*corepb.Node) {
93+
if o.showInfo {
94+
describe.NodesWithInfo(nodes...)
95+
} else {
96+
describe.Nodes(nodes...)
97+
}
98+
}
99+
87100
func cmdPodListNodes(c *cli.Context) error {
88101
client, err := utils.NewCoreRPCClient(c)
89102
if err != nil {
@@ -96,10 +109,12 @@ func cmdPodListNodes(c *cli.Context) error {
96109
}
97110

98111
o := &listPodNodesOptions{
99-
client: client,
100-
name: c.Args().First(),
101-
filter: filter,
102-
labels: utils.SplitEquality(c.StringSlice("label")),
112+
client: client,
113+
name: c.Args().First(),
114+
filter: filter,
115+
labels: utils.SplitEquality(c.StringSlice("label")),
116+
timeoutInSecond: int32(c.Int("timeout")),
117+
showInfo: c.Bool("show-info"),
103118
}
104119
return o.run(c.Context)
105120
}

describe/node.go

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,30 @@ func Nodes(nodes ...*corepb.Node) {
2121
case isYAML():
2222
describeAsYAML(nodes)
2323
default:
24-
describeNodes(nodes)
24+
describeNodes(nodes, false)
2525
}
2626
}
2727

28-
func describeNodes(nodes []*corepb.Node) {
28+
// NodesWithInfo describes a list of Node with their info
29+
func NodesWithInfo(nodes ...*corepb.Node) {
30+
switch {
31+
case isJSON():
32+
describeAsJSON(nodes)
33+
case isYAML():
34+
describeAsYAML(nodes)
35+
default:
36+
describeNodes(nodes, true)
37+
}
38+
}
39+
40+
func describeNodes(nodes []*corepb.Node, showInfo bool) {
2941
t := table.NewWriter()
3042
t.SetOutputMirror(os.Stdout)
31-
t.AppendHeader(table.Row{"Name", "Endpoint", "Status", "CPU", "Memory", "Volume", "Storage"})
43+
if showInfo {
44+
t.AppendHeader(table.Row{"Name", "Endpoint", "Status", "CPU", "Memory", "Volume", "Storage", "Info"})
45+
} else {
46+
t.AppendHeader(table.Row{"Name", "Endpoint", "Status", "CPU", "Memory", "Volume", "Storage"})
47+
}
3248

3349
for _, node := range nodes {
3450
totalVolumeCap := int64(0)
@@ -51,6 +67,9 @@ func describeNodes(nodes []*corepb.Node) {
5167
{fmt.Sprintf("%d / %d bytes", node.VolumeUsed, totalVolumeCap)},
5268
{fmt.Sprintf("%d / %d bytes", node.StorageUsed, node.InitStorage)},
5369
}
70+
if showInfo {
71+
rows = append(rows, []string{node.Info})
72+
}
5473
t.AppendRows(toTableRows(rows))
5574
t.AppendSeparator()
5675
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ require (
1212
github.com/juju/testing v0.0.0-20201216035041-2be42bba85f3 // indirect
1313
github.com/kless/term v0.0.0-20161130133337-e551c64f56c0 // indirect
1414
github.com/pkg/term v1.1.0
15-
github.com/projecteru2/core v0.0.0-20210923162924-912e9f1d49aa
15+
github.com/projecteru2/core v0.0.0-20211123023700-4c093d1c5b6a
1616
github.com/sethgrid/curse v0.0.0-20181231162520-d4ee583ebf0f
1717
github.com/sethvargo/go-signalcontext v0.1.0
1818
github.com/sirupsen/logrus v1.7.0

go.sum

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -419,8 +419,8 @@ github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1
419419
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
420420
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
421421
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
422-
github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI=
423-
github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
422+
github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM=
423+
github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0=
424424
github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U=
425425
github.com/opencontainers/runc v1.0.0-rc95 h1:RMuWVfY3E1ILlVsC3RhIq38n4sJtlOFwU9gfFZSqrd0=
426426
github.com/opencontainers/runc v1.0.0-rc95/go.mod h1:z+bZxa/+Tz/FmYVWkhUajJdzFeOqjc5vrqskhVyHGUM=
@@ -444,9 +444,9 @@ github.com/pkg/term v1.1.0/go.mod h1:E25nymQcrSllhX42Ok8MRm1+hyBdHY0dCeiKZ9jpNGw
444444
github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
445445
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
446446
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
447-
github.com/projecteru2/core v0.0.0-20210923162924-912e9f1d49aa h1:/wxjr8H+dpYBNwqPPUiwbIWZpMYYPCtQ6iU5WvgTEXk=
448-
github.com/projecteru2/core v0.0.0-20210923162924-912e9f1d49aa/go.mod h1:/7fZaf8yXd353d1tDX9KwvXMkptauKGe4zhIpqNetj8=
449-
github.com/projecteru2/libyavirt v0.0.0-20210920022816-abc7aa0cf6ae/go.mod h1:FOc+hWBMLsMrmx5p3/moizKeSomedZPNwB6LhS+kEnE=
447+
github.com/projecteru2/core v0.0.0-20211123023700-4c093d1c5b6a h1:04lfeJG46ldlC3gV1FEOyg1TvmKnIQ6c4tlCWX+lDYw=
448+
github.com/projecteru2/core v0.0.0-20211123023700-4c093d1c5b6a/go.mod h1:pvAHWsHBU+qMK3KX2kL8J0y8lx729bZOltIAGRL/UHU=
449+
github.com/projecteru2/libyavirt v0.0.0-20211112023512-fbd788e688d5/go.mod h1:FOc+hWBMLsMrmx5p3/moizKeSomedZPNwB6LhS+kEnE=
450450
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
451451
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
452452
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=

0 commit comments

Comments
 (0)