volume server UI: fix ec volume ui (#7104)

* fix ec volume ui

* Update weed/storage/erasure_coding/ec_volume.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
Chris Lu 2025-08-07 00:07:03 -07:00 committed by GitHub
parent dd4880d55a
commit b4d9618efc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 21 additions and 11 deletions

View File

@ -492,7 +492,7 @@ func (vs *VolumeServer) VolumeEcShardsInfo(ctx context.Context, req *volume_serv
for _, shardDetail := range shardDetails {
ecShardInfo := &volume_server_pb.EcShardInfo{
ShardId: uint32(shardDetail.ShardId),
Size: shardDetail.Size,
Size: int64(shardDetail.Size),
Collection: v.Collection,
}
ecShardInfos = append(ecShardInfos, ecShardInfo)

View File

@ -1,12 +1,14 @@
package weed_server
import (
"github.com/seaweedfs/seaweedfs/weed/pb"
"github.com/seaweedfs/seaweedfs/weed/util/version"
"net/http"
"path/filepath"
"time"
"github.com/seaweedfs/seaweedfs/weed/glog"
"github.com/seaweedfs/seaweedfs/weed/pb"
"github.com/seaweedfs/seaweedfs/weed/util/version"
"github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
ui "github.com/seaweedfs/seaweedfs/weed/server/volume_server_ui"
"github.com/seaweedfs/seaweedfs/weed/stats"
@ -53,5 +55,8 @@ func (vs *VolumeServer) uiStatusHandler(w http.ResponseWriter, r *http.Request)
infos,
serverStats,
}
ui.StatusTpl.Execute(w, args)
if err := ui.StatusTpl.Execute(w, args); err != nil {
glog.Errorf("template execution error: %v", err)
http.Error(w, "Internal server error", http.StatusInternalServerError)
}
}

View File

@ -178,9 +178,11 @@ func (ev *EcVolume) ShardSize() uint64 {
return 0
}
func (ev *EcVolume) Size() (size int64) {
func (ev *EcVolume) Size() (size uint64) {
for _, shard := range ev.Shards {
size += shard.Size()
if shardSize := shard.Size(); shardSize > 0 {
size += uint64(shardSize)
}
}
return
}
@ -198,15 +200,18 @@ func (ev *EcVolume) ShardIdList() (shardIds []ShardId) {
type ShardInfo struct {
ShardId ShardId
Size int64
Size uint64
}
func (ev *EcVolume) ShardDetails() (shards []ShardInfo) {
for _, s := range ev.Shards {
shards = append(shards, ShardInfo{
ShardId: s.ShardId,
Size: s.Size(),
})
shardSize := s.Size()
if shardSize >= 0 {
shards = append(shards, ShardInfo{
ShardId: s.ShardId,
Size: uint64(shardSize),
})
}
}
return
}