Explorar el Código

Merge pull request #3390 from gravitl/release-v0.30.0

Release v0.30.0
Abhishek K hace 5 meses
padre
commit
29b6516060
Se han modificado 5 ficheros con 54 adiciones y 5 borrados
  1. 2 2
      controllers/server.go
  2. 21 0
      logic/extpeers.go
  3. 27 0
      logic/hosts.go
  4. 1 1
      logic/nodes.go
  5. 3 2
      pro/util.go

+ 2 - 2
controllers/server.go

@@ -82,11 +82,11 @@ func getUsage(w http.ResponseWriter, _ *http.Request) {
 		FailOvers        int `json:"fail_overs"`
 	}
 	var serverUsage usage
-	hosts, err := logic.GetAllHosts()
+	hosts, err := logic.GetAllHostsWithStatus(models.OnlineSt)
 	if err == nil {
 		serverUsage.Hosts = len(hosts)
 	}
-	clients, err := logic.GetAllExtClients()
+	clients, err := logic.GetAllExtClientsWithStatus(models.OnlineSt)
 	if err == nil {
 		serverUsage.Clients = len(clients)
 	}

+ 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 {
+		node := extClient.ConvertToStaticNode()
+		getNodeStatus(&node, false)
+
+		if node.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{

+ 27 - 0
logic/hosts.go

@@ -106,6 +106,33 @@ func GetAllHosts() ([]models.Host, error) {
 	return currHosts, nil
 }
 
+// GetAllHostsWithStatus - returns all hosts with at least one
+// node with given status.
+func GetAllHostsWithStatus(status models.NodeStatus) ([]models.Host, error) {
+	hosts, err := GetAllHosts()
+	if err != nil {
+		return nil, err
+	}
+
+	var validHosts []models.Host
+	for _, host := range hosts {
+		if len(host.Nodes) == 0 {
+			continue
+		}
+
+		nodes := GetHostNodes(&host)
+		for _, node := range nodes {
+			getNodeStatus(&node, false)
+			if node.Status == status {
+				validHosts = append(validHosts, host)
+				break
+			}
+		}
+	}
+
+	return validHosts, nil
+}
+
 // GetAllHostsAPI - get's all the hosts in an API usable format
 func GetAllHostsAPI(hosts []models.Host) []models.ApiHost {
 	apiHosts := []models.ApiHost{}

+ 1 - 1
logic/nodes.go

@@ -506,7 +506,7 @@ func SetNodeDefaults(node *models.Node, resetConnected bool) {
 	}
 
 	node.SetLastModified()
-	node.SetLastCheckIn()
+	//node.SetLastCheckIn()
 
 	if resetConnected {
 		node.SetDefaultConnected()

+ 3 - 2
pro/util.go

@@ -5,6 +5,7 @@ package pro
 
 import (
 	"encoding/base64"
+	"github.com/gravitl/netmaker/models"
 
 	"github.com/gravitl/netmaker/logic"
 )
@@ -26,11 +27,11 @@ func base64decode(input string) []byte {
 
 func getCurrentServerUsage() (limits Usage) {
 	limits.SetDefaults()
-	hosts, hErr := logic.GetAllHosts()
+	hosts, hErr := logic.GetAllHostsWithStatus(models.OnlineSt)
 	if hErr == nil {
 		limits.Hosts = len(hosts)
 	}
-	clients, cErr := logic.GetAllExtClients()
+	clients, cErr := logic.GetAllExtClientsWithStatus(models.OnlineSt)
 	if cErr == nil {
 		limits.Clients = len(clients)
 	}