Browse Source

try showing the first 100 volume ids and an extra ...

pull/1337/head
bingoohuang 5 years ago
parent
commit
1f8782a1ed
  1. 9
      weed/topology/data_node.go
  2. 9
      weed/util/inits.go
  3. 5
      weed/util/inits_test.go

9
weed/topology/data_node.go

@ -195,16 +195,11 @@ func (dn *DataNode) ToDataNodeInfo() *master_pb.DataNodeInfo {
// GetVolumeIds returns the human readable volume ids limited to count of max 100. // GetVolumeIds returns the human readable volume ids limited to count of max 100.
func (dn *DataNode) GetVolumeIds() string { func (dn *DataNode) GetVolumeIds() string {
volumesLen := len(dn.volumes)
if volumesLen > 100 {
return "..."
}
ids := make([]int, 0, volumesLen)
ids := make([]int, 0, len(dn.volumes))
for k := range dn.volumes { for k := range dn.volumes {
ids = append(ids, int(k)) ids = append(ids, int(k))
} }
return util.HumanReadableInts(ids...)
return util.HumanReadableIntsMax(100, ids...)
} }

9
weed/util/inits.go

@ -5,6 +5,15 @@ import (
"sort" "sort"
) )
// HumanReadableIntsMax joins a serials of inits into a smart one like 1-3 5 ... for human readable.
func HumanReadableIntsMax(max int, ids ...int) string {
if len(ids) <= max {
return HumanReadableInts(ids...)
}
return HumanReadableInts(ids[:max]...) + " ..."
}
// HumanReadableInts joins a serials of inits into a smart one like 1-3 5 7-10 for human readable. // HumanReadableInts joins a serials of inits into a smart one like 1-3 5 7-10 for human readable.
func HumanReadableInts(ids ...int) string { func HumanReadableInts(ids ...int) string {
sort.Ints(ids) sort.Ints(ids)

5
weed/util/inits_test.go

@ -5,6 +5,11 @@ import (
"testing" "testing"
) )
func TestHumanReadableIntsMax(t *testing.T) {
assert.Equal(t, "1-2 ...", HumanReadableIntsMax(2, 1, 2, 3))
assert.Equal(t, "1 3 ...", HumanReadableIntsMax(2, 1, 3, 5))
}
func TestHumanReadableInts(t *testing.T) { func TestHumanReadableInts(t *testing.T) {
assert.Equal(t, "1-3", HumanReadableInts(1, 2, 3)) assert.Equal(t, "1-3", HumanReadableInts(1, 2, 3))
assert.Equal(t, "1 3", HumanReadableInts(1, 3)) assert.Equal(t, "1 3", HumanReadableInts(1, 3))

Loading…
Cancel
Save