Sfoglia il codice sorgente

validate license every 1hr

Abhishek Kondur 2 anni fa
parent
commit
f0920105cb
4 ha cambiato i file con 12 aggiunte e 38 eliminazioni
  1. 1 8
      ee/initialize.go
  2. 1 8
      ee/license.go
  3. 6 22
      ee/types.go
  4. 4 0
      ee/util.go

+ 1 - 8
ee/initialize.go

@@ -16,6 +16,7 @@ import (
 // InitEE - Initialize EE Logic
 func InitEE() {
 	setIsEnterprise()
+	servercfg.Is_EE = true
 	models.SetLogo(retrieveEELogo())
 	controller.HttpHandlers = append(
 		controller.HttpHandlers,
@@ -37,14 +38,6 @@ func InitEE() {
 	logic.EnterpriseResetAllPeersFailovers = eelogic.WipeAffectedFailoversOnly
 }
 
-func setControllerLimits() {
-	logic.Hosts_Limit = Limits.Hosts
-	logic.Users_Limit = Limits.Users
-	logic.Clients_Limit = Limits.Clients
-	logic.Networks_Limit = Limits.Networks
-	servercfg.Is_EE = true
-}
-
 func resetFailover() {
 	nets, err := logic.GetNetworks()
 	if err == nil {

+ 1 - 8
ee/license.go

@@ -37,7 +37,7 @@ func AddLicenseHooks() {
 func init() {
 	go func() {
 		for {
-			time.Sleep(time.Second * 30)
+			time.Sleep(time.Hour)
 			err := ValidateLicense()
 			if err != nil {
 				logger.Log(0, "failed to validate license: ", err.Error())
@@ -105,13 +105,6 @@ func ValidateLicense() error {
 		logger.FatalLog(errValidation.Error())
 	}
 
-	Limits.Networks = license.LimitNetworks
-	Limits.Clients = license.LimitClients
-	Limits.Hosts = license.LimitHosts
-	Limits.Servers = license.LimitServers
-	Limits.Users = license.LimitUsers
-	setControllerLimits()
-
 	logger.Log(0, "License validation succeeded!")
 	return nil
 }

+ 6 - 22
ee/types.go

@@ -11,24 +11,6 @@ const (
 
 var errValidation = fmt.Errorf(license_validation_err_msg)
 
-// Limits - limits to be referenced throughout server
-var Limits = GlobalLimits{
-	Servers:  0,
-	Users:    0,
-	Hosts:    0,
-	Clients:  0,
-	Networks: 0,
-}
-
-// GlobalLimits - struct for holding global limits on this netmaker server in memory
-type GlobalLimits struct {
-	Servers  int
-	Users    int
-	Hosts    int
-	Clients  int
-	Networks int
-}
-
 // LicenseKey - the license key struct representation with associated data
 type LicenseKey struct {
 	LicenseValue  string `json:"license_value"` // actual (public) key and the unique value for the key
@@ -56,10 +38,11 @@ type LicenseSecret struct {
 
 // LicenseLimits - struct license limits
 type LicenseLimits struct {
-	Servers int `json:"servers" binding:"required"`
-	Users   int `json:"users" binding:"required"`
-	Hosts   int `json:"hosts" binding:"required"`
-	Clients int `json:"clients" binding:"required"`
+	Servers  int `json:"servers"`
+	Users    int `json:"users"`
+	Hosts    int `json:"hosts"`
+	Clients  int `json:"clients"`
+	Networks int `json:"networks"`
 }
 
 // LicenseLimits.SetDefaults - sets the default values for limits
@@ -68,6 +51,7 @@ func (l *LicenseLimits) SetDefaults() {
 	l.Servers = 1
 	l.Hosts = 0
 	l.Users = 1
+	l.Networks = 0
 }
 
 // ValidateLicenseRequest - used for request to validate license endpoint

+ 4 - 0
ee/util.go

@@ -45,5 +45,9 @@ func getCurrentServerLimit() (limits LicenseLimits) {
 	if err == nil {
 		limits.Users = len(users)
 	}
+	networks, err := logic.GetNetworks()
+	if err == nil {
+		limits.Networks = len(networks)
+	}
 	return
 }