mirror of
https://github.com/gravitl/netmaker.git
synced 2024-11-10 17:48:25 +08:00
b78cc0a8a1
* api to to get host relayed from client * add auto relay to api host * add peer nat type * set pro field on signal * rm net check on relay me handler * return success response * re-establish failover logic * set failOver ctx * failOver with peer pub key * failovered peer updates * failover handlers, reset failovered peer on deletion * rm unused funcs * initialize failover handler on EE * ignore failover node on signal * failover changes * set host id on signal * extend signal model to include node ids * add backwards compatibility * add failover as node api * set json response on failover handers * add failover field to api node * fix signal data check * initialize failover peer map * reset failovered status when relayed or deleted * add failover info to api node * reset network failover * only proceed furtuer if failover exists in the network * set failOver node defaults * cannot set failover node as relayed * debug log * debug log * debug changes * debug changes * debug changes * revert debug changes * don't add peers to idmap when removed * reset failed Over * fix static checks * rm debug log * add check for linux host
81 lines
3.1 KiB
Go
81 lines
3.1 KiB
Go
//go:build ee
|
|
// +build ee
|
|
|
|
package pro
|
|
|
|
import (
|
|
controller "github.com/gravitl/netmaker/controllers"
|
|
"github.com/gravitl/netmaker/logic"
|
|
"github.com/gravitl/netmaker/models"
|
|
"github.com/gravitl/netmaker/mq"
|
|
proControllers "github.com/gravitl/netmaker/pro/controllers"
|
|
proLogic "github.com/gravitl/netmaker/pro/logic"
|
|
"github.com/gravitl/netmaker/servercfg"
|
|
"golang.org/x/exp/slog"
|
|
)
|
|
|
|
// InitPro - Initialize Pro Logic
|
|
func InitPro() {
|
|
servercfg.IsPro = true
|
|
models.SetLogo(retrieveProLogo())
|
|
controller.HttpMiddlewares = append(
|
|
controller.HttpMiddlewares,
|
|
proControllers.OnlyServerAPIWhenUnlicensedMiddleware,
|
|
)
|
|
controller.HttpHandlers = append(
|
|
controller.HttpHandlers,
|
|
proControllers.MetricHandlers,
|
|
proControllers.RelayHandlers,
|
|
proControllers.UserHandlers,
|
|
proControllers.FailOverHandlers,
|
|
)
|
|
logic.EnterpriseCheckFuncs = append(logic.EnterpriseCheckFuncs, func() {
|
|
// == License Handling ==
|
|
ClearLicenseCache()
|
|
if err := ValidateLicense(); err != nil {
|
|
slog.Error(err.Error())
|
|
return
|
|
}
|
|
slog.Info("proceeding with Paid Tier license")
|
|
logic.SetFreeTierForTelemetry(false)
|
|
// == End License Handling ==
|
|
AddLicenseHooks()
|
|
if servercfg.GetServerConfig().RacAutoDisable {
|
|
AddRacHooks()
|
|
}
|
|
})
|
|
logic.ResetFailOver = proLogic.ResetFailOver
|
|
logic.ResetFailedOverPeer = proLogic.ResetFailedOverPeer
|
|
logic.DenyClientNodeAccess = proLogic.DenyClientNode
|
|
logic.IsClientNodeAllowed = proLogic.IsClientNodeAllowed
|
|
logic.AllowClientNodeAccess = proLogic.RemoveDeniedNodeFromClient
|
|
logic.SetClientDefaultACLs = proLogic.SetClientDefaultACLs
|
|
logic.SetClientACLs = proLogic.SetClientACLs
|
|
logic.UpdateProNodeACLs = proLogic.UpdateProNodeACLs
|
|
logic.GetMetrics = proLogic.GetMetrics
|
|
logic.UpdateMetrics = proLogic.UpdateMetrics
|
|
logic.DeleteMetrics = proLogic.DeleteMetrics
|
|
logic.GetRelays = proLogic.GetRelays
|
|
logic.GetAllowedIpsForRelayed = proLogic.GetAllowedIpsForRelayed
|
|
logic.RelayedAllowedIPs = proLogic.RelayedAllowedIPs
|
|
logic.UpdateRelayed = proLogic.UpdateRelayed
|
|
logic.SetRelayedNodes = proLogic.SetRelayedNodes
|
|
logic.RelayUpdates = proLogic.RelayUpdates
|
|
mq.UpdateMetrics = proLogic.MQUpdateMetrics
|
|
}
|
|
|
|
func retrieveProLogo() string {
|
|
return `
|
|
__ __ ______ ______ __ __ ______ __ __ ______ ______
|
|
/\ "-.\ \ /\ ___\ /\__ _\ /\ "-./ \ /\ __ \ /\ \/ / /\ ___\ /\ == \
|
|
\ \ \-. \ \ \ __\ \/_/\ \/ \ \ \-./\ \ \ \ __ \ \ \ _"-. \ \ __\ \ \ __<
|
|
\ \_\\"\_\ \ \_____\ \ \_\ \ \_\ \ \_\ \ \_\ \_\ \ \_\ \_\ \ \_____\ \ \_\ \_\
|
|
\/_/ \/_/ \/_____/ \/_/ \/_/ \/_/ \/_/\/_/ \/_/\/_/ \/_____/ \/_/ /_/
|
|
|
|
___ ___ ____
|
|
____ ____ ____ / _ \ / _ \ / __ \ ____ ____ ____
|
|
/___/ /___/ /___/ / ___/ / , _// /_/ / /___/ /___/ /___/
|
|
/___/ /___/ /___/ /_/ /_/|_| \____/ /___/ /___/ /___/
|
|
|
|
`
|
|
}
|