2 * Copyright (c) 2019 AT&T Intellectual Property.
3 * Copyright (c) 2018-2019 Nokia.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
23 mdcloggo "gerrit.o-ran-sc.org/r/com/golog.git"
26 type VesAgent struct {
32 var logger *mdcloggo.MdcLogger
36 logger, _ = mdcloggo.InitLogger("vesmgr")
39 /* Function to initialize vesmgr */
41 vesagent.name = "ves-agent"
42 logger.MdcAdd("vesmgr", "0.0.1")
43 logger.Info("vesmgrInit")
45 /* Subscribe notifications from xAPP Mgr */
46 //subscribexAppNotifications()
48 // create configuration
49 f, err := os.Create("/etc/ves-agent/ves-agent.yaml")
51 logger.Error("Cannot create vespa conf file: %s", err.Error())
64 func startVesagent() chan error {
66 cmd := exec.Command(vesagent.name, "-i", os.Getenv("VESMGR_HB_INTERVAL"), "-m", os.Getenv("VESMGR_MEAS_INTERVAL"), "-f", os.Getenv("VESMGR_PRICOLLECTOR_ADDR"), "-p", os.Getenv("VESMGR_PRICOLLECTOR_PORT"), "--Measurement.Prometheus.Address", os.Getenv("VESMGR_PROMETHEUS_ADDR"))
67 cmd.Stdout = os.Stdout
68 cmd.Stderr = os.Stderr
69 ch := make(chan error)
70 if err := cmd.Start(); err != nil {
71 logger.Error("vesmgr exiting, ves-agent start failed: %s", err)
76 logger.Info("ves-agent started with pid %d", cmd.Process.Pid)
77 vesagent.Pid = cmd.Process.Pid
79 // wait ves-agent exit and then post the error to the channel
88 func runVesmgr(ch chan error) {
91 logger.Error("Vesagent exited: " + err.Error())