From 5ced92f8e340f599b8209e8dfe105eebcfc698fd Mon Sep 17 00:00:00 2001 From: liugq Date: Thu, 13 Jul 2023 22:34:01 +0800 Subject: [PATCH] fetch es nodes after agent registered --- modules/agent/api/instance.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/agent/api/instance.go b/modules/agent/api/instance.go index c8fc32eb..904c85c5 100644 --- a/modules/agent/api/instance.go +++ b/modules/agent/api/instance.go @@ -133,6 +133,10 @@ func (h *APIHandler) createInstance(w http.ResponseWriter, req *http.Request, ps if err != nil { log.Error(err) } + _, err = refreshNodesInfo(obj) + if err != nil { + log.Error(err) + } h.WriteCreatedOKJSON(w, obj.ID) @@ -833,7 +837,7 @@ func refreshNodesInfo(inst *agent.Instance) ([]agent.ESNodeInfo, error) { return nil, err } for _, node := range nodesInfo { - oldNode := getNodeByPidOrUUID(oldNodesInfo, node.ProcessInfo.PID, node.NodeUUID) + oldNode := getNodeByPidOrUUID(oldNodesInfo, node.ProcessInfo.PID, node.NodeUUID, node.HttpPort) node.AgentID = inst.ID if oldNode != nil { node.ID = oldNode.ID @@ -880,7 +884,7 @@ func refreshNodesInfo(inst *agent.Instance) ([]agent.ESNodeInfo, error) { return resultNodes, nil } -func getNodeByPidOrUUID(nodes map[int]*agent.ESNodeInfo, pid int, uuid string) *agent.ESNodeInfo { +func getNodeByPidOrUUID(nodes map[int]*agent.ESNodeInfo, pid int, uuid string, port string) *agent.ESNodeInfo { if nodes[pid] != nil { return nodes[pid] } @@ -888,6 +892,10 @@ func getNodeByPidOrUUID(nodes map[int]*agent.ESNodeInfo, pid int, uuid string) * if node.NodeUUID != "" && node.NodeUUID == uuid { return node } + //todo validate + if node.HttpPort != "" && node.HttpPort == port { + return node + } } return nil }