diff --git a/internal/web/actions/default/ns/clusters/cluster/init.go b/internal/web/actions/default/ns/clusters/cluster/init.go index c8981763..223598c6 100644 --- a/internal/web/actions/default/ns/clusters/cluster/init.go +++ b/internal/web/actions/default/ns/clusters/cluster/init.go @@ -31,6 +31,8 @@ func init() { GetPost("/install", new(node.InstallAction)). Post("/status", new(node.StatusAction)). Post("/updateInstallStatus", new(node.UpdateInstallStatusAction)). + Post("/start", new(node.StartAction)). + Post("/stop", new(node.StopAction)). EndAll() }) } diff --git a/internal/web/actions/default/ns/clusters/cluster/node/index.go b/internal/web/actions/default/ns/clusters/cluster/node/index.go index ac6b93ef..fce62036 100644 --- a/internal/web/actions/default/ns/clusters/cluster/node/index.go +++ b/internal/web/actions/default/ns/clusters/cluster/node/index.go @@ -114,7 +114,7 @@ func (this *IndexAction) RunGet(params struct { "isOn": node.IsOn, "status": maps.Map{ - "isActive": status.IsActive, + "isActive": node.IsActive && status.IsActive, "updatedAt": status.UpdatedAt, "hostname": status.Hostname, "cpuUsage": status.CPUUsage, diff --git a/internal/web/actions/default/ns/clusters/cluster/node/start.go b/internal/web/actions/default/ns/clusters/cluster/node/start.go new file mode 100644 index 00000000..658232b6 --- /dev/null +++ b/internal/web/actions/default/ns/clusters/cluster/node/start.go @@ -0,0 +1,30 @@ +package node + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/oplogs" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type StartAction struct { + actionutils.ParentAction +} + +func (this *StartAction) RunPost(params struct { + NodeId int64 +}) { + resp, err := this.RPC().NSNodeRPC().StartNSNode(this.AdminContext(), &pb.StartNSNodeRequest{NsNodeId: params.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + + // 创建日志 + defer this.CreateLog(oplogs.LevelInfo, "远程启动节点 %d", params.NodeId) + + if resp.IsOk { + this.Success() + } + + this.Fail("启动失败:" + resp.Error) +} diff --git a/internal/web/actions/default/ns/clusters/cluster/node/stop.go b/internal/web/actions/default/ns/clusters/cluster/node/stop.go new file mode 100644 index 00000000..30bfcf6c --- /dev/null +++ b/internal/web/actions/default/ns/clusters/cluster/node/stop.go @@ -0,0 +1,30 @@ +package node + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/oplogs" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type StopAction struct { + actionutils.ParentAction +} + +func (this *StopAction) RunPost(params struct { + NodeId int64 +}) { + resp, err := this.RPC().NSNodeRPC().StopNSNode(this.AdminContext(), &pb.StopNSNodeRequest{NsNodeId: params.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + + // 创建日志 + defer this.CreateLog(oplogs.LevelInfo, "远程停止节点 %d", params.NodeId) + + if resp.IsOk { + this.Success() + } + + this.Fail("执行失败:" + resp.Error) +} diff --git a/web/views/@default/ns/clusters/cluster/node/index.html b/web/views/@default/ns/clusters/cluster/node/index.html index 7237951d..9f9118af 100644 --- a/web/views/@default/ns/clusters/cluster/node/index.html +++ b/web/views/@default/ns/clusters/cluster/node/index.html @@ -39,12 +39,12 @@