Merge pull request #3391 from gravitl/master

Master
This commit is contained in:
Abhishek K
2025-03-25 11:51:06 +04:00
committed by GitHub
5 changed files with 54 additions and 5 deletions

View File

@@ -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)
}

View File

@@ -417,6 +417,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{

View File

@@ -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{}

View File

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

View File

@@ -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)
}