X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=cmd%2Fvesmgr%2Fvesmgr.go;h=508609849afb822e9ccf16166b1fca8448c5748b;hb=f8b081c074bfdc4379af03db31f1c65bd6b4a935;hp=dfe9864cd1c3d8588c7dc6245487f0b7d35fcab7;hpb=6ffba08cc1c469c1ae04a6819445760ec75653b1;p=ric-plt%2Fvespamgr.git diff --git a/cmd/vesmgr/vesmgr.go b/cmd/vesmgr/vesmgr.go index dfe9864..5086098 100755 --- a/cmd/vesmgr/vesmgr.go +++ b/cmd/vesmgr/vesmgr.go @@ -23,6 +23,7 @@ package main import ( "errors" + "fmt" "io/ioutil" "net" "net/http" @@ -112,11 +113,11 @@ func (vesmgr *VesMgr) subscribeXAppNotifications() { // Init initializes the vesmgr func (vesmgr *VesMgr) Init(listenPort string) *VesMgr { logger.Info("vesmgrInit") - logger.Info("version %s (%s)", Version, Hash) + logger.Info("version: %s (%s)", Version, Hash) var err error if vesmgr.myIPAddress, err = getMyIP(); err != nil || vesmgr.myIPAddress == "" { - logger.Error("Cannot get myIPAddress: IP %s, err %s", vesmgr.myIPAddress, err.Error()) + logger.Error("Cannot get myIPAddress: IP %s", vesmgr.myIPAddress) panic("Cannot get my IP address") } @@ -125,7 +126,11 @@ func (vesmgr *VesMgr) Init(listenPort string) *VesMgr { if ok { logger.Info("Using appmgrdomain %s", appmgrDomain) } else { - appmgrDomain = "service-ricplt-appmgr-http.ricplt.svc.cluster.local" + pltnamespace := os.Getenv("PLT_NAMESPACE") + if pltnamespace == "" { + pltnamespace = "ricplt" + } + appmgrDomain = fmt.Sprintf("service-%s-appmgr-http.%s.svc.cluster.local", pltnamespace, pltnamespace) logger.Info("Using default appmgrdomain %s", appmgrDomain) } vesmgr.chXAppSubscriptions = make(chan subscriptionNotification) @@ -138,7 +143,8 @@ func (vesmgr *VesMgr) Init(listenPort string) *VesMgr { vesmgr.httpServer.init(vesmgr.myIPAddress + ":" + listenPort) vesmgr.vesagent = makeRunner("ves-agent", "-i", os.Getenv("VESMGR_HB_INTERVAL"), "-m", os.Getenv("VESMGR_MEAS_INTERVAL"), "--Measurement.Prometheus.Address", - os.Getenv("VESMGR_PROMETHEUS_ADDR")) + os.Getenv("VESMGR_PROMETHEUS_ADDR"), "--AlertManager.Bind", os.Getenv("VESMGR_ALERTMANAGER_BIND_ADDR"), + "--Debug") return vesmgr } @@ -186,9 +192,15 @@ func queryXAppsConfig(appmgrURL string, timeout time.Duration) ([]byte, error) { return emptyConfig, errors.New(resp.Status) } -func queryConf() ([]byte, error) { - return queryXAppsConfig("http://"+appmgrDomain+":"+appmgrPort+appmgrXAppConfigPath, - 10*time.Second) +func queryConf() (appConfig []byte, err error) { + for i := 0; i < 10; i++ { + appConfig, err = queryXAppsConfig("http://"+appmgrDomain+":"+appmgrPort+appmgrXAppConfigPath, 10*time.Second) + if len(appConfig) > 0 { + break + } + time.Sleep(5 * time.Second) + } + return appConfig, err } func (vesmgr *VesMgr) emptyNotificationsChannel() { @@ -249,11 +261,17 @@ func (vesmgr *VesMgr) waitSubscriptionLoop() { // Run the vesmgr process main loop func (vesmgr *VesMgr) Run() { logger.Info("vesmgr main loop ready") + vesmgr.httpServer.start(vesmgrXappNotifPath, vesmgr.chXAppNotifications, vesmgr.chSupervision) + vesmgr.subscribeXAppNotifications() + vesmgr.waitSubscriptionLoop() + xappConfig, _ := queryConf() + createConf(vespaConfigFile, xappConfig) + vesmgr.startVesagent() for { vesmgr.servRequest()