From 9f130cb50f0f74122c7bd14215cb59852bd8199a Mon Sep 17 00:00:00 2001 From: Leonmmcoset Date: Fri, 24 Oct 2025 20:11:17 +0800 Subject: [PATCH] backend update --- assets | 2 +- service/admin/response.go | 16 +++++++++++++--- service/admin/site.go | 27 +++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/assets b/assets index 64e7385..f1c5f86 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 64e7385a24f054356e512553e7c6ad9bc5935128 +Subproject commit f1c5f86553d056de7292892aa6de4a610468580d diff --git a/service/admin/response.go b/service/admin/response.go index 49afbe0..b58e005 100644 --- a/service/admin/response.go +++ b/service/admin/response.go @@ -90,6 +90,15 @@ type GetStoragePolicyResponse struct { EntitiesSize int `json:"entities_size,omitempty"` } +// StoragePolicySpace 存储策略空间使用情况 +type StoragePolicySpace struct { + ID int64 `json:"id"` + Name string `json:"name"` + Type string `json:"type"` + Used int64 `json:"used"` + Total int64 `json:"total"` +} + type ListNodeResponse struct { Pagination *inventory.PaginationResults `json:"pagination"` Nodes []*ent.Node `json:"nodes"` @@ -115,9 +124,10 @@ type ListGroupResponse struct { } type HomepageSummary struct { - MetricsSummary *MetricsSummary `json:"metrics_summary"` - SiteURls []string `json:"site_urls"` - Version *Version `json:"version"` + MetricsSummary *MetricsSummary `json:"metrics_summary"` + SiteURls []string `json:"site_urls"` + Version *Version `json:"version"` + StoragePolicies []*StoragePolicySpace `json:"storage_policies"` } type MetricsSummary struct { diff --git a/service/admin/site.go b/service/admin/site.go index 7b5a633..98eb235 100644 --- a/service/admin/site.go +++ b/service/admin/site.go @@ -161,6 +161,33 @@ func (s *SummaryService) Summary(c *gin.Context) (*HomepageSummary, error) { _ = kv.Set(MetricCacheKey, *summary, 86400) res.MetricsSummary = summary + // 获取存储策略空间使用数据 + policyClient := dep.StoragePolicyClient() + policyResult, err := policyClient.ListPolicies(c, &inventory.ListPolicyParameters{ + PaginationArgs: &inventory.PaginationArgs{PageSize: 1000, Page: 0}, // 获取所有策略 + }) + if err == nil { + // 收集存储策略空间使用情况 + res.StoragePolicies = make([]*StoragePolicySpace, 0, len(policyResult.Policies)) + entityClient := dep.FileClient() + + for _, policy := range policyResult.Policies { + // 获取该存储策略的已使用空间 + _, usedSpace, err := entityClient.CountEntityByStoragePolicyID(c, policy.ID) + if err != nil { + continue + } + + res.StoragePolicies = append(res.StoragePolicies, &StoragePolicySpace{ + ID: int64(policy.ID), + Name: policy.Name, + Type: policy.Type, + Used: int64(usedSpace), + Total: policy.MaxSize, // 使用策略的最大空间限制 + }) + } + } + return res, nil }