mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-08 14:15:25 +08:00
Send relays and internet gws count to amb
This commit is contained in:
parent
ad551a0e6a
commit
520607fd4e
3 changed files with 57 additions and 9 deletions
|
@ -11,7 +11,42 @@ import (
|
|||
"github.com/gravitl/netmaker/servercfg"
|
||||
)
|
||||
|
||||
// GetAllIngresses - gets all the hosts that are ingresses
|
||||
// GetRelays - gets all the nodes that are relays
|
||||
func GetRelays() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
relays := make([]models.Node, 0)
|
||||
for _, node := range nodes {
|
||||
if node.IsRelay {
|
||||
relays = append(relays, node)
|
||||
}
|
||||
}
|
||||
return relays, nil
|
||||
}
|
||||
|
||||
// GetInternetGateways - gets all the nodes that are internet gateways
|
||||
func GetInternetGateways() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
igs := make([]models.Node, 0)
|
||||
for _, node := range nodes {
|
||||
if !node.IsEgressGateway {
|
||||
continue
|
||||
}
|
||||
for _, ran := range node.EgressGatewayRanges {
|
||||
if ran == "0.0.0.0/0" {
|
||||
igs = append(igs, node)
|
||||
}
|
||||
}
|
||||
}
|
||||
return igs, nil
|
||||
}
|
||||
|
||||
// GetAllIngresses - gets all the nodes that are ingresses
|
||||
func GetAllIngresses() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
|
@ -26,7 +61,7 @@ func GetAllIngresses() ([]models.Node, error) {
|
|||
return ingresses, nil
|
||||
}
|
||||
|
||||
// GetAllEgresses - gets all the hosts that are egresses
|
||||
// GetAllEgresses - gets all the nodes that are egresses
|
||||
func GetAllEgresses() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
|
|
18
pro/types.go
18
pro/types.go
|
@ -54,13 +54,15 @@ type LicenseSecret struct {
|
|||
|
||||
// Usage - struct for license usage
|
||||
type Usage struct {
|
||||
Servers int `json:"servers"`
|
||||
Users int `json:"users"`
|
||||
Hosts int `json:"hosts"`
|
||||
Clients int `json:"clients"`
|
||||
Networks int `json:"networks"`
|
||||
Ingresses int `json:"ingresses"`
|
||||
Egresses int `json:"egresses"`
|
||||
Servers int `json:"servers"`
|
||||
Users int `json:"users"`
|
||||
Hosts int `json:"hosts"`
|
||||
Clients int `json:"clients"`
|
||||
Networks int `json:"networks"`
|
||||
Ingresses int `json:"ingresses"`
|
||||
Egresses int `json:"egresses"`
|
||||
Relays int `json:"relays"`
|
||||
InternetGateways int `json:"internet_gateways"`
|
||||
}
|
||||
|
||||
// Usage.SetDefaults - sets the default values for usage
|
||||
|
@ -72,6 +74,8 @@ func (l *Usage) SetDefaults() {
|
|||
l.Networks = 0
|
||||
l.Ingresses = 0
|
||||
l.Egresses = 0
|
||||
l.Relays = 0
|
||||
l.InternetGateways = 0
|
||||
}
|
||||
|
||||
// ValidateLicenseRequest - used for request to validate license endpoint
|
||||
|
|
|
@ -44,6 +44,7 @@ func getCurrentServerUsage() (limits Usage) {
|
|||
if err == nil {
|
||||
limits.Networks = len(networks)
|
||||
}
|
||||
// TODO this part bellow can be optimized to get nodes just once
|
||||
ingresses, err := logic.GetAllIngresses()
|
||||
if err == nil {
|
||||
limits.Ingresses = len(ingresses)
|
||||
|
@ -52,5 +53,13 @@ func getCurrentServerUsage() (limits Usage) {
|
|||
if err == nil {
|
||||
limits.Egresses = len(egresses)
|
||||
}
|
||||
relays, err := logic.GetRelays()
|
||||
if err == nil {
|
||||
limits.Relays = len(relays)
|
||||
}
|
||||
gateways, err := logic.GetInternetGateways()
|
||||
if err == nil {
|
||||
limits.InternetGateways = len(gateways)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue