Browse Source
Merge pull request #3348 from ningfdx/remote
Merge pull request #3348 from ningfdx/remote
optimiz: master ui will render data in orderpull/3354/head
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 92 additions and 45 deletions
-
2weed/server/master_server_handlers_admin.go
-
4weed/server/master_server_handlers_ui.go
-
23weed/topology/data_center.go
-
26weed/topology/data_node.go
-
24weed/topology/rack.go
-
40weed/topology/topology_info.go
-
18weed/topology/volume_layout.go
@ -1,30 +1,44 @@ |
|||||
package topology |
package topology |
||||
|
|
||||
import "github.com/chrislusf/seaweedfs/weed/pb/master_pb" |
import ( |
||||
|
"github.com/chrislusf/seaweedfs/weed/pb/master_pb" |
||||
|
"golang.org/x/exp/slices" |
||||
|
) |
||||
|
|
||||
func (t *Topology) ToMap() interface{} { |
type TopologyInfo struct { |
||||
m := make(map[string]interface{}) |
Max int64 `json:"Max"` |
||||
m["Max"] = t.diskUsages.GetMaxVolumeCount() |
Free int64 `json:"Free"` |
||||
m["Free"] = t.diskUsages.FreeSpace() |
DataCenters []DataCenterInfo `json:"DataCenters"` |
||||
var dcs []interface{} |
Layouts []VolumeLayoutInfo `json:"Layouts"` |
||||
|
} |
||||
|
|
||||
|
func (t *Topology) ToInfo() (info TopologyInfo) { |
||||
|
info.Max = t.diskUsages.GetMaxVolumeCount() |
||||
|
info.Free = t.diskUsages.FreeSpace() |
||||
|
var dcs []DataCenterInfo |
||||
for _, c := range t.Children() { |
for _, c := range t.Children() { |
||||
dc := c.(*DataCenter) |
dc := c.(*DataCenter) |
||||
dcs = append(dcs, dc.ToMap()) |
dcs = append(dcs, dc.ToInfo()) |
||||
} |
} |
||||
m["DataCenters"] = dcs |
slices.SortFunc(dcs, func(a, b DataCenterInfo) bool { |
||||
var layouts []interface{} |
return a.Id < b.Id |
||||
|
}) |
||||
|
|
||||
|
info.DataCenters = dcs |
||||
|
var layouts []VolumeLayoutInfo |
||||
for _, col := range t.collectionMap.Items() { |
for _, col := range t.collectionMap.Items() { |
||||
c := col.(*Collection) |
c := col.(*Collection) |
||||
for _, layout := range c.storageType2VolumeLayout.Items() { |
for _, layout := range c.storageType2VolumeLayout.Items() { |
||||
if layout != nil { |
if layout != nil { |
||||
tmp := layout.(*VolumeLayout).ToMap() |
tmp := layout.(*VolumeLayout).ToInfo() |
||||
tmp["collection"] = c.Name |
tmp.Collection = c.Name |
||||
layouts = append(layouts, tmp) |
layouts = append(layouts, tmp) |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
m["Layouts"] = layouts |
info.Layouts = layouts |
||||
return m |
return |
||||
} |
} |
||||
|
|
||||
func (t *Topology) ToVolumeMap() interface{} { |
func (t *Topology) ToVolumeMap() interface{} { |
Reference in new issue
xxxxxxxxxx