aboutsummaryrefslogtreecommitdiff
path: root/weed-fs/src/pkg
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2012-10-10 01:10:05 -0700
committerChris Lu <chris.lu@gmail.com>2012-10-10 01:10:05 -0700
commit3aefea0fe2c508c6a9222148acf4ef754f3fc5b0 (patch)
tree90a8594762418ee267c0354c0f8863e5c3c6b7fe /weed-fs/src/pkg
parent1d0be87e0e5739090032ec8ad09ecc9429fc26b5 (diff)
downloadseaweedfs-3aefea0fe2c508c6a9222148acf4ef754f3fc5b0.tar.xz
seaweedfs-3aefea0fe2c508c6a9222148acf4ef754f3fc5b0.zip
show volume status
Diffstat (limited to 'weed-fs/src/pkg')
-rw-r--r--weed-fs/src/pkg/topology/topology.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/weed-fs/src/pkg/topology/topology.go b/weed-fs/src/pkg/topology/topology.go
index 28340233c..836a5cc69 100644
--- a/weed-fs/src/pkg/topology/topology.go
+++ b/weed-fs/src/pkg/topology/topology.go
@@ -162,3 +162,30 @@ func (t *Topology) ToMap() interface{} {
m["layouts"] = layouts
return m
}
+
+func (t *Topology) ToVolumeMap() interface{} {
+ m := make(map[string]interface{})
+ m["Max"] = t.GetMaxVolumeCount()
+ m["Free"] = t.FreeSpace()
+ dcs := make(map[NodeId]interface{})
+ for _, c := range t.Children() {
+ dc := c.(*DataCenter)
+ racks := make(map[NodeId]interface{})
+ for _, r := range dc.Children() {
+ rack := r.(*Rack)
+ dataNodes := make(map[NodeId]interface{})
+ for _, d := range rack.Children() {
+ dn := d.(*DataNode)
+ var volumes []interface{}
+ for _, v := range dn.volumes {
+ volumes = append(volumes, v)
+ }
+ dataNodes[d.Id()] = volumes
+ }
+ racks[r.Id()] = dataNodes
+ }
+ dcs[dc.Id()] = racks
+ }
+ m["DataCenters"] = dcs
+ return m
+}