1 //==================================================================================
2 // Copyright (c) 2022 Samsung
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.apache.org/licenses/LICENSE-2.0
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
16 // This source code is part of the near-RT RIC (RAN Intelligent Controller)
17 // platform project (RICP).
18 //==================================================================================
30 "gerrit.o-ran-sc.org/r/ric-plt/ricdms/pkg/ricdms"
33 type ChartMgr struct {
36 type IChartMgr interface {
37 GetCharts() (string, error)
38 DownloadChart(string, string) (io.ReadCloser, error)
39 GetChartsByName(name string) ([]map[string]interface{}, error)
42 func NewChartmgr() IChartMgr {
46 func (c *ChartMgr) GetCharts() (string, error) {
47 ricdms.Logger.Debug("GetCharts invoked")
49 resp, err := http.Get(ricdms.Config.GetChartsURL)
51 ricdms.Logger.Debug("Error in getting charts : %+v", err)
55 defer resp.Body.Close()
56 respByte, err := ioutil.ReadAll(resp.Body)
59 ricdms.Logger.Debug("error in response: %+v", respByte)
63 ricdms.Logger.Debug("response : %+v", string(respByte))
64 return string(respByte), nil
67 func (c *ChartMgr) DownloadChart(chartName string, version string) (io.ReadCloser, error) {
68 ricdms.Logger.Debug("Download Charts invoked")
70 if chartName == "" || version == "" {
71 return nil, fmt.Errorf("chartname or version is empty")
74 ChartURL := fmt.Sprintf(ricdms.Config.DownloadChartURLFormat, chartName, version)
76 resp, err := http.Get(ChartURL)
81 return resp.Request.Body, nil
84 func (c *ChartMgr) GetChartsByName(name string) ([]map[string]interface{}, error) {
85 ricdms.Logger.Debug("Get Chart by xApp name is invoked")
88 return make([]map[string]interface{}, 0), fmt.Errorf("xAppname is empty")
91 URL := fmt.Sprintf(ricdms.Config.GetChartsByxAppNameURL, name)
93 response, err := http.Get(URL)
95 ricdms.Logger.Error("error: %v", err)
96 return make([]map[string]interface{}, 0), err
99 defer response.Body.Close()
100 data, err := ioutil.ReadAll(response.Body)
103 ricdms.Logger.Debug("Reading response failed with err : %v", err)
104 return make([]map[string]interface{}, 0), err
107 v := make([]map[string]interface{}, 0)
108 err = json.Unmarshal(data, &v)
110 ricdms.Logger.Debug("Error while parsing res: %v", err)
111 return make([]map[string]interface{}, 0), err