initialize.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //go:build ee
  2. // +build ee
  3. package ee
  4. import (
  5. controller "github.com/gravitl/netmaker/controllers"
  6. "github.com/gravitl/netmaker/ee/ee_controllers"
  7. eelogic "github.com/gravitl/netmaker/ee/logic"
  8. "github.com/gravitl/netmaker/logger"
  9. "github.com/gravitl/netmaker/logic"
  10. "github.com/gravitl/netmaker/models"
  11. "github.com/gravitl/netmaker/servercfg"
  12. )
  13. // InitEE - Initialize EE Logic
  14. func InitEE() {
  15. setIsEnterprise()
  16. models.SetLogo(retrieveEELogo())
  17. controller.HttpHandlers = append(controller.HttpHandlers, ee_controllers.MetricHandlers)
  18. logic.EnterpriseCheckFuncs = append(logic.EnterpriseCheckFuncs, func() {
  19. // == License Handling ==
  20. ValidateLicense()
  21. if Limits.FreeTier {
  22. logger.Log(0, "proceeding with Free Tier license")
  23. } else {
  24. logger.Log(0, "proceeding with Paid Tier license")
  25. }
  26. // == End License Handling ==
  27. AddLicenseHooks()
  28. resetFailover()
  29. })
  30. logic.EnterpriseFailoverFunc = eelogic.SetFailover
  31. logic.EnterpriseResetFailoverFunc = eelogic.ResetFailover
  32. logic.EnterpriseResetAllPeersFailovers = eelogic.WipeAffectedFailoversOnly
  33. }
  34. func setControllerLimits() {
  35. logic.Node_Limit = Limits.Nodes
  36. logic.Users_Limit = Limits.Users
  37. logic.Clients_Limit = Limits.Clients
  38. logic.Free_Tier = Limits.FreeTier
  39. servercfg.Is_EE = true
  40. }
  41. func resetFailover() {
  42. nets, err := logic.GetNetworks()
  43. if err == nil {
  44. for _, net := range nets {
  45. err = eelogic.ResetFailover(net.NetID)
  46. if err != nil {
  47. logger.Log(0, "failed to reset failover on network", net.NetID, ":", err.Error())
  48. }
  49. }
  50. }
  51. }
  52. func retrieveEELogo() string {
  53. return `
  54. __ __ ______ ______ __ __ ______ __ __ ______ ______
  55. /\ "-.\ \ /\ ___\ /\__ _\ /\ "-./ \ /\ __ \ /\ \/ / /\ ___\ /\ == \
  56. \ \ \-. \ \ \ __\ \/_/\ \/ \ \ \-./\ \ \ \ __ \ \ \ _"-. \ \ __\ \ \ __<
  57. \ \_\\"\_\ \ \_____\ \ \_\ \ \_\ \ \_\ \ \_\ \_\ \ \_\ \_\ \ \_____\ \ \_\ \_\
  58. \/_/ \/_/ \/_____/ \/_/ \/_/ \/_/ \/_/\/_/ \/_/\/_/ \/_____/ \/_/ /_/
  59. ___ ___ ____
  60. ____ ____ ____ / _ \ / _ \ / __ \ ____ ____ ____
  61. /___/ /___/ /___/ / ___/ / , _// /_/ / /___/ /___/ /___/
  62. /___/ /___/ /___/ /_/ /_/|_| \____/ /___/ /___/ /___/
  63. `
  64. }