|
|
@ -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 |
|
|
|
} |