New dynamic URL match

This commit is contained in:
mr
2026-02-12 13:20:06 +01:00
parent 1895b7ac8a
commit 7e8546bbea
4 changed files with 79 additions and 21 deletions

View File

@@ -20,6 +20,13 @@ type Config struct {
Whitelist bool Whitelist bool
PrivateKeyPath string PrivateKeyPath string
PublicKeyPath string PublicKeyPath string
InternalCatalogAPI string
InternalSharedAPI string
InternalWorkflowAPI string
InternalWorkspaceAPI string
InternalPeerAPI string
InternalDatacenterAPI string
} }
func (c Config) GetUrl() string { func (c Config) GetUrl() string {
@@ -40,7 +47,9 @@ func GetConfig() *Config {
return instance return instance
} }
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int, pkPath, ppPath string) *Config { func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int,
pkPath, ppPath,
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI string) *Config {
GetConfig().MongoUrl = mongoUrl GetConfig().MongoUrl = mongoUrl
GetConfig().MongoDatabase = database GetConfig().MongoDatabase = database
GetConfig().NATSUrl = natsUrl GetConfig().NATSUrl = natsUrl
@@ -50,5 +59,12 @@ func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string,
GetConfig().APIPort = port GetConfig().APIPort = port
GetConfig().PrivateKeyPath = pkPath GetConfig().PrivateKeyPath = pkPath
GetConfig().PublicKeyPath = ppPath GetConfig().PublicKeyPath = ppPath
GetConfig().InternalCatalogAPI = internalCatalogAPI
GetConfig().InternalSharedAPI = internalSharedAPI
GetConfig().InternalWorkflowAPI = internalWorkflowAPI
GetConfig().InternalWorkspaceAPI = internalWorkspaceAPI
GetConfig().InternalPeerAPI = internalPeerAPI
GetConfig().InternalDatacenterAPI = internalDatacenterAPI
return GetConfig() return GetConfig()
} }

View File

@@ -92,7 +92,7 @@ func GenerateNodeID() (string, error) {
// will turn into standards api hostnames // will turn into standards api hostnames
func (d LibDataEnum) API() string { func (d LibDataEnum) API() string {
return tools.DefaultAPI[d] return tools.DefaultAPI[d]()
} }
// will turn into standards name // will turn into standards name
@@ -151,6 +151,13 @@ func InitDaemon(appName string) {
o.GetIntDefault("API_PORT", 8080), o.GetIntDefault("API_PORT", 8080),
o.GetStringDefault("PUBLIC_KEY_PATH", "./pem/public.pem"), o.GetStringDefault("PUBLIC_KEY_PATH", "./pem/public.pem"),
o.GetStringDefault("PRIVATE_KEY_PATH", "./pem/private.pem"), o.GetStringDefault("PRIVATE_KEY_PATH", "./pem/private.pem"),
o.GetStringDefault("INTERNAL_CATALOG_API", "oc-catalog"),
o.GetStringDefault("INTERNAL_SHARED_API", "oc-shared"),
o.GetStringDefault("INTERNAL_WORKFLOW_API", "oc-workflow"),
o.GetStringDefault("INTERNAL_WORKSPACE_API", "oc-workspace"),
o.GetStringDefault("INTERNAL_PEER_API", "oc-peer"),
o.GetStringDefault("INTERNAL_DATACENTER_API", "oc-datacenter"),
) )
// Beego init // Beego init
beego.BConfig.AppName = appName beego.BConfig.AppName = appName
@@ -238,8 +245,10 @@ 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, port int, pkpath string, pppath string) *config.Config { func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string,
cfg := config.SetConfig(mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath) port int, pkpath string, pppath string,
internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI string) *config.Config {
cfg := config.SetConfig(mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath, internalCatalogAPI, internalSharedAPI, internalWorkflowAPI, internalWorkspaceAPI, internalPeerAPI, internalDatacenterAPI)
defer func() { defer func() {
if r := recover(); r != nil { if r := recover(); r != nil {
tools.UncatchedError = append(tools.UncatchedError, errors.New("Panic recovered in Init : "+fmt.Sprintf("%v", r)+" - "+string(debug.Stack()))) tools.UncatchedError = append(tools.UncatchedError, errors.New("Panic recovered in Init : "+fmt.Sprintf("%v", r)+" - "+string(debug.Stack())))

View File

@@ -41,6 +41,7 @@ func CheckPeerStatus(peerID string, appName string) (*Peer, bool) {
return nil, false return nil, false
} }
url := urlFormat(res.(*Peer).APIUrl, tools.PEER) + "/status" // Format the URL url := urlFormat(res.(*Peer).APIUrl, tools.PEER) + "/status" // Format the URL
fmt.Println(url)
state, services := api.CheckRemotePeer(url) state, services := api.CheckRemotePeer(url)
res.(*Peer).ServicesState = services // Update the services states of the peer res.(*Peer).ServicesState = services // Update the services states of the peer
access.UpdateOne(res, peerID) // Update the peer in the db access.UpdateOne(res, peerID) // Update the peer in the db

View File

@@ -1,6 +1,10 @@
package tools package tools
import "strings" import (
"strings"
"cloud.o-forge.io/core/oc-lib/config"
)
type DataType int type DataType int
@@ -36,23 +40,51 @@ const (
NATIVE_TOOL NATIVE_TOOL
) )
var NOAPI = "" var NOAPI = func() string {
var CATALOGAPI = "oc-catalog" return ""
var SHAREDAPI = "oc-shared" }
var WORKFLOWAPI = "oc-workflow" var CATALOGAPI = func() string {
var WORKSPACEAPI = "oc-workspace" return config.GetConfig().InternalCatalogAPI
var PEERSAPI = "oc-peer" }
var DATACENTERAPI = "oc-datacenter" var SHAREDAPI = func() string {
var PURCHASEAPI = "oc-catalog/purchase" return config.GetConfig().InternalSharedAPI
var ADMIRALTY_SOURCEAPI = DATACENTERAPI + "/admiralty/source" }
var ADMIRALTY_TARGETAPI = DATACENTERAPI + "/admiralty/target" var WORKFLOWAPI = func() string {
var ADMIRALTY_SECRETAPI = DATACENTERAPI + "/admiralty/secret" return config.GetConfig().InternalWorkflowAPI
var ADMIRALTY_KUBECONFIGAPI = DATACENTERAPI + "/admiralty/kubeconfig" }
var ADMIRALTY_NODESAPI = DATACENTERAPI + "/admiralty/node" var WORKSPACEAPI = func() string {
var MINIO = DATACENTERAPI + "/minio" return config.GetConfig().InternalWorkspaceAPI
}
var PEERSAPI = func() string {
return config.GetConfig().InternalPeerAPI
}
var DATACENTERAPI = func() string {
return config.GetConfig().InternalDatacenterAPI
}
var PURCHASEAPI = func() string {
return config.GetConfig().InternalCatalogAPI + "/purchase"
}
var ADMIRALTY_SOURCEAPI = func() string {
return config.GetConfig().InternalDatacenterAPI + "/admiralty/source"
}
var ADMIRALTY_TARGETAPI = func() string {
return config.GetConfig().InternalDatacenterAPI + "/admiralty/target"
}
var ADMIRALTY_SECRETAPI = func() string {
return config.GetConfig().InternalDatacenterAPI + "/admiralty/secret"
}
var ADMIRALTY_KUBECONFIGAPI = func() string {
return config.GetConfig().InternalDatacenterAPI + "/admiralty/kubeconfig"
}
var ADMIRALTY_NODESAPI = func() string {
return config.GetConfig().InternalDatacenterAPI + "/admiralty/node"
}
var MINIO = func() string {
return config.GetConfig().InternalDatacenterAPI + "/minio"
}
// Bind the standard API name to the data type // Bind the standard API name to the data type
var DefaultAPI = [...]string{ var DefaultAPI = [...]func() string{
NOAPI, NOAPI,
CATALOGAPI, CATALOGAPI,
CATALOGAPI, CATALOGAPI,
@@ -120,7 +152,7 @@ func FromInt(i int) string {
} }
func (d DataType) API() string { // API - Returns the API name of the data type func (d DataType) API() string { // API - Returns the API name of the data type
return DefaultAPI[d] return DefaultAPI[d]()
} }
func (d DataType) String() string { // String - Returns the string name of the data type func (d DataType) String() string { // String - Returns the string name of the data type