From 09b1c65463c72f2258d8cf6629a4b25d1ac7e944 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Thu, 12 Aug 2021 11:47:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E8=BF=9C=E7=A8=8B=E5=81=9C?= =?UTF-8?q?=E6=AD=A2=E5=92=8C=E5=90=AF=E5=8A=A8DNS=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../services/nameservers/service_ns_node.go | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/internal/rpc/services/nameservers/service_ns_node.go b/internal/rpc/services/nameservers/service_ns_node.go index 145601d1..cdf4f5fd 100644 --- a/internal/rpc/services/nameservers/service_ns_node.go +++ b/internal/rpc/services/nameservers/service_ns_node.go @@ -275,6 +275,7 @@ func (this *NSNodeService) FindEnabledNSNode(ctx context.Context, req *pb.FindEn }, InstallStatus: installStatusResult, IsOn: node.IsOn == 1, + IsActive: node.IsActive == 1, NodeLogin: respLogin, }}, nil } @@ -517,3 +518,55 @@ func (this *NSNodeService) UpdateNSNodeLogin(ctx context.Context, req *pb.Update return this.Success() } + +// StartNSNode 启动节点 +func (this *NSNodeService) StartNSNode(ctx context.Context, req *pb.StartNSNodeRequest) (*pb.StartNSNodeResponse, error) { + // 校验节点 + _, err := this.ValidateAdmin(ctx, 0) + if err != nil { + return nil, err + } + + err = installers.SharedNSNodeQueue().StartNode(req.NsNodeId) + if err != nil { + return &pb.StartNSNodeResponse{ + IsOk: false, + Error: err.Error(), + }, nil + } + + // 修改状态 + var tx = this.NullTx() + err = models.SharedNSNodeDAO.UpdateNodeActive(tx, req.NsNodeId, true) + if err != nil { + return nil, err + } + + return &pb.StartNSNodeResponse{IsOk: true}, nil +} + +// StopNSNode 停止节点 +func (this *NSNodeService) StopNSNode(ctx context.Context, req *pb.StopNSNodeRequest) (*pb.StopNSNodeResponse, error) { + // 校验节点 + _, err := this.ValidateAdmin(ctx, 0) + if err != nil { + return nil, err + } + + err = installers.SharedNSNodeQueue().StopNode(req.NsNodeId) + if err != nil { + return &pb.StopNSNodeResponse{ + IsOk: false, + Error: err.Error(), + }, nil + } + + // 修改状态 + var tx = this.NullTx() + err = models.SharedNSNodeDAO.UpdateNodeActive(tx, req.NsNodeId, false) + if err != nil { + return nil, err + } + + return &pb.StopNSNodeResponse{IsOk: true}, nil +}