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
PrivateKeyPath string
PublicKeyPath string
InternalCatalogAPI string
InternalSharedAPI string
InternalWorkflowAPI string
InternalWorkspaceAPI string
InternalPeerAPI string
InternalDatacenterAPI string
}
func (c Config) GetUrl() string {
@@ -40,7 +47,9 @@ func GetConfig() *Config {
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().MongoDatabase = database
GetConfig().NATSUrl = natsUrl
@@ -50,5 +59,12 @@ func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string,
GetConfig().APIPort = port
GetConfig().PrivateKeyPath = pkPath
GetConfig().PublicKeyPath = ppPath
GetConfig().InternalCatalogAPI = internalCatalogAPI
GetConfig().InternalSharedAPI = internalSharedAPI
GetConfig().InternalWorkflowAPI = internalWorkflowAPI
GetConfig().InternalWorkspaceAPI = internalWorkspaceAPI
GetConfig().InternalPeerAPI = internalPeerAPI
GetConfig().InternalDatacenterAPI = internalDatacenterAPI
return GetConfig()
}

View File

@@ -92,7 +92,7 @@ func GenerateNodeID() (string, error) {
// will turn into standards api hostnames
func (d LibDataEnum) API() string {
return tools.DefaultAPI[d]
return tools.DefaultAPI[d]()
}
// will turn into standards name
@@ -151,6 +151,13 @@ func InitDaemon(appName string) {
o.GetIntDefault("API_PORT", 8080),
o.GetStringDefault("PUBLIC_KEY_PATH", "./pem/public.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.BConfig.AppName = appName
@@ -238,8 +245,10 @@ func GetLogger() zerolog.Logger {
* @param logLevel string
* @return *Config
*/
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string, port int, pkpath string, pppath string) *config.Config {
cfg := config.SetConfig(mongoUrl, database, natsUrl, lokiUrl, logLevel, port, pkpath, pppath)
func SetConfig(mongoUrl string, database string, natsUrl string, lokiUrl string, logLevel string,
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() {
if r := recover(); r != nil {
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
}
url := urlFormat(res.(*Peer).APIUrl, tools.PEER) + "/status" // Format the URL
fmt.Println(url)
state, services := api.CheckRemotePeer(url)
res.(*Peer).ServicesState = services // Update the services states of the peer
access.UpdateOne(res, peerID) // Update the peer in the db

View File

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