diff --git a/internal/rpc/rpc_client.go b/internal/rpc/rpc_client.go index c3672f6e..9b8a6e21 100644 --- a/internal/rpc/rpc_client.go +++ b/internal/rpc/rpc_client.go @@ -99,6 +99,10 @@ func (this *RPCClient) NodeIPAddressRPC() pb.NodeIPAddressServiceClient { return pb.NewNodeIPAddressServiceClient(this.pickConn()) } +func (this *RPCClient) NodeIPAddressLogRPC() pb.NodeIPAddressLogServiceClient { + return pb.NewNodeIPAddressLogServiceClient(this.pickConn()) +} + func (this *RPCClient) NodeValueRPC() pb.NodeValueServiceClient { return pb.NewNodeValueServiceClient(this.pickConn()) } diff --git a/internal/web/actions/default/clusters/cluster/createNode.go b/internal/web/actions/default/clusters/cluster/createNode.go index 21fa535f..012d163e 100644 --- a/internal/web/actions/default/clusters/cluster/createNode.go +++ b/internal/web/actions/default/clusters/cluster/createNode.go @@ -171,8 +171,8 @@ func (this *CreateNodeAction) RunPost(params struct { addressId := address.GetInt64("id") if addressId > 0 { _, err = this.RPC().NodeIPAddressRPC().UpdateNodeIPAddressNodeId(this.AdminContext(), &pb.UpdateNodeIPAddressNodeIdRequest{ - AddressId: addressId, - NodeId: nodeId, + NodeIPAddressId: addressId, + NodeId: nodeId, }) } else { var thresholdsJSON = []byte{} diff --git a/internal/web/actions/default/clusters/ip-addrs/addr/delete.go b/internal/web/actions/default/clusters/ip-addrs/addr/delete.go new file mode 100644 index 00000000..bec1c3ce --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/addr/delete.go @@ -0,0 +1,26 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package addr + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" +) + +type DeleteAction struct { + actionutils.ParentAction +} + +func (this *DeleteAction) RunPost(params struct { + AddrId int64 +}) { + defer this.CreateLogInfo("删除IP地址 %d", params.AddrId) + + _, err := this.RPC().NodeIPAddressRPC().DisableNodeIPAddress(this.AdminContext(), &pb.DisableNodeIPAddressRequest{NodeIPAddressId: params.AddrId}) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/internal/web/actions/default/clusters/ip-addrs/addr/index.go b/internal/web/actions/default/clusters/ip-addrs/addr/index.go new file mode 100644 index 00000000..bbb6dd52 --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/addr/index.go @@ -0,0 +1,66 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package addr + +import ( + "encoding/json" + "errors" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/ip-addrs/ipaddrutils" + "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/maps" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "addr") +} + +func (this *IndexAction) RunGet(params struct { + AddrId int64 +}) { + addr, err := ipaddrutils.InitIPAddr(this.Parent(), params.AddrId) + if err != nil { + this.ErrorPage(err) + return + } + + var thresholds = []*nodeconfigs.NodeValueThresholdConfig{} + if len(addr.ThresholdsJSON) > 0 { + err = json.Unmarshal(addr.ThresholdsJSON, &thresholds) + if err != nil { + this.ErrorPage(err) + return + } + } + + nodeResp, err := this.RPC().NodeRPC().FindEnabledBasicNode(this.AdminContext(), &pb.FindEnabledBasicNodeRequest{NodeId: addr.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + var node = nodeResp.Node + if node == nil || node.NodeCluster == nil { + this.ErrorPage(errors.New("node or cluster is not available")) + return + } + + this.Data["addr"] = maps.Map{ + "id": addr.Id, + "name": addr.Name, + "description": addr.Description, + "ip": addr.Ip, + "canAccess": addr.CanAccess, + "isOn": addr.IsOn, + "isUp": addr.IsUp, + "thresholds": thresholds, + "node": maps.Map{"id": node.Id, "name": node.Name}, + "cluster": maps.Map{"id": node.NodeCluster.Id, "name": node.NodeCluster.Name}, + } + + this.Show() +} diff --git a/internal/web/actions/default/clusters/ip-addrs/addr/logs.go b/internal/web/actions/default/clusters/ip-addrs/addr/logs.go new file mode 100644 index 00000000..4648a253 --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/addr/logs.go @@ -0,0 +1,75 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package addr + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/ip-addrs/ipaddrutils" + "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("", "", "log") +} + +func (this *LogsAction) RunGet(params struct { + AddrId int64 +}) { + _, err := ipaddrutils.InitIPAddr(this.Parent(), params.AddrId) + if err != nil { + this.ErrorPage(err) + return + } + + countResp, err := this.RPC().NodeIPAddressLogRPC().CountAllNodeIPAddressLogs(this.AdminContext(), &pb.CountAllNodeIPAddressLogsRequest{NodeIPAddressId: params.AddrId}) + if err != nil { + this.ErrorPage(err) + return + } + var page = this.NewPage(countResp.Count) + this.Data["page"] = page.AsHTML() + + logsResp, err := this.RPC().NodeIPAddressLogRPC().ListNodeIPAddressLogs(this.AdminContext(), &pb.ListNodeIPAddressLogsRequest{ + NodeIPAddressId: params.AddrId, + Offset: page.Offset, + Size: page.Size, + }) + if err != nil { + this.ErrorPage(err) + return + } + var logMaps = []maps.Map{} + for _, log := range logsResp.NodeIPAddressLogs { + var adminMap maps.Map + if log.Admin != nil { + adminMap = maps.Map{ + "id": log.Admin.Id, + "name": log.Admin.Fullname, + } + } else { + adminMap = maps.Map{ + "id": 0, + "name": "[系统]", + } + } + + logMaps = append(logMaps, maps.Map{ + "id": log.Id, + "description": log.Description, + "createdTime": timeutil.FormatTime("Y-m-d H:i:s", log.CreatedAt), + "isUp": log.IsUp, + "isOn": log.IsOn, + "canAccess": log.CanAccess, + "admin": adminMap, + }) + } + this.Data["logs"] = logMaps + + this.Show() +} diff --git a/internal/web/actions/default/clusters/ip-addrs/addr/update.go b/internal/web/actions/default/clusters/ip-addrs/addr/update.go new file mode 100644 index 00000000..a48f0a3c --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/addr/update.go @@ -0,0 +1,92 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package addr + +import ( + "encoding/json" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/ip-addrs/ipaddrutils" + "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/actions" + "github.com/iwind/TeaGo/maps" + "net" +) + +type UpdateAction struct { + actionutils.ParentAction +} + +func (this *UpdateAction) Init() { + this.Nav("", "", "update") +} + +func (this *UpdateAction) RunGet(params struct { + AddrId int64 +}) { + addr, err := ipaddrutils.InitIPAddr(this.Parent(), params.AddrId) + if err != nil { + this.ErrorPage(err) + return + } + + var thresholds = []*nodeconfigs.NodeValueThresholdConfig{} + if len(addr.ThresholdsJSON) > 0 { + err = json.Unmarshal(addr.ThresholdsJSON, &thresholds) + if err != nil { + this.ErrorPage(err) + return + } + } + + this.Data["supportThresholds"] = true + + this.Data["addr"] = maps.Map{ + "id": addr.Id, + "name": addr.Name, + "description": addr.Description, + "ip": addr.Ip, + "canAccess": addr.CanAccess, + "isOn": addr.IsOn, + "isUp": addr.IsUp, + "thresholds": thresholds, + } + + this.Show() +} + +func (this *UpdateAction) RunPost(params struct { + AddrId int64 + IP string `alias:"ip"` + Name string + CanAccess bool + IsOn bool + ThresholdsJSON []byte + + Must *actions.Must + CSRF *actionutils.CSRF +}) { + params.Must. + Field("ip", params.IP). + Require("请输入IP地址") + + ip := net.ParseIP(params.IP) + if len(ip) == 0 { + this.Fail("请输入正确的IP") + } + + _, err := this.RPC().NodeIPAddressRPC().UpdateNodeIPAddress(this.AdminContext(), &pb.UpdateNodeIPAddressRequest{ + NodeIPAddressId: params.AddrId, + Name: params.Name, + Ip: params.IP, + CanAccess: params.CanAccess, + IsOn: params.IsOn, + ThresholdsJSON: params.ThresholdsJSON, + }) + if err != nil { + this.ErrorPage(err) + return + } + + this.Success() +} diff --git a/internal/web/actions/default/clusters/ip-addrs/index.go b/internal/web/actions/default/clusters/ip-addrs/index.go new file mode 100644 index 00000000..b37d45bf --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/index.go @@ -0,0 +1,94 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package ipaddrs + +import ( + "encoding/json" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/nodeconfigs" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/maps" +) + +type IndexAction struct { + actionutils.ParentAction +} + +func (this *IndexAction) Init() { + this.Nav("", "", "index") +} + +func (this *IndexAction) RunGet(params struct { + ClusterId int64 + UpState int8 + Keyword string +}) { + this.Data["clusterId"] = params.ClusterId + this.Data["upState"] = params.UpState + this.Data["keyword"] = params.Keyword + + countResp, err := this.RPC().NodeIPAddressRPC().CountAllEnabledIPAddresses(this.AdminContext(), &pb.CountAllEnabledIPAddressesRequest{ + NodeClusterId: params.ClusterId, + Role: nodeconfigs.NodeRoleNode, + UpState: int32(params.UpState), + Keyword: params.Keyword, + }) + if err != nil { + this.ErrorPage(err) + return + } + + var count = countResp.Count + var page = this.NewPage(count) + this.Data["page"] = page.AsHTML() + + addrsResp, err := this.RPC().NodeIPAddressRPC().ListEnabledIPAddresses(this.AdminContext(), &pb.ListEnabledIPAddressesRequest{ + NodeClusterId: params.ClusterId, + Role: nodeconfigs.NodeRoleNode, + UpState: int32(params.UpState), + Keyword: params.Keyword, + Offset: page.Offset, + Size: page.Size, + }) + if err != nil { + this.ErrorPage(err) + return + } + var addrMaps = []maps.Map{} + for _, addr := range addrsResp.NodeIPAddresses { + var thresholds = []*nodeconfigs.NodeValueThresholdConfig{} + if len(addr.ThresholdsJSON) > 0 { + err = json.Unmarshal(addr.ThresholdsJSON, &thresholds) + if err != nil { + this.ErrorPage(err) + return + } + } + + nodeResp, err := this.RPC().NodeRPC().FindEnabledBasicNode(this.AdminContext(), &pb.FindEnabledBasicNodeRequest{NodeId: addr.NodeId}) + if err != nil { + this.ErrorPage(err) + return + } + var node = nodeResp.Node + if node == nil || node.NodeCluster == nil { + continue + } + + addrMaps = append(addrMaps, maps.Map{ + "id": addr.Id, + "name": addr.Name, + "description": addr.Description, + "ip": addr.Ip, + "canAccess": addr.CanAccess, + "isOn": addr.IsOn, + "isUp": addr.IsUp, + "hasThresholds": len(thresholds) > 0, + "node": maps.Map{"id": node.Id, "name": node.Name}, + "cluster": maps.Map{"id": node.NodeCluster.Id, "name": node.NodeCluster.Name}, + }) + } + this.Data["addrs"] = addrMaps + + this.Show() +} diff --git a/internal/web/actions/default/clusters/ip-addrs/init.go b/internal/web/actions/default/clusters/ip-addrs/init.go new file mode 100644 index 00000000..8fa6a5e8 --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/init.go @@ -0,0 +1,28 @@ +package ipaddrs + +import ( + "github.com/TeaOSLab/EdgeAdmin/internal/configloaders" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/clusterutils" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/clusters/ip-addrs/addr" + "github.com/TeaOSLab/EdgeAdmin/internal/web/helpers" + "github.com/iwind/TeaGo" +) + +func init() { + TeaGo.BeforeStart(func(server *TeaGo.Server) { + server. + Helper(helpers.NewUserMustAuth(configloaders.AdminModuleCodeNode)). + Helper(clusterutils.NewClustersHelper()). + Data("teaSubMenu", "ipAddr"). + Prefix("/clusters/ip-addrs"). + Get("", new(IndexAction)). + Get("/logs", new(LogsAction)). + + // 单个地址操作 + Post("/addr/delete", new(addr.DeleteAction)). + Get("/addr", new(addr.IndexAction)). + GetPost("/addr/update", new(addr.UpdateAction)). + Get("/addr/logs", new(addr.LogsAction)). + EndAll() + }) +} diff --git a/internal/web/actions/default/clusters/ip-addrs/ipaddrutils/utils.go b/internal/web/actions/default/clusters/ip-addrs/ipaddrutils/utils.go new file mode 100644 index 00000000..7c0037d9 --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/ipaddrutils/utils.go @@ -0,0 +1,30 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package ipaddrutils + +import ( + "errors" + "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" + "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/iwind/TeaGo/maps" + "github.com/iwind/TeaGo/types" +) + +func InitIPAddr(parent *actionutils.ParentAction, addrId int64) (*pb.NodeIPAddress, error) { + addrResp, err := parent.RPC().NodeIPAddressRPC().FindEnabledNodeIPAddress(parent.AdminContext(), &pb.FindEnabledNodeIPAddressRequest{NodeIPAddressId: addrId}) + if err != nil { + return nil, err + } + var addr = addrResp.NodeIPAddress + if addr == nil { + return nil, errors.New("nodeIPAddress with id '" + types.String(addrId) + "' not found") + } + + parent.Data["addr"] = maps.Map{ + "id": addr.Id, + "name": addr.Name, + "ip": addr.Ip, + } + + return addr, nil +} diff --git a/internal/web/actions/default/clusters/ip-addrs/logs.go b/internal/web/actions/default/clusters/ip-addrs/logs.go new file mode 100644 index 00000000..42086e1e --- /dev/null +++ b/internal/web/actions/default/clusters/ip-addrs/logs.go @@ -0,0 +1,78 @@ +// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved. + +package ipaddrs + +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("", "", "log") +} + +func (this *LogsAction) RunGet(params struct { +}) { + countResp, err := this.RPC().NodeIPAddressLogRPC().CountAllNodeIPAddressLogs(this.AdminContext(), &pb.CountAllNodeIPAddressLogsRequest{}) + if err != nil { + this.ErrorPage(err) + return + } + var page = this.NewPage(countResp.Count) + this.Data["page"] = page.AsHTML() + + logsResp, err := this.RPC().NodeIPAddressLogRPC().ListNodeIPAddressLogs(this.AdminContext(), &pb.ListNodeIPAddressLogsRequest{ + Offset: page.Offset, + Size: page.Size, + }) + if err != nil { + this.ErrorPage(err) + return + } + var logMaps = []maps.Map{} + for _, log := range logsResp.NodeIPAddressLogs { + var adminMap maps.Map + if log.Admin != nil { + adminMap = maps.Map{ + "id": log.Admin.Id, + "name": log.Admin.Fullname, + } + } else { + adminMap = maps.Map{ + "id": 0, + "name": "[系统]", + } + } + + var addrMap maps.Map + if log.NodeIPAddress != nil { + var addr = log.NodeIPAddress + if addr != nil { + addrMap = maps.Map{ + "id": addr.Id, + "ip": addr.Ip, + } + } + } + + logMaps = append(logMaps, maps.Map{ + "id": log.Id, + "description": log.Description, + "createdTime": timeutil.FormatTime("Y-m-d H:i:s", log.CreatedAt), + "isUp": log.IsUp, + "isOn": log.IsOn, + "canAccess": log.CanAccess, + "admin": adminMap, + "addr": addrMap, + }) + } + this.Data["logs"] = logMaps + + this.Show() +} diff --git a/internal/web/actions/default/nodes/ipAddresses/createPopup.go b/internal/web/actions/default/nodes/ipAddresses/createPopup.go index 7f565c97..bd54bb6d 100644 --- a/internal/web/actions/default/nodes/ipAddresses/createPopup.go +++ b/internal/web/actions/default/nodes/ipAddresses/createPopup.go @@ -18,7 +18,10 @@ func (this *CreatePopupAction) Init() { this.Nav("", "", "") } -func (this *CreatePopupAction) RunGet(params struct{}) { +func (this *CreatePopupAction) RunGet(params struct { + SupportThresholds bool +}) { + this.Data["supportThresholds"] = params.SupportThresholds this.Show() } diff --git a/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go b/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go index 23ae436c..e3c0f2a5 100644 --- a/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go +++ b/internal/web/actions/default/nodes/ipAddresses/ipaddressutils/utils.go @@ -32,12 +32,12 @@ func UpdateNodeIPAddresses(parentAction *actionutils.ParentAction, nodeId int64, } _, err = parentAction.RPC().NodeIPAddressRPC().UpdateNodeIPAddress(parentAction.AdminContext(), &pb.UpdateNodeIPAddressRequest{ - AddressId: addrId, - Ip: addr.GetString("ip"), - Name: addr.GetString("name"), - CanAccess: addr.GetBool("canAccess"), - IsOn: isOn, - ThresholdsJSON: thresholdsJSON, + NodeIPAddressId: addrId, + Ip: addr.GetString("ip"), + Name: addr.GetString("name"), + CanAccess: addr.GetBool("canAccess"), + IsOn: isOn, + ThresholdsJSON: thresholdsJSON, }) if err != nil { return err diff --git a/internal/web/actions/default/nodes/ipAddresses/updatePopup.go b/internal/web/actions/default/nodes/ipAddresses/updatePopup.go index 57672da2..51a5b39a 100644 --- a/internal/web/actions/default/nodes/ipAddresses/updatePopup.go +++ b/internal/web/actions/default/nodes/ipAddresses/updatePopup.go @@ -20,8 +20,11 @@ func (this *UpdatePopupAction) Init() { } func (this *UpdatePopupAction) RunGet(params struct { - AddressId int64 + AddressId int64 + SupportThresholds bool }) { + this.Data["supportThresholds"] = params.SupportThresholds + this.Show() } @@ -42,12 +45,12 @@ func (this *UpdatePopupAction) RunPost(params struct { // 获取IP地址信息 var isUp = true if params.AddressId > 0 { - addressResp, err := this.RPC().NodeIPAddressRPC().FindEnabledNodeIPAddress(this.AdminContext(), &pb.FindEnabledNodeIPAddressRequest{AddressId: params.AddressId}) + addressResp, err := this.RPC().NodeIPAddressRPC().FindEnabledNodeIPAddress(this.AdminContext(), &pb.FindEnabledNodeIPAddressRequest{NodeIPAddressId: params.AddressId}) if err != nil { this.ErrorPage(err) return } - var address = addressResp.IpAddress + var address = addressResp.NodeIPAddress if address == nil { this.Fail("找不到要修改的地址") } diff --git a/internal/web/actions/default/ns/clusters/cluster/createNode.go b/internal/web/actions/default/ns/clusters/cluster/createNode.go index 7de50cb1..c561fe9a 100644 --- a/internal/web/actions/default/ns/clusters/cluster/createNode.go +++ b/internal/web/actions/default/ns/clusters/cluster/createNode.go @@ -83,8 +83,8 @@ func (this *CreateNodeAction) RunPost(params struct { addressId := address.GetInt64("id") if addressId > 0 { _, err = this.RPC().NodeIPAddressRPC().UpdateNodeIPAddressNodeId(this.AdminContext(), &pb.UpdateNodeIPAddressNodeIdRequest{ - AddressId: addressId, - NodeId: nodeId, + NodeIPAddressId: addressId, + NodeId: nodeId, }) } else { _, err = this.RPC().NodeIPAddressRPC().CreateNodeIPAddress(this.AdminContext(), &pb.CreateNodeIPAddressRequest{ diff --git a/internal/web/helpers/user_must_auth.go b/internal/web/helpers/user_must_auth.go index 7cde11fa..ba55659a 100644 --- a/internal/web/helpers/user_must_auth.go +++ b/internal/web/helpers/user_must_auth.go @@ -240,13 +240,13 @@ func (this *userMustAuth) modules(adminId int64) []maps.Map { "url": "/clusters/logs", "code": "log", }, - /**{ - "name": "IP资源", + { + "name": "IP地址", "url": "/clusters/ip-addrs", "code": "ipAddr", "isOn": teaconst.IsPlus, }, - { + /**{ "name": "监控", "url": "/clusters/monitors", "code": "monitor", diff --git a/internal/web/import.go b/internal/web/import.go index 712a7a5c..f4cfb7ab 100644 --- a/internal/web/import.go +++ b/internal/web/import.go @@ -6,11 +6,6 @@ import ( // 系统用户 _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/admins" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/admins/recipients" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/admins/recipients/groups" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/admins/recipients/instances" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/admins/recipients/logs" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/admins/recipients/tasks" // API节点 _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/api" @@ -41,23 +36,8 @@ import ( _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/nodes" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ui" - // 域名服务 - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters/accessLogs" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters/cluster" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters/cluster/settings" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters/cluster/settings/accessLog" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters/cluster/settings/recursion" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/clusters/logs" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/routes" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/settings/accesslogs" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/test" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/ns/users" - // 服务相关 _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/accesslogs" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/certs" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/components/cache" @@ -68,7 +48,6 @@ import ( _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/metrics" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/metrics/charts" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server" - _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/boards" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/delete" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/log" _ "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/server/settings" diff --git a/web/public/js/components/cluster/cluster-selector.js b/web/public/js/components/cluster/cluster-selector.js index 6aa492f7..02359ca5 100644 --- a/web/public/js/components/cluster/cluster-selector.js +++ b/web/public/js/components/cluster/cluster-selector.js @@ -1,5 +1,6 @@ // 单个集群选择 Vue.component("cluster-selector", { + props: ["v-cluster-id"], mounted: function () { let that = this @@ -9,7 +10,6 @@ Vue.component("cluster-selector", { that.clusters = resp.data.clusters }) }, - props: ["v-cluster-id"], data: function () { let clusterId = this.vClusterId if (clusterId == null) { @@ -21,7 +21,7 @@ Vue.component("cluster-selector", { } }, template: `