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