aboutsummaryrefslogtreecommitdiff
path: root/weed/admin/dash
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-07-04 13:52:28 -0700
committerchrislu <chris.lu@gmail.com>2025-07-04 13:52:28 -0700
commitd8da465cd327ca299847e38087a971ef4144b480 (patch)
treeb76b85c85c3d8a965542d70604d48fd9b50fab2e /weed/admin/dash
parente85fbd29a186e74ce5de03ba2c6e501ee866dff7 (diff)
downloadseaweedfs-d8da465cd327ca299847e38087a971ef4144b480.tar.xz
seaweedfs-d8da465cd327ca299847e38087a971ef4144b480.zip
fix link to volume server; display volume space usage
Diffstat (limited to 'weed/admin/dash')
-rw-r--r--weed/admin/dash/types.go11
-rw-r--r--weed/admin/dash/volume_management.go16
2 files changed, 22 insertions, 5 deletions
diff --git a/weed/admin/dash/types.go b/weed/admin/dash/types.go
index 4ca590450..8c0be1aeb 100644
--- a/weed/admin/dash/types.go
+++ b/weed/admin/dash/types.go
@@ -83,11 +83,12 @@ type VolumeWithTopology struct {
}
type ClusterVolumesData struct {
- Username string `json:"username"`
- Volumes []VolumeWithTopology `json:"volumes"`
- TotalVolumes int `json:"total_volumes"`
- TotalSize int64 `json:"total_size"`
- LastUpdated time.Time `json:"last_updated"`
+ Username string `json:"username"`
+ Volumes []VolumeWithTopology `json:"volumes"`
+ TotalVolumes int `json:"total_volumes"`
+ TotalSize int64 `json:"total_size"`
+ VolumeSizeLimit uint64 `json:"volume_size_limit"`
+ LastUpdated time.Time `json:"last_updated"`
// Pagination
CurrentPage int `json:"current_page"`
diff --git a/weed/admin/dash/volume_management.go b/weed/admin/dash/volume_management.go
index 608c39a91..61f2ee691 100644
--- a/weed/admin/dash/volume_management.go
+++ b/weed/admin/dash/volume_management.go
@@ -119,6 +119,21 @@ func (s *AdminServer) GetClusterVolumes(page int, pageSize int, sortBy string, s
// Sort volumes
s.sortVolumes(volumes, sortBy, sortOrder)
+ // Get volume size limit from master
+ var volumeSizeLimit uint64
+ err = s.WithMasterClient(func(client master_pb.SeaweedClient) error {
+ resp, err := client.GetMasterConfiguration(context.Background(), &master_pb.GetMasterConfigurationRequest{})
+ if err != nil {
+ return err
+ }
+ volumeSizeLimit = uint64(resp.VolumeSizeLimitMB) * 1024 * 1024 // Convert MB to bytes
+ return nil
+ })
+ if err != nil {
+ // If we can't get the limit, set a default
+ volumeSizeLimit = 30 * 1024 * 1024 * 1024 // 30GB default
+ }
+
// Calculate pagination
totalVolumes := len(volumes)
totalPages := (totalVolumes + pageSize - 1) / pageSize
@@ -195,6 +210,7 @@ func (s *AdminServer) GetClusterVolumes(page int, pageSize int, sortBy string, s
Volumes: volumes,
TotalVolumes: totalVolumes,
TotalSize: totalSize,
+ VolumeSizeLimit: volumeSizeLimit,
LastUpdated: time.Now(),
CurrentPage: page,
TotalPages: totalPages,