NET-1956: Async Node Status API (#3341)

* add node status api

* upsate node status api to return map data

* resolve merge conflicts
This commit is contained in:
Abhishek K
2025-02-24 08:48:24 +03:00
committed by GitHub
parent a805901a73
commit 48535f7ef1
5 changed files with 90 additions and 8 deletions

View File

@@ -443,7 +443,7 @@ func AddStaticNodestoList(nodes []models.Node) []models.Node {
return nodes
}
func AddStatusToNodes(nodes []models.Node) (nodesWithStatus []models.Node) {
func AddStatusToNodes(nodes []models.Node, statusCall bool) (nodesWithStatus []models.Node) {
aclDefaultPolicyStatusMap := make(map[string]bool)
for _, node := range nodes {
if _, ok := aclDefaultPolicyStatusMap[node.Network]; !ok {
@@ -451,7 +451,12 @@ func AddStatusToNodes(nodes []models.Node) (nodesWithStatus []models.Node) {
defaultPolicy, _ := GetDefaultPolicy(models.NetworkID(node.Network), models.DevicePolicy)
aclDefaultPolicyStatusMap[node.Network] = defaultPolicy.Enabled
}
GetNodeStatus(&node, aclDefaultPolicyStatusMap[node.Network])
if statusCall {
GetNodeStatus(&node, aclDefaultPolicyStatusMap[node.Network])
} else {
GetNodeCheckInStatus(&node, true)
}
nodesWithStatus = append(nodesWithStatus, node)
}
return
@@ -572,6 +577,16 @@ func GetAllNodesAPI(nodes []models.Node) []models.ApiNode {
return apiNodes[:]
}
// GetNodesStatusAPI - gets nodes status
func GetNodesStatusAPI(nodes []models.Node) map[string]models.ApiNodeStatus {
apiStatusNodesMap := make(map[string]models.ApiNodeStatus)
for i := range nodes {
newApiNode := nodes[i].ConvertToStatusNode()
apiStatusNodesMap[newApiNode.ID] = *newApiNode
}
return apiStatusNodesMap
}
// DeleteExpiredNodes - goroutine which deletes nodes which are expired
func DeleteExpiredNodes(ctx context.Context, peerUpdate chan *models.Node) {
// Delete Expired Nodes Every Hour