diff options
| author | Chris Lu <chris.lu@gmail.com> | 2012-10-10 01:10:05 -0700 |
|---|---|---|
| committer | Chris Lu <chris.lu@gmail.com> | 2012-10-10 01:10:05 -0700 |
| commit | 3aefea0fe2c508c6a9222148acf4ef754f3fc5b0 (patch) | |
| tree | 90a8594762418ee267c0354c0f8863e5c3c6b7fe /weed-fs/src/pkg | |
| parent | 1d0be87e0e5739090032ec8ad09ecc9429fc26b5 (diff) | |
| download | seaweedfs-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.go | 27 |
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 +} |
