From b64089335e9cad9d9a02d8e14cf730900b0a7298 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Fri, 9 Oct 2020 11:07:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E8=8A=82=E7=82=B9=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E6=97=A5=E5=BF=97=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/rpc/rpc_client.go | 4 ++ .../actions/default/clusters/cluster/init.go | 1 + .../default/clusters/cluster/node/logs.go | 57 +++++++++++++++++++ .../clusters/cluster/node/@node_menu.html | 1 + .../@default/clusters/cluster/node/logs.html | 26 +++++++++ web/views/@default/clusters/index.css | 4 ++ web/views/@default/clusters/index.css.map | 1 + web/views/@default/clusters/index.html | 2 +- web/views/@default/clusters/index.less | 3 + 9 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 internal/web/actions/default/clusters/cluster/node/logs.go create mode 100644 web/views/@default/clusters/cluster/node/logs.html create mode 100644 web/views/@default/clusters/index.css create mode 100644 web/views/@default/clusters/index.css.map create mode 100644 web/views/@default/clusters/index.less diff --git a/internal/rpc/rpc_client.go b/internal/rpc/rpc_client.go index 461a8e77..368a69aa 100644 --- a/internal/rpc/rpc_client.go +++ b/internal/rpc/rpc_client.go @@ -67,6 +67,10 @@ func (this *RPCClient) NodeRPC() pb.NodeServiceClient { return pb.NewNodeServiceClient(this.pickConn()) } +func (this *RPCClient) NodeLogRPC() pb.NodeLogServiceClient { + return pb.NewNodeLogServiceClient(this.pickConn()) +} + func (this *RPCClient) NodeGrantRPC() pb.NodeGrantServiceClient { return pb.NewNodeGrantServiceClient(this.pickConn()) } diff --git a/internal/web/actions/default/clusters/cluster/init.go b/internal/web/actions/default/clusters/cluster/init.go index 7e125dba..114ec276 100644 --- a/internal/web/actions/default/clusters/cluster/init.go +++ b/internal/web/actions/default/clusters/cluster/init.go @@ -22,6 +22,7 @@ func init() { GetPost("/node/install", new(node.InstallAction)). Post("/node/updateInstallStatus", new(node.UpdateInstallStatusAction)). Post("/node/status", new(node.StatusAction)). + Get("/node/logs", new(node.LogsAction)). EndAll() }) } diff --git a/internal/web/actions/default/clusters/cluster/node/logs.go b/internal/web/actions/default/clusters/cluster/node/logs.go new file mode 100644 index 00000000..35b6b552 --- /dev/null +++ b/internal/web/actions/default/clusters/cluster/node/logs.go @@ -0,0 +1,57 @@ +package node + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/maps" + timeutil "github.com/iwind/TeaGo/utils/time" +) + +type LogsAction struct { + actionutils.ParentAction +} + +func (this *LogsAction) Init() { + this.Nav("", "node", "log") + this.SecondMenu("nodes") +} + +func (this *LogsAction) RunGet(params struct { + NodeId int64 +}) { + this.Data["nodeId"] = params.NodeId + + countResp, err := this.RPC().NodeLogRPC().CountNodeLogs(this.AdminContext(), &pb.CountNodeLogsRequest{ + Role: "node", + NodeId: params.NodeId, + }) + if err != nil { + this.ErrorPage(err) + return + } + count := countResp.Count + page := this.NewPage(count) + + logsResp, err := this.RPC().NodeLogRPC().ListNodeLogs(this.AdminContext(), &pb.ListNodeLogsRequest{ + NodeId: params.NodeId, + Role: "node", + Offset: page.Offset, + Size: page.Size, + }) + + logs := []maps.Map{} + for _, log := range logsResp.NodeLogs { + logs = append(logs, maps.Map{ + "tag": log.Tag, + "description": log.Description, + "createdTime": timeutil.FormatTime("Y-m-d H:i:s", log.CreatedAt), + "level": log.Level, + "isToday": timeutil.FormatTime("Y-m-d", log.CreatedAt) == timeutil.Format("Y-m-d"), + }) + } + this.Data["logs"] = logs + + this.Data["page"] = page.AsHTML() + + this.Show() +} diff --git a/web/views/@default/clusters/cluster/node/@node_menu.html b/web/views/@default/clusters/cluster/node/@node_menu.html index 429c3c07..08884584 100644 --- a/web/views/@default/clusters/cluster/node/@node_menu.html +++ b/web/views/@default/clusters/cluster/node/@node_menu.html @@ -1,5 +1,6 @@ 节点详情 + 节点日志 修改节点 安装节点 \ No newline at end of file diff --git a/web/views/@default/clusters/cluster/node/logs.html b/web/views/@default/clusters/cluster/node/logs.html new file mode 100644 index 00000000..bb9c51e6 --- /dev/null +++ b/web/views/@default/clusters/cluster/node/logs.html @@ -0,0 +1,26 @@ +{$layout} +{$template "/left_menu"} + +
+ {$template "node_menu"} + +

暂时还没有日志。

+ + + + + + + + + + +
+ + [{{log.createdTime}}] + [{{log.createdTime}}] + [{{log.tag}}]{{log.description}} +
+ +
+
\ No newline at end of file diff --git a/web/views/@default/clusters/index.css b/web/views/@default/clusters/index.css new file mode 100644 index 00000000..533389a8 --- /dev/null +++ b/web/views/@default/clusters/index.css @@ -0,0 +1,4 @@ +table a span { + text-decoration: underline; +} +/*# sourceMappingURL=index.css.map */ \ No newline at end of file diff --git a/web/views/@default/clusters/index.css.map b/web/views/@default/clusters/index.css.map new file mode 100644 index 00000000..c894cabf --- /dev/null +++ b/web/views/@default/clusters/index.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.less"],"names":[],"mappings":"AAAA,KAAM,EAAE;EACP,0BAAA","file":"index.css"} \ No newline at end of file diff --git a/web/views/@default/clusters/index.html b/web/views/@default/clusters/index.html index 5c70381b..12fd8f5c 100644 --- a/web/views/@default/clusters/index.html +++ b/web/views/@default/clusters/index.html @@ -16,7 +16,7 @@ {{cluster.name}} - {{cluster.countAllNodes}} + {{cluster.countAllNodes}} - diff --git a/web/views/@default/clusters/index.less b/web/views/@default/clusters/index.less new file mode 100644 index 00000000..20e6e3ce --- /dev/null +++ b/web/views/@default/clusters/index.less @@ -0,0 +1,3 @@ +table a span { + text-decoration: underline; +} \ No newline at end of file