From b7a18580b8fc12448475ea2d782572e4ef5f8852 Mon Sep 17 00:00:00 2001 From: yanyiwu Date: Tue, 21 Apr 2015 01:16:23 +0800 Subject: [PATCH] Sort VolumeInfos by VolumeId in Store.Status(); Ordered VolumeInfos is more Human-readable, especially when there is a lot of volumes. --- go/storage/store.go | 5 ++++- go/storage/volume_info.go | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/go/storage/store.go b/go/storage/store.go index ee65ce9e3..8228c12a2 100644 --- a/go/storage/store.go +++ b/go/storage/store.go @@ -223,7 +223,9 @@ func (s *Store) Status() []*VolumeInfo { var stats []*VolumeInfo for _, location := range s.Locations { for k, v := range location.volumes { - s := &VolumeInfo{Id: VolumeId(k), Size: v.ContentSize(), + s := &VolumeInfo{ + Id: VolumeId(k), + Size: v.ContentSize(), Collection: v.Collection, ReplicaPlacement: v.ReplicaPlacement, Version: v.Version(), @@ -235,6 +237,7 @@ func (s *Store) Status() []*VolumeInfo { stats = append(stats, s) } } + sortVolumeInfos(stats) return stats } diff --git a/go/storage/volume_info.go b/go/storage/volume_info.go index ad58fee44..a2f139c89 100644 --- a/go/storage/volume_info.go +++ b/go/storage/volume_info.go @@ -3,6 +3,7 @@ package storage import ( "fmt" "github.com/chrislusf/seaweedfs/go/operation" + "sort" ) type VolumeInfo struct { @@ -42,3 +43,23 @@ func (vi VolumeInfo) String() string { return fmt.Sprintf("Id:%d, Size:%d, ReplicaPlacement:%s, Collection:%s, Version:%v, FileCount:%d, DeleteCount:%d, DeletedByteCount:%d, ReadOnly:%v", vi.Id, vi.Size, vi.ReplicaPlacement, vi.Collection, vi.Version, vi.FileCount, vi.DeleteCount, vi.DeletedByteCount, vi.ReadOnly) } + +/*VolumesInfo sorting*/ + +type volumeInfos []*VolumeInfo + +func (vis volumeInfos) Len() int { + return len(vis) +} + +func (vis volumeInfos) Less(i, j int) bool { + return vis[i].Id < vis[j].Id +} + +func (vis volumeInfos) Swap(i, j int) { + vis[i], vis[j] = vis[j], vis[i] +} + +func sortVolumeInfos(vis volumeInfos) { + sort.Sort(vis) +}