Discovery Nats automate

This commit is contained in:
mr
2024-08-22 13:11:21 +02:00
parent ce34345914
commit 0bfe87793b
8 changed files with 227 additions and 13 deletions

View File

@@ -8,6 +8,7 @@ import (
"cloud.o-forge.io/core/oc-lib/dbs/mongo"
"cloud.o-forge.io/core/oc-lib/logs"
"cloud.o-forge.io/core/oc-lib/models"
"cloud.o-forge.io/core/oc-lib/models/discovery"
"cloud.o-forge.io/core/oc-lib/models/peer"
"cloud.o-forge.io/core/oc-lib/models/resource_model"
"cloud.o-forge.io/core/oc-lib/models/resources/data"
@@ -43,6 +44,7 @@ const (
SHARED_WORKSPACE = utils.SHARED_WORKSPACE
RULE = utils.RULE
BOOKING = utils.BOOKING
DISCOVERY = utils.DISCOVERY
)
func (d LibDataEnum) API() string {
@@ -83,7 +85,7 @@ func AddPath(collection LibDataEnum, path string) {
paths[collection] = path
}
func Init(appName string) {
func Init(appName string, hostname string, port string) {
defer func() {
if r := recover(); r != nil {
tools.UncatchedError = append(tools.UncatchedError, errors.New("Panic recovered in Init : "+fmt.Sprintf("%v", r)))
@@ -91,6 +93,24 @@ func Init(appName string) {
}()
logs.SetAppName(appName)
logs.SetLogger(logs.CreateLogger("main", ""))
logger := logs.GetLogger()
discoveryAccess := (&discovery.Discovery{}).GetAccessor(nil)
res, code, _ := discoveryAccess.Search(nil, appName)
initial := &discovery.Discovery{
AbstractObject: utils.AbstractObject{
Name: appName,
},
Host: hostname,
Port: port,
State: 1,
}
if code == 200 && len(res) == 0 {
discoveryAccess.StoreOne(initial)
}
err := tools.NewNATSCaller().DiscoveryNATS(appName, initial)
if err != nil {
logger.Error().Msg(err.Error())
}
mongo.MONGOService.Init(models.GetModelsNames(), tools.GetConfig())
accessor := (&resource_model.ResourceModel{}).GetAccessor(nil)
for _, model := range []string{utils.DATA_RESOURCE.String(), utils.PROCESSING_RESOURCE.String(), utils.STORAGE_RESOURCE.String(), utils.DATACENTER_RESOURCE.String(), utils.WORKFLOW_RESOURCE.String()} {
@@ -339,3 +359,10 @@ func (l *LibData) ToWorkflowExecution() *workflow_execution.WorkflowExecution {
}
return nil
}
func (l *LibData) ToDiscovery() *discovery.Discovery {
if l.Data.GetAccessor(nil).GetType() == utils.DISCOVERY.String() {
return l.Data.(*discovery.Discovery)
}
return nil
}