X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=pkg%2Frestful%2Frestful.go;h=e6bebb788bb9e9a289bfb8b270e2952235297ded;hb=refs%2Fchanges%2F43%2F7043%2F1;hp=86f2cf0c01958bb8a014a097bb324d36d4268102;hpb=382755beb855b85176406154cb4847c96babefa5;p=ric-plt%2Fappmgr.git diff --git a/pkg/restful/restful.go b/pkg/restful/restful.go index 86f2cf0..e6bebb7 100755 --- a/pkg/restful/restful.go +++ b/pkg/restful/restful.go @@ -23,7 +23,6 @@ import ( "encoding/json" "errors" "fmt" - //"io/ioutil" "log" "net/http" "os" @@ -76,6 +75,7 @@ func (r *Restful) Run() { 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()) @@ -210,6 +210,7 @@ func httpGetXAppsconfig(url string) *string { 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() @@ -320,7 +321,6 @@ func (r *Restful) PrepareConfig(params models.RegisterRequest, updateflag bool) if xappconfig != nil { data := parseConfig(xappconfig) if data != nil { - appmgr.Logger.Info("iRetry Count = %v", i) var xapp models.Xapp xapp.Name = params.AppName @@ -336,8 +336,9 @@ func (r *Restful) PrepareConfig(params models.RegisterRequest, updateflag bool) 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") } @@ -427,3 +428,26 @@ func (r *Restful) getAppConfig() (configList models.AllXappConfig) { } 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) +}