Procházet zdrojové kódy

Mark server as unlicensed when ee checks fail

gabrielseibel1 před 2 roky
rodič
revize
aee1e80a80
3 změnil soubory, kde provedl 18 přidání a 6 odebrání
  1. 7 2
      ee/initialize.go
  2. 6 3
      logic/server.go
  3. 5 1
      main.go

+ 7 - 2
ee/initialize.go

@@ -11,6 +11,7 @@ import (
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/servercfg"
+	"golang.org/x/exp/slog"
 )
 
 // InitEE - Initialize EE Logic
@@ -25,14 +26,18 @@ func InitEE() {
 		ee_controllers.UserGroupsHandlers,
 		ee_controllers.RelayHandlers,
 	)
-	logic.EnterpriseCheckFuncs = append(logic.EnterpriseCheckFuncs, func() {
+	logic.EnterpriseCheckFuncs = append(logic.EnterpriseCheckFuncs, func() error {
 		// == License Handling ==
-		ValidateLicense()
+		if err := ValidateLicense(); err != nil {
+			slog.Error(err.Error())
+			return err
+		}
 		logger.Log(0, "proceeding with Paid Tier license")
 		logic.SetFreeTierForTelemetry(false)
 		// == End License Handling ==
 		AddLicenseHooks()
 		resetFailover()
+		return nil
 	})
 	logic.EnterpriseFailoverFunc = eelogic.SetFailover
 	logic.EnterpriseResetFailoverFunc = eelogic.ResetFailover

+ 6 - 3
logic/server.go

@@ -6,7 +6,7 @@ import (
 )
 
 // EnterpriseCheckFuncs - can be set to run functions for EE
-var EnterpriseCheckFuncs []func()
+var EnterpriseCheckFuncs []func() error
 
 // EnterpriseFailoverFunc - interface to control failover funcs
 var EnterpriseFailoverFunc func(node *models.Node) error
@@ -26,8 +26,11 @@ const KUBERNETES_LISTEN_PORT = 31821
 const KUBERNETES_SERVER_MTU = 1024
 
 // EnterpriseCheck - Runs enterprise functions if presented
-func EnterpriseCheck() {
+func EnterpriseCheck() error {
 	for _, check := range EnterpriseCheckFuncs {
-		check()
+		if err := check(); err != nil {
+			return err
+		}
 	}
+	return nil
 }

+ 5 - 1
main.go

@@ -91,7 +91,11 @@ func initialize() { // Client Mode Prereq Check
 	if err != nil {
 		logger.Log(1, "Timer error occurred: ", err.Error())
 	}
-	logic.EnterpriseCheck()
+
+	if err := logic.EnterpriseCheck(); err != nil {
+		servercfg.IsUnlicensed = true
+		return
+	}
 
 	var authProvider = auth.InitializeAuthProvider()
 	if authProvider != "" {