From 7e8546bbeae6c5f47c0db50f25235df01bdde289 Mon Sep 17 00:00:00 2001 From: mr Date: Thu, 12 Feb 2026 13:20:06 +0100 Subject: [PATCH] New dynamic URL match --- config/conf.go | 18 ++++++++++- entrypoint.go | 15 +++++++-- models/peer/peer_cache.go | 1 + tools/enums.go | 66 +++++++++++++++++++++++++++++---------- 4 files changed, 79 insertions(+), 21 deletions(-) diff --git a/config/conf.go b/config/conf.go index 37b6337..064f0f9 100644 --- a/config/conf.go +++ b/config/conf.go @@ -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() } diff --git a/entrypoint.go b/entrypoint.go index 73ce136..b1403bd 100644 --- a/entrypoint.go +++ b/entrypoint.go @@ -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()))) diff --git a/models/peer/peer_cache.go b/models/peer/peer_cache.go index c587f38..af8ea35 100644 --- a/models/peer/peer_cache.go +++ b/models/peer/peer_cache.go @@ -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 diff --git a/tools/enums.go b/tools/enums.go index bbda0df..5c2ea75 100644 --- a/tools/enums.go +++ b/tools/enums.go @@ -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