From 4d1e8eb55999002c2e88e9289c19e594c1f3a128 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 31 Jan 2021 16:02:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E6=9F=A5=E8=AF=A2=E6=9F=90?= =?UTF-8?q?=E9=9B=86=E7=BE=A4=E6=9C=AA=E5=AE=89=E8=A3=85=E7=9A=84=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=95=B0=E9=87=8F=E7=9A=84API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_dao.go | 9 +++++++++ internal/rpc/services/service_node.go | 17 +++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 3802a545..124db766 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -656,6 +656,15 @@ func (this *NodeDAO) FindAllEnabledNodesWithGrantId(tx *dbs.Tx, grantId int64) ( return } +// 计算未安装的节点数量 +func (this *NodeDAO) CountAllNotInstalledNodesWithClusterId(tx *dbs.Tx, clusterId int64) (int64, error) { + return this.Query(tx). + State(NodeStateEnabled). + Attr("clusterId", clusterId). + Attr("isInstalled", false). + Count() +} + // 查找所有未安装的节点 func (this *NodeDAO) FindAllNotInstalledNodesWithClusterId(tx *dbs.Tx, clusterId int64) (result []*Node, err error) { _, err = this.Query(tx). diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index 533ddac6..05c693fd 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -733,10 +733,23 @@ func (this *NodeService) FindAllEnabledNodesWithGrantId(ctx context.Context, req return &pb.FindAllEnabledNodesWithGrantIdResponse{Nodes: result}, nil } +// 计算没有安装的节点数量 +func (this *NodeService) CountAllNotInstalledNodesWithClusterId(ctx context.Context, req *pb.CountAllNotInstalledNodesWithClusterIdRequest) (*pb.RPCCountResponse, error) { + _, err := this.ValidateAdmin(ctx, 0) + if err != nil { + return nil, err + } + tx := this.NullTx() + count, err := models.SharedNodeDAO.CountAllNotInstalledNodesWithClusterId(tx, req.NodeClusterId) + if err != nil { + return nil, err + } + return this.SuccessCount(count) +} + // 列出所有未安装的节点 func (this *NodeService) FindAllNotInstalledNodesWithClusterId(ctx context.Context, req *pb.FindAllNotInstalledNodesWithClusterIdRequest) (*pb.FindAllNotInstalledNodesWithClusterIdResponse, error) { - // 校验请求 - _, _, err := rpcutils.ValidateRequest(ctx, rpcutils.UserTypeAdmin) + _, err := this.ValidateAdmin(ctx, 0) if err != nil { return nil, err }