X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=pkg%2Fcharts%2Fchart_manager.go;h=0f6f7aff712307c422e9738c896716256c322462;hb=refs%2Fchanges%2F45%2F9245%2F1;hp=75ec338d0822c81ed8954b6efce5d5473e9b0e1d;hpb=f8dc81bc7dd198da9fcb17bef2e164dc71c39e49;p=ric-plt%2Fricdms.git diff --git a/pkg/charts/chart_manager.go b/pkg/charts/chart_manager.go index 75ec338..0f6f7af 100644 --- a/pkg/charts/chart_manager.go +++ b/pkg/charts/chart_manager.go @@ -21,6 +21,7 @@ package charts import ( + "encoding/json" "fmt" "io" "io/ioutil" @@ -35,6 +36,7 @@ type ChartMgr struct { type IChartMgr interface { GetCharts() (string, error) DownloadChart(string, string) (io.ReadCloser, error) + GetChartsByName(name string) ([]map[string]interface{}, error) } func NewChartmgr() IChartMgr { @@ -78,3 +80,35 @@ func (c *ChartMgr) DownloadChart(chartName string, version string) (io.ReadClose return resp.Request.Body, nil } + +func (c *ChartMgr) GetChartsByName(name string) ([]map[string]interface{}, error) { + ricdms.Logger.Debug("Get Chart by xApp name is invoked") + + if name == "" { + return make([]map[string]interface{}, 0), fmt.Errorf("xAppname is empty") + } + + URL := fmt.Sprintf(ricdms.Config.GetChartsByxAppNameURL, name) + + response, err := http.Get(URL) + if err != nil { + ricdms.Logger.Error("error: %v", err) + return make([]map[string]interface{}, 0), err + } + + defer response.Body.Close() + data, err := ioutil.ReadAll(response.Body) + + if err != nil { + ricdms.Logger.Debug("Reading response failed with err : %v", err) + return make([]map[string]interface{}, 0), err + } + + v := make([]map[string]interface{}, 0) + err = json.Unmarshal(data, &v) + if err != nil { + ricdms.Logger.Debug("Error while parsing res: %v", err) + return make([]map[string]interface{}, 0), err + } + return v, nil +}