fetch es nodes after agent registered

This commit is contained in:
liugq 2023-07-13 22:34:01 +08:00
parent cb3c975cd5
commit 5ced92f8e3
1 changed files with 10 additions and 2 deletions

View File

@ -133,6 +133,10 @@ func (h *APIHandler) createInstance(w http.ResponseWriter, req *http.Request, ps
if err != nil { if err != nil {
log.Error(err) log.Error(err)
} }
_, err = refreshNodesInfo(obj)
if err != nil {
log.Error(err)
}
h.WriteCreatedOKJSON(w, obj.ID) h.WriteCreatedOKJSON(w, obj.ID)
@ -833,7 +837,7 @@ func refreshNodesInfo(inst *agent.Instance) ([]agent.ESNodeInfo, error) {
return nil, err return nil, err
} }
for _, node := range nodesInfo { 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 node.AgentID = inst.ID
if oldNode != nil { if oldNode != nil {
node.ID = oldNode.ID node.ID = oldNode.ID
@ -880,7 +884,7 @@ func refreshNodesInfo(inst *agent.Instance) ([]agent.ESNodeInfo, error) {
return resultNodes, nil 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 { if nodes[pid] != nil {
return nodes[pid] return nodes[pid]
} }
@ -888,6 +892,10 @@ func getNodeByPidOrUUID(nodes map[int]*agent.ESNodeInfo, pid int, uuid string) *
if node.NodeUUID != "" && node.NodeUUID == uuid { if node.NodeUUID != "" && node.NodeUUID == uuid {
return node return node
} }
//todo validate
if node.HttpPort != "" && node.HttpPort == port {
return node
}
} }
return nil return nil
} }