| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | //go:build ee// +build eepackage eeimport (	controller "github.com/gravitl/netmaker/controllers"	"github.com/gravitl/netmaker/ee/ee_controllers"	eelogic "github.com/gravitl/netmaker/ee/logic"	"github.com/gravitl/netmaker/logger"	"github.com/gravitl/netmaker/logic"	"github.com/gravitl/netmaker/models"	"github.com/gravitl/netmaker/servercfg")// InitEE - Initialize EE Logicfunc InitEE() {	setIsEnterprise()	models.SetLogo(retrieveEELogo())	controller.HttpHandlers = append(		controller.HttpHandlers,		ee_controllers.MetricHandlers,		ee_controllers.NetworkUsersHandlers,		ee_controllers.UserGroupsHandlers,	)	logic.EnterpriseCheckFuncs = append(logic.EnterpriseCheckFuncs, func() {		// == License Handling ==		ValidateLicense()		if Limits.FreeTier {			logger.Log(0, "proceeding with Free Tier license")			logic.SetFreeTierForTelemetry(true)		} else {			logger.Log(0, "proceeding with Paid Tier license")			logic.SetFreeTierForTelemetry(false)		}		// == End License Handling ==		AddLicenseHooks()		resetFailover()	})	logic.EnterpriseFailoverFunc = eelogic.SetFailover	logic.EnterpriseResetFailoverFunc = eelogic.ResetFailover	logic.EnterpriseResetAllPeersFailovers = eelogic.WipeAffectedFailoversOnly}func setControllerLimits() {	logic.Node_Limit = Limits.Nodes	logic.Users_Limit = Limits.Users	logic.Clients_Limit = Limits.Clients	logic.Free_Tier = Limits.FreeTier	servercfg.Is_EE = true	if logic.Free_Tier {		logic.Networks_Limit = 3	}}func resetFailover() {	nets, err := logic.GetNetworks()	if err == nil {		for _, net := range nets {			err = eelogic.ResetFailover(net.NetID)			if err != nil {				logger.Log(0, "failed to reset failover on network", net.NetID, ":", err.Error())			}		}	}}func retrieveEELogo() string {	return `               __   __     ______     ______   __    __     ______     __  __     ______     ______    /\ "-.\ \   /\  ___\   /\__  _\ /\ "-./  \   /\  __ \   /\ \/ /    /\  ___\   /\  == \   \ \ \-.  \  \ \  __\   \/_/\ \/ \ \ \-./\ \  \ \  __ \  \ \  _"-.  \ \  __\   \ \  __<    \ \_\\"\_\  \ \_____\    \ \_\  \ \_\ \ \_\  \ \_\ \_\  \ \_\ \_\  \ \_____\  \ \_\ \_\   \/_/ \/_/   \/_____/     \/_/   \/_/  \/_/   \/_/\/_/   \/_/\/_/   \/_____/   \/_/ /_/                                                                                          																							                                    ___    ___   ____                                   ____  ____  ____       / _ \  / _ \ / __ \       ____  ____  ____          /___/ /___/ /___/      / ___/ / , _// /_/ /      /___/ /___/ /___/         /___/ /___/ /___/      /_/    /_/|_| \____/      /___/ /___/ /___/                                                                             `}
 |