From a1ec68c50cd2522cc69f965bf34d32d67261a965 Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Sat, 18 Nov 2023 12:09:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8A=82=E7=82=B9=E9=85=8D=E7=BD=AE=E4=B8=AD?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8A=82=E7=82=B9IP=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/db/models/node_dao.go | 9 +++++++- internal/db/models/node_ip_address_dao.go | 26 +++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 42ceff28..bfdf0965 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -1018,6 +1018,13 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, dataMap *shared } config.AllowedIPs = append(config.AllowedIPs, apiNodeIPs...) + // 当前的节点IP地址 + nodeNodeIPs, err := SharedNodeIPAddressDAO.FindAllEnabledAddressStringsWithNode(tx, nodeId, nodeconfigs.NodeRoleNode) + if err != nil { + return nil, err + } + config.IPAddresses = nodeNodeIPs + // 所属集群 var primaryClusterId = int64(node.ClusterId) var clusterIds = []int64{primaryClusterId} @@ -1076,7 +1083,7 @@ func (this *NodeDAO) ComposeNodeConfig(tx *dbs.Tx, nodeId int64, dataMap *shared continue } - // 节点IP地址 + // 所有节点IP地址 nodeIPAddresses, err := SharedNodeIPAddressDAO.FindAllAccessibleIPAddressesWithClusterId(tx, nodeconfigs.NodeRoleNode, clusterId, cacheMap) if err != nil { return nil, err diff --git a/internal/db/models/node_ip_address_dao.go b/internal/db/models/node_ip_address_dao.go index a7c3436a..d9c526ef 100644 --- a/internal/db/models/node_ip_address_dao.go +++ b/internal/db/models/node_ip_address_dao.go @@ -256,6 +256,32 @@ func (this *NodeIPAddressDAO) FindAllEnabledAddressesWithNode(tx *dbs.Tx, nodeId return } +// FindAllEnabledAddressStringsWithNode 查找节点的所有的IP地址地府传 +func (this *NodeIPAddressDAO) FindAllEnabledAddressStringsWithNode(tx *dbs.Tx, nodeId int64, role nodeconfigs.NodeRole) (result []string, err error) { + if len(role) == 0 { + role = nodeconfigs.NodeRoleNode + } + ones, err := this.Query(tx). + Attr("nodeId", nodeId). + Attr("role", role). + State(NodeIPAddressStateEnabled). + Result("ip", "backupIP"). + FindAll() + if err != nil { + return nil, err + } + + for _, one := range ones { + var addr = one.(*NodeIPAddress) + result = append(result, addr.Ip) + if len(addr.BackupIP) > 0 { + result = append(result, addr.BackupIP) + } + } + + return +} + // FindFirstNodeAccessIPAddress 查找节点的第一个可访问的IP地址 func (this *NodeIPAddressDAO) FindFirstNodeAccessIPAddress(tx *dbs.Tx, nodeId int64, mustUp bool, role nodeconfigs.NodeRole) (ip string, addrId int64, err error) { if len(role) == 0 {