"encoding/json"
"errors"
"fmt"
- //"io/ioutil"
"log"
"net/http"
"os"
appmgr.Logger.Info("Xapp manager started ... serving on %s:%d\n", server.Host, server.Port)
+ go r.symptomdataServer()
go r.RetrieveApps()
if err := server.Serve(); err != nil {
log.Fatal(err.Error())
appmgr.Logger.Info("Invoked httprestful.httpGetXApps: " + url)
resp, err := http.Get(url)
if err != nil {
+ appmgr.Logger.Error("Error while querying config to Xapp: ", err.Error())
return nil
}
defer resp.Body.Close()
if xappconfig != nil {
data := parseConfig(xappconfig)
if data != nil {
- appmgr.Logger.Info("iRetry Count = %v", i)
var xapp models.Xapp
xapp.Name = params.AppName
if configPresent == true {
break
}
- time.Sleep(2 * time.Second)
}
+ appmgr.Logger.Info("Retrying query configuration from xapp, try no : %d", i)
+ time.Sleep(4 * time.Second)
}
return nil, errors.New("Unable to get configmap after 5 retries")
}
}
return
}
+
+func (r *Restful) symptomdataServer() {
+ http.HandleFunc("/ric/v1/symptomdata", func(w http.ResponseWriter, req *http.Request) {
+ d, _ := r.GetApps()
+ xappData := struct {
+ XappList models.AllDeployedXapps `json:"xappList"`
+ ConfigList models.AllXappConfig `json:"configList"`
+ SubscriptionList models.AllSubscriptions `json:"subscriptionList"`
+ }{
+ d,
+ r.getAppConfig(),
+ r.rh.GetAllSubscriptions(),
+ }
+
+ w.Header().Set("Content-Type", "application/json")
+ w.Header().Set("Content-Disposition", "attachment; filename=platform/apps_info.json")
+ w.WriteHeader(http.StatusOK)
+ resp, _ := json.MarshalIndent(xappData, "", " ")
+ w.Write(resp)
+ })
+
+ http.ListenAndServe(":8081", nil)
+}