Additions to measurements
[ric-plt/vespamgr.git] / cmd / vesmgr / vesmgr.go
index dfe9864..c093359 100755 (executable)
@@ -112,11 +112,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")
        }
 
@@ -138,7 +138,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 +187,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 +256,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()