X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fxapp%2Frestapi.go;h=2cdee599b097fd887e1396f7fbc638b40cc07114;hb=432205b7cef58be0d23d3ead15b4e131a3a91893;hp=12101a8814cdf465549c327b49728d7c9ef3b479;hpb=8fd8b8d5fffb319b31eac745ff1d93c941bd9723;p=ric-plt%2Fxapp-frame.git diff --git a/pkg/xapp/restapi.go b/pkg/xapp/restapi.go index 12101a8..2cdee59 100755 --- a/pkg/xapp/restapi.go +++ b/pkg/xapp/restapi.go @@ -158,7 +158,7 @@ func (r *Router) CollectDefaultSymptomData(fileName string, data interface{}) st // // Collect metrics // - if metrics, err := r.GetLocalMetrics(GetPortData("http").Port); err == nil { + if metrics, err := r.GetLocalMetrics(); err == nil { if err := Util.WriteToFile(baseDir+"metrics.json", metrics); err != nil { Logger.Error("writeToFile failed for metrics.json: %v", err) } @@ -235,7 +235,7 @@ func (r *Router) SendSymptomDataError(w http.ResponseWriter, req *http.Request, http.Error(w, message, http.StatusInternalServerError) } -func (r *Router) GetLocalMetrics(port int) (string, error) { +func (r *Router) GetLocalMetrics() (string, error) { buf := &bytes.Buffer{} enc := expfmt.NewEncoder(buf, expfmt.FmtText) vals, err := prometheus.DefaultGatherer.Gather() @@ -251,6 +251,14 @@ func (r *Router) GetLocalMetrics(port int) (string, error) { return string(buf.Bytes()), nil } +//Resource.InjectRoute(url, metricsHandler, "GET") +//func metricsHandler(w http.ResponseWriter, r *http.Request) { +// w.Header().Set("Content-Type", "text/plain") +// w.WriteHeader(http.StatusOK) +// metrics, _ := Resource.GetLocalMetrics() +// w.Write([]byte(metrics)) +//} + func IsHealthProbeReady() bool { return healthReady } @@ -308,15 +316,25 @@ func appconfigHandler(w http.ResponseWriter, r *http.Request) { metadata.XappName = &name metadata.ConfigType = &configtype - configFile, err := os.Open("/opt/ric/config/config-file.json") - if err != nil { - Logger.Error("Cannot open config file: %v", err) + // Read config-files + cfiles := []string{viper.ConfigFileUsed(), "/opt/ric/config/config-file.json"} + + var err error + var configFile *os.File + for _, cfile := range cfiles { + configFile, err = os.Open(cfile) + if err != nil { + configFile = nil + Logger.Error("Cannot open config file: %s err: %v", cfile, err) + } + } + if err != nil || configFile == nil { + Logger.Error("Cannot open any of listed config files: %v", cfiles) respondWithJSON(w, http.StatusInternalServerError, nil) - // return nil,errors.New("Could Not parse the config file") + return } body, err := ioutil.ReadAll(configFile) - defer configFile.Close() xappconfig.Metadata = &metadata @@ -325,6 +343,4 @@ func appconfigHandler(w http.ResponseWriter, r *http.Request) { appconfig = append(appconfig, &xappconfig) respondWithJSON(w, http.StatusOK, appconfig) - - //return appconfig,nil }