Explorar o código

fix sever settings migration

abhishek9686 hai 5 meses
pai
achega
d520159a59
Modificáronse 8 ficheiros con 42 adicións e 58 borrados
  1. 30 42
      logic/settings.go
  2. 4 5
      migrate/migrate.go
  3. 0 4
      models/settings.go
  4. 1 1
      pro/controllers/users.go
  5. 1 1
      pro/email/email.go
  6. 2 3
      pro/email/invite.go
  7. 2 0
      pro/initialize.go
  8. 2 2
      pro/license.go

+ 30 - 42
logic/settings.go

@@ -41,36 +41,36 @@ func ValidateNewSettings(req models.ServerSettings) bool {
 	return true
 }
 
-func ConvertServerCfgToSettings(c config.ServerConfig) (s models.ServerSettings) {
-	s.NetclientAutoUpdate = c.NetclientAutoUpdate != "disabled"
-	s.AllowedEmailDomains = c.AllowedEmailDomains
-	s.AuthProvider = c.AuthProvider
-	s.AzureTenant = c.AzureTenant
-	s.BasicAuth = c.BasicAuth == "yes"
-	s.ClientID = c.ClientID
-	s.ClientSecret = c.ClientSecret
-	s.OIDCIssuer = c.OIDCIssuer
-	s.EmailSenderAddr = c.EmailSenderAddr
-	s.EmailSenderPassword = c.EmailSenderPassword
-	s.EmailSenderUser = c.EmailSenderUser
-	s.EndpointDetection = c.EndpointDetection
-	s.SmtpHost = c.SmtpHost
-	s.SmtpPort = c.SmtpPort
-	s.Stun = c.Stun
-	s.StunServers = c.StunServers
-	s.FrontendURL = c.FrontendURL
-	s.JwtValidityDuration = c.JwtValidityDuration
-	s.AllowedEmailDomains = c.AllowedEmailDomains
-	s.LicenseValue = c.LicenseValue
-	s.NetmakerTenantID = c.NetmakerTenantID
-	s.ManageDNS = c.ManageDNS
-	s.MetricInterval = c.MetricInterval
-	s.MetricsPort = c.MetricsPort
-	s.NetclientAutoUpdate = c.NetclientAutoUpdate != "disabled"
-	s.Telemetry = c.Telemetry
-	s.RacAutoDisable = c.RacAutoDisable
-	s.RacRestrictToSingleNetwork = c.RacRestrictToSingleNetwork
-	s.DefaultDomain = c.DefaultDomain
+func GetServerSettingsFromEnv() (s models.ServerSettings) {
+
+	s = models.ServerSettings{
+		NetclientAutoUpdate:        servercfg.AutoUpdateEnabled(),
+		Verbosity:                  servercfg.GetVerbosity(),
+		AuthProvider:               os.Getenv("AUTH_PROVIDER"),
+		OIDCIssuer:                 os.Getenv("OIDC_ISSUER"),
+		ClientID:                   os.Getenv("CLIENT_ID"),
+		ClientSecret:               os.Getenv("CLIENT_SECRET"),
+		AzureTenant:                servercfg.GetAzureTenant(),
+		Telemetry:                  servercfg.Telemetry(),
+		BasicAuth:                  servercfg.IsBasicAuthEnabled(),
+		JwtValidityDuration:        servercfg.GetJwtValidityDuration(),
+		RacAutoDisable:             servercfg.GetRacAutoDisable(),
+		RacRestrictToSingleNetwork: servercfg.GetRacRestrictToSingleNetwork(),
+		EndpointDetection:          servercfg.IsEndpointDetectionEnabled(),
+		AllowedEmailDomains:        servercfg.GetAllowedEmailDomains(),
+		EmailSenderAddr:            servercfg.GetSenderEmail(),
+		EmailSenderUser:            servercfg.GetSenderUser(),
+		EmailSenderPassword:        servercfg.GetEmaiSenderPassword(),
+		SmtpHost:                   servercfg.GetSmtpHost(),
+		SmtpPort:                   servercfg.GetSmtpPort(),
+		MetricInterval:             servercfg.GetMetricInterval(),
+		MetricsPort:                servercfg.GetMetricsPort(),
+		ManageDNS:                  servercfg.GetManageDNS(),
+		DefaultDomain:              servercfg.GetDefaultDomain(),
+		Stun:                       servercfg.IsStunEnabled(),
+		StunServers:                servercfg.GetStunServers(),
+	}
+
 	return
 }
 
@@ -135,8 +135,6 @@ func GetServerConfig() config.ServerConfig {
 	cfg.Stun = IsStunEnabled()
 	cfg.StunServers = GetStunServers()
 	cfg.DefaultDomain = GetDefaultDomain()
-	cfg.LicenseValue = GetLicenseKey()
-	cfg.NetmakerTenantID = GetNetmakerTenantID()
 	return cfg
 }
 
@@ -297,16 +295,6 @@ func IsBasicAuthEnabled() bool {
 	return GetServerSettings().BasicAuth
 }
 
-// GetLicenseKey - retrieves pro license value from env or conf files
-func GetLicenseKey() string {
-	return GetServerSettings().LicenseValue
-}
-
-// GetNetmakerTenantID - get's the associated, Netmaker, tenant ID to verify ownership
-func GetNetmakerTenantID() string {
-	return GetServerSettings().NetmakerTenantID
-}
-
 // IsEndpointDetectionEnabled - returns true if endpoint detection enabled
 func IsEndpointDetectionEnabled() bool {
 	return GetServerSettings().EndpointDetection

+ 4 - 5
migrate/migrate.go

@@ -499,9 +499,8 @@ func migrateToGws() {
 }
 
 func settings() {
-	_, err := database.FetchRecords(database.SERVER_SETTINGS)
-	if database.IsEmptyRecord(err) {
-		serverCfg := servercfg.GetServerConfig()
-		logic.UpsertServerSettings(logic.ConvertServerCfgToSettings(serverCfg))
-	}
+	//_, err := database.FetchRecords(database.SERVER_SETTINGS)
+	//if database.IsEmptyRecord(err) {
+	logic.UpsertServerSettings(logic.GetServerSettingsFromEnv())
+	//}
 }

+ 0 - 4
models/settings.go

@@ -9,13 +9,9 @@ type ServerSettings struct {
 	OIDCIssuer                 string        `json:"oidcissuer"`
 	ClientID                   string        `json:"client_id"`
 	ClientSecret               string        `json:"client_secret"`
-	FrontendURL                string        `json:"frontend_url"`
 	AzureTenant                string        `json:"azure_tenant"`
 	Telemetry                  string        `json:"telemetry"`
 	BasicAuth                  bool          `json:"basic_auth"`
-	LicenseValue               string        `json:"license_value"`
-	NetmakerTenantID           string        `json:"netmaker_tenant_id"`
-	StunPort                   int           `json:"stun_port"`
 	JwtValidityDuration        time.Duration `json:"jwt_validity_duration" swaggertype:"primitive,integer" format:"int64"`
 	RacAutoDisable             bool          `json:"rac_auto_disable"`
 	RacRestrictToSingleNetwork bool          `json:"rac_restrict_to_single_network"`

+ 1 - 1
pro/controllers/users.go

@@ -237,7 +237,7 @@ func inviteUsers(w http.ResponseWriter, r *http.Request) {
 		}
 		if servercfg.DeployedByOperator() {
 			u, err = url.Parse(fmt.Sprintf("%s/invite?tenant_id=%s&email=%s&invite_code=%s",
-				proLogic.GetAccountsUIHost(), url.QueryEscape(logic.GetNetmakerTenantID()), url.QueryEscape(invite.Email), url.QueryEscape(invite.InviteCode)))
+				proLogic.GetAccountsUIHost(), url.QueryEscape(servercfg.GetNetmakerTenantID()), url.QueryEscape(invite.Email), url.QueryEscape(invite.InviteCode)))
 			if err != nil {
 				slog.Error("failed to parse to invite url", "error", err)
 				return

+ 1 - 1
pro/email/email.go

@@ -16,7 +16,7 @@ const (
 	Resend EmailSenderType = "resend"
 )
 
-func init() {
+func Init() {
 
 	smtpSender := &SmtpSender{
 		SmtpHost:    logic.GetSmtpHost(),

+ 2 - 3
pro/email/invite.go

@@ -3,7 +3,6 @@ package email
 import (
 	"fmt"
 
-	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
 	proLogic "github.com/gravitl/netmaker/pro/logic"
 	"github.com/gravitl/netmaker/servercfg"
@@ -28,7 +27,7 @@ func (invite UserInvitedMail) GetBody(info Notification) string {
 
 	dashboardURL := fmt.Sprintf("https://dashboard.%s", servercfg.GetNmBaseDomain())
 	if servercfg.DeployedByOperator() {
-		dashboardURL = fmt.Sprintf("%s/dashboard?tenant_id=%s", proLogic.GetAccountsUIHost(), logic.GetNetmakerTenantID())
+		dashboardURL = fmt.Sprintf("%s/dashboard?tenant_id=%s", proLogic.GetAccountsUIHost(), servercfg.GetNetmakerTenantID())
 	}
 
 	content := invite.BodyBuilder.
@@ -45,7 +44,7 @@ func (invite UserInvitedMail) GetBody(info Notification) string {
 			WithHtml(fmt.Sprintf("<li>Access the <a href=\"%s\">Netmaker Dashboard</a> - use it to manage your network settings and view network status.</li>", dashboardURL))
 	}
 
-	connectionID := logic.GetNetmakerTenantID()
+	connectionID := servercfg.GetNetmakerTenantID()
 	if !servercfg.DeployedByOperator() {
 		connectionID = fmt.Sprintf("api.%s", servercfg.GetNmBaseDomain())
 	}

+ 2 - 0
pro/initialize.go

@@ -13,6 +13,7 @@ import (
 	"github.com/gravitl/netmaker/mq"
 	"github.com/gravitl/netmaker/pro/auth"
 	proControllers "github.com/gravitl/netmaker/pro/controllers"
+	"github.com/gravitl/netmaker/pro/email"
 	proLogic "github.com/gravitl/netmaker/pro/logic"
 	"github.com/gravitl/netmaker/servercfg"
 	"golang.org/x/exp/slog"
@@ -91,6 +92,7 @@ func InitPro() {
 		}
 		proLogic.LoadNodeMetricsToCache()
 		proLogic.InitFailOverCache()
+		email.Init()
 	})
 	logic.ResetFailOver = proLogic.ResetFailOver
 	logic.ResetFailedOverPeer = proLogic.ResetFailedOverPeer

+ 2 - 2
pro/license.go

@@ -59,8 +59,8 @@ func ValidateLicense() (err error) {
 		servercfg.ErrLicenseValidation = err
 	}()
 
-	licenseKeyValue := logic.GetServerSettings().LicenseValue
-	netmakerTenantID := logic.GetServerSettings().NetmakerTenantID
+	licenseKeyValue := servercfg.GetLicenseKey()
+	netmakerTenantID := servercfg.GetNetmakerTenantID()
 	slog.Info("proceeding with Netmaker license validation...")
 	if len(licenseKeyValue) == 0 {
 		err = errors.New("empty license-key (LICENSE_KEY environment variable)")