Переглянути джерело

feat(go): only report online external clients.

Vishal Dalwadi 6 місяців тому
батько
коміт
85bfa7e23b
2 змінених файлів з 22 додано та 1 видалено
  1. 21 0
      logic/extpeers.go
  2. 1 1
      pro/util.go

+ 21 - 0
logic/extpeers.go

@@ -416,6 +416,27 @@ func GetAllExtClients() ([]models.ExtClient, error) {
 	return clients, nil
 }
 
+// GetAllExtClientsWithStatus - returns all external clients with
+// given status.
+func GetAllExtClientsWithStatus(status models.NodeStatus) ([]models.ExtClient, error) {
+	extClients, err := GetAllExtClients()
+	if err != nil {
+		return nil, err
+	}
+
+	var validExtClients []models.ExtClient
+	for _, extClient := range extClients {
+		nodes := []models.Node{extClient.ConvertToStaticNode()}
+		AddStatusToNodes(nodes)
+
+		if nodes[0].Status == status {
+			validExtClients = append(validExtClients, extClient)
+		}
+	}
+
+	return validExtClients, nil
+}
+
 // ToggleExtClientConnectivity - enables or disables an ext client
 func ToggleExtClientConnectivity(client *models.ExtClient, enable bool) (models.ExtClient, error) {
 	update := models.CustomExtClient{

+ 1 - 1
pro/util.go

@@ -31,7 +31,7 @@ func getCurrentServerUsage() (limits Usage) {
 	if hErr == nil {
 		limits.Hosts = len(hosts)
 	}
-	clients, cErr := logic.GetAllExtClients()
+	clients, cErr := logic.GetAllExtClientsWithStatus(models.OnlineSt)
 	if cErr == nil {
 		limits.Clients = len(clients)
 	}