From f20c4dfd63126df9ae760b2480af848d40f670f8 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sun, 21 Jan 2024 17:43:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BF=AE=E6=94=B9=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E5=81=9C=E7=94=A8/=E5=90=AF=E7=94=A8=E7=8A=B6?= =?UTF-8?q?=E6=80=81API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_dao.go | 24 +++++++++++++++++++++++- internal/rpc/services/service_node.go | 16 ++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 3dba04fd..8ea41727 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -882,9 +882,28 @@ func (this *NodeDAO) FindNodeStatus(tx *dbs.Tx, nodeId int64) (*nodeconfigs.Node return status, nil } +// UpdateNodeIsOn 修改节点启用状态 +func (this *NodeDAO) UpdateNodeIsOn(tx *dbs.Tx, nodeId int64, isOn bool) error { + if nodeId <= 0 { + return errors.New("invalid nodeId") + } + err := this.Query(tx). + Pk(nodeId). + Set("isOn", isOn). + UpdateQuickly() + if err != nil { + return err + } + + return this.NotifyDNSUpdate(tx, nodeId) +} + // UpdateNodeIsActive 更改节点在线状态 func (this *NodeDAO) UpdateNodeIsActive(tx *dbs.Tx, nodeId int64, isActive bool) error { - b := "true" + if nodeId <= 0 { + return errors.New("invalid nodeId") + } + var b = "true" if !isActive { b = "false" } @@ -898,6 +917,9 @@ func (this *NodeDAO) UpdateNodeIsActive(tx *dbs.Tx, nodeId int64, isActive bool) // UpdateNodeIsInstalled 设置节点安装状态 func (this *NodeDAO) UpdateNodeIsInstalled(tx *dbs.Tx, nodeId int64, isInstalled bool) error { + if nodeId <= 0 { + return errors.New("invalid nodeId") + } _, err := this.Query(tx). Pk(nodeId). Set("isInstalled", isInstalled). diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index 20b5d9c9..f4e831ec 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -2293,3 +2293,19 @@ func (this *NodeService) FindNodeWebPPolicies(ctx context.Context, req *pb.FindN WebPPolicies: pbPolicies, }, nil } + +// UpdateNodeIsOn 修改节点的启用状态 +func (this *NodeService) UpdateNodeIsOn(ctx context.Context, req *pb.UpdateNodeIsOnRequest) (*pb.RPCSuccess, error) { + _, err := this.ValidateAdmin(ctx) + if err != nil { + return nil, err + } + + var tx = this.NullTx() + err = models.SharedNodeDAO.UpdateNodeIsOn(tx, req.NodeId, req.IsOn) + if err != nil { + return nil, err + } + + return this.Success() +}