|
@@ -17,6 +17,10 @@ func getNodeStatusOld(node *models.Node) {
|
|
node.Status = models.OnlineSt
|
|
node.Status = models.OnlineSt
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ if !node.Connected {
|
|
|
|
+ node.Status = models.Disconnected
|
|
|
|
+ return
|
|
|
|
+ }
|
|
if time.Since(node.LastCheckIn) > time.Minute*10 {
|
|
if time.Since(node.LastCheckIn) > time.Minute*10 {
|
|
node.Status = models.OfflineSt
|
|
node.Status = models.OfflineSt
|
|
return
|
|
return
|
|
@@ -39,7 +43,7 @@ func GetNodeStatus(node *models.Node, defaultEnabledPolicy bool) {
|
|
if !defaultEnabledPolicy {
|
|
if !defaultEnabledPolicy {
|
|
allowed, _ := logic.IsNodeAllowedToCommunicate(*node, ingNode, false)
|
|
allowed, _ := logic.IsNodeAllowedToCommunicate(*node, ingNode, false)
|
|
if !allowed {
|
|
if !allowed {
|
|
- node.Status = models.RestrictedSt
|
|
|
|
|
|
+ node.Status = models.OnlineSt
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -63,6 +67,10 @@ func GetNodeStatus(node *models.Node, defaultEnabledPolicy bool) {
|
|
node.Status = models.UnKnown
|
|
node.Status = models.UnKnown
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ if !node.Connected {
|
|
|
|
+ node.Status = models.Disconnected
|
|
|
|
+ return
|
|
|
|
+ }
|
|
if time.Since(node.LastCheckIn) > models.LastCheckInThreshold {
|
|
if time.Since(node.LastCheckIn) > models.LastCheckInThreshold {
|
|
node.Status = models.OfflineSt
|
|
node.Status = models.OfflineSt
|
|
return
|
|
return
|
|
@@ -184,7 +192,6 @@ func checkPeerStatus(node *models.Node, defaultAclPolicy bool) {
|
|
|
|
|
|
func checkPeerConnectivity(node *models.Node, metrics *models.Metrics, defaultAclPolicy bool) {
|
|
func checkPeerConnectivity(node *models.Node, metrics *models.Metrics, defaultAclPolicy bool) {
|
|
peerNotConnectedCnt := 0
|
|
peerNotConnectedCnt := 0
|
|
- peerNotAllowed := 0
|
|
|
|
for peerID, metric := range metrics.Connectivity {
|
|
for peerID, metric := range metrics.Connectivity {
|
|
peer, err := logic.GetNodeByID(peerID)
|
|
peer, err := logic.GetNodeByID(peerID)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -194,7 +201,6 @@ func checkPeerConnectivity(node *models.Node, metrics *models.Metrics, defaultAc
|
|
if !defaultAclPolicy {
|
|
if !defaultAclPolicy {
|
|
allowed, _ := logic.IsNodeAllowedToCommunicate(*node, peer, false)
|
|
allowed, _ := logic.IsNodeAllowedToCommunicate(*node, peer, false)
|
|
if !allowed {
|
|
if !allowed {
|
|
- peerNotAllowed++
|
|
|
|
continue
|
|
continue
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -213,10 +219,7 @@ func checkPeerConnectivity(node *models.Node, metrics *models.Metrics, defaultAc
|
|
peerNotConnectedCnt++
|
|
peerNotConnectedCnt++
|
|
|
|
|
|
}
|
|
}
|
|
- if peerNotAllowed == len(metrics.Connectivity) {
|
|
|
|
- node.Status = models.RestrictedSt
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
if peerNotConnectedCnt > len(metrics.Connectivity)/2 {
|
|
if peerNotConnectedCnt > len(metrics.Connectivity)/2 {
|
|
node.Status = models.WarningSt
|
|
node.Status = models.WarningSt
|
|
return
|
|
return
|