mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-03 04:10:27 +08:00
实现远程卸载节点功能
This commit is contained in:
@@ -48,6 +48,7 @@ func init() {
|
|||||||
Get("/logs", new(node.LogsAction)).
|
Get("/logs", new(node.LogsAction)).
|
||||||
Post("/start", new(node.StartAction)).
|
Post("/start", new(node.StartAction)).
|
||||||
Post("/stop", new(node.StopAction)).
|
Post("/stop", new(node.StopAction)).
|
||||||
|
Post("/uninstall", new(node.UninstallAction)).
|
||||||
Post("/up", new(node.UpAction)).
|
Post("/up", new(node.UpAction)).
|
||||||
Post("/updateIsOn", new(node.UpdateIsOnAction)).
|
Post("/updateIsOn", new(node.UpdateIsOnAction)).
|
||||||
Get("/detail", new(node.DetailAction)).
|
Get("/detail", new(node.DetailAction)).
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
// Copyright 2024 GoEdge CDN goedge.cdn@gmail.com. All rights reserved. Official site: https://goedge.cn .
|
||||||
|
|
||||||
|
package node
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/langs/codes"
|
||||||
|
"github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb"
|
||||||
|
)
|
||||||
|
|
||||||
|
type UninstallAction struct {
|
||||||
|
actionutils.ParentAction
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *UninstallAction) RunPost(params struct {
|
||||||
|
NodeId int64
|
||||||
|
}) {
|
||||||
|
resp, err := this.RPC().NodeRPC().UninstallNode(this.AdminContext(), &pb.UninstallNodeRequest{NodeId: params.NodeId})
|
||||||
|
if err != nil {
|
||||||
|
this.ErrorPage(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 创建日志
|
||||||
|
defer this.CreateLogInfo(codes.Node_LogUninstallNodeRemotely, params.NodeId)
|
||||||
|
|
||||||
|
if resp.IsOk {
|
||||||
|
this.Success()
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Fail("执行失败:" + resp.Error)
|
||||||
|
}
|
||||||
@@ -321,8 +321,12 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>已安装</td>
|
<td>已安装</td>
|
||||||
<td>
|
<td>
|
||||||
<span v-if="node.isInstalled" class="green">已安装</span>
|
<span v-if="node.isInstalled" class="green">已安装 <a href="" @click.prevent="showMoreOps"><span class="small">[操作]</span></a></span>
|
||||||
<a v-else :href="'/clusters/cluster/installNode?clusterId=' + clusterId + '&nodeId=' + nodeId" class="underline" title="点击进入安装界面"><span class="red">未安装</span></a>
|
<a v-else :href="'/clusters/cluster/installNode?clusterId=' + clusterId + '&nodeId=' + nodeId" class="underline" title="点击进入安装界面"><span class="red">未安装</span></a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr v-show="moreOpsVisible && node.isInstalled">
|
||||||
|
<td>操作</td>
|
||||||
|
<td><a href="" @click.prevent="uninstallNode">[卸载]</a> </td>
|
||||||
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
@@ -36,4 +36,24 @@ Tea.context(function () {
|
|||||||
this.round = function (f) {
|
this.round = function (f) {
|
||||||
return Math.round(f * 100) / 100
|
return Math.round(f * 100) / 100
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.moreOpsVisible = false
|
||||||
|
this.showMoreOps = function () {
|
||||||
|
this.moreOpsVisible = !this.moreOpsVisible
|
||||||
|
}
|
||||||
|
|
||||||
|
this.uninstallNode = function () {
|
||||||
|
let that = this
|
||||||
|
teaweb.confirm("html:确定要卸载当前节点吗?<br/>此操作将会删除节点上除缓存以外的相关文件。", function () {
|
||||||
|
that.$post("/clusters/cluster/node/uninstall")
|
||||||
|
.params({
|
||||||
|
nodeId: that.node.id
|
||||||
|
})
|
||||||
|
.success(function () {
|
||||||
|
teaweb.success("执行成功", function () {
|
||||||
|
teaweb.reload()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
Reference in New Issue
Block a user