Api Struct + Nano env
This commit is contained in:
@@ -9,6 +9,9 @@ import "sync"
|
|||||||
// ===================================================
|
// ===================================================
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
IsApi bool
|
||||||
|
IsNano bool
|
||||||
|
|
||||||
APIPort int
|
APIPort int
|
||||||
NATSUrl string
|
NATSUrl string
|
||||||
MongoUrl string
|
MongoUrl string
|
||||||
@@ -48,10 +51,13 @@ func GetConfig() *Config {
|
|||||||
return instance
|
return instance
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int,
|
func SetConfig(isNano bool, isAPI bool, mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int,
|
||||||
pkPath, ppPath,
|
pkPath, ppPath,
|
||||||
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI,
|
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI,
|
||||||
internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *Config {
|
internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *Config {
|
||||||
|
GetConfig().IsNano = isNano
|
||||||
|
GetConfig().IsApi = isAPI
|
||||||
|
|
||||||
GetConfig().MongoUrl = mongoUrl
|
GetConfig().MongoUrl = mongoUrl
|
||||||
GetConfig().MongoDatabase = database
|
GetConfig().MongoDatabase = database
|
||||||
GetConfig().NATSUrl = natsUrl
|
GetConfig().NATSUrl = natsUrl
|
||||||
|
|||||||
@@ -155,6 +155,9 @@ func InitDaemon(appName string) {
|
|||||||
// resources.InitNative()
|
// resources.InitNative()
|
||||||
// feed the library with the loaded config
|
// feed the library with the loaded config
|
||||||
SetConfig(
|
SetConfig(
|
||||||
|
o.GetBoolDefault("IS_NANO", false),
|
||||||
|
o.GetBoolDefault("IS_API", true),
|
||||||
|
|
||||||
o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"),
|
o.GetStringDefault("MONGO_URL", "mongodb://127.0.0.1:27017"),
|
||||||
o.GetStringDefault("MONGO_DATABASE", "DC_myDC"),
|
o.GetStringDefault("MONGO_DATABASE", "DC_myDC"),
|
||||||
o.GetStringDefault("NATS_URL", "nats://localhost:4222"),
|
o.GetStringDefault("NATS_URL", "nats://localhost:4222"),
|
||||||
@@ -172,11 +175,13 @@ func InitDaemon(appName string) {
|
|||||||
o.GetStringDefault("INTERNAL_DATACENTER_API", "oc-datacenter"),
|
o.GetStringDefault("INTERNAL_DATACENTER_API", "oc-datacenter"),
|
||||||
o.GetStringDefault("INTERNAL_SCHEDULER_API", "oc-scheduler"),
|
o.GetStringDefault("INTERNAL_SCHEDULER_API", "oc-scheduler"),
|
||||||
)
|
)
|
||||||
|
if config.GetConfig().IsApi {
|
||||||
// Beego init
|
// Beego init
|
||||||
beego.BConfig.AppName = appName
|
beego.BConfig.AppName = appName
|
||||||
beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080)
|
beego.BConfig.Listen.HTTPPort = o.GetIntDefault("port", 8080)
|
||||||
beego.BConfig.WebConfig.DirectoryIndex = true
|
beego.BConfig.WebConfig.DirectoryIndex = true
|
||||||
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type IDTokenClaims struct {
|
type IDTokenClaims struct {
|
||||||
@@ -280,6 +285,7 @@ func extractFromToken(token string, attr string) string {
|
|||||||
|
|
||||||
func InitAPI(appName string, extraRoutes ...map[string][]string) {
|
func InitAPI(appName string, extraRoutes ...map[string][]string) {
|
||||||
InitDaemon(appName)
|
InitDaemon(appName)
|
||||||
|
if config.GetConfig().IsApi {
|
||||||
beego.BConfig.Listen.HTTPPort = config.GetConfig().APIPort
|
beego.BConfig.Listen.HTTPPort = config.GetConfig().APIPort
|
||||||
beego.BConfig.WebConfig.DirectoryIndex = true
|
beego.BConfig.WebConfig.DirectoryIndex = true
|
||||||
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
|
||||||
@@ -291,8 +297,10 @@ func InitAPI(appName string, extraRoutes ...map[string][]string) {
|
|||||||
AllowCredentials: true,
|
AllowCredentials: true,
|
||||||
})
|
})
|
||||||
beego.InsertFilter("*", beego.BeforeRouter, c)
|
beego.InsertFilter("*", beego.BeforeRouter, c)
|
||||||
|
|
||||||
api := &tools.API{}
|
api := &tools.API{}
|
||||||
api.Discovered(beego.BeeApp.Handlers.GetAllControllerInfo(), extraRoutes...)
|
api.Discovered(beego.BeeApp.Handlers.GetAllControllerInfo(), extraRoutes...)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -314,11 +322,11 @@ func GetLogger() zerolog.Logger {
|
|||||||
* @param logLevel string
|
* @param logLevel string
|
||||||
* @return *Config
|
* @return *Config
|
||||||
*/
|
*/
|
||||||
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string,
|
func SetConfig(isNano bool, isApi bool, mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string,
|
||||||
port int, pppath string, pkpath string,
|
port int, pppath string, pkpath string,
|
||||||
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI,
|
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI,
|
||||||
internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *config.Config {
|
internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI string, internalSchedulerAPI string) *config.Config {
|
||||||
cfg := config.SetConfig(mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI,
|
cfg := config.SetConfig(isNano, isApi, mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI,
|
||||||
internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI, internalSchedulerAPI)
|
internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI, internalSchedulerAPI)
|
||||||
defer func() {
|
defer func() {
|
||||||
if r := recover(); r != nil {
|
if r := recover(); r != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user