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() (map[string]interface{}, error)
38 DownloadChart(string, string) (io.ReadCloser, error)
39 GetChartsByName(name string) ([]map[string]interface{}, error)
40 GetChartsByNameAndVersion(name, version string) (map[string]interface{}, error)
43 func NewChartmgr() IChartMgr {
47 func (c *ChartMgr) GetCharts() (map[string]interface{}, error) {
48 ricdms.Logger.Debug("GetCharts invoked")
50 resp, err := http.Get(ricdms.Config.GetChartsURL)
52 ricdms.Logger.Debug("Error in getting charts : %+v", err)
53 return make(map[string]interface{}, 0), err
56 defer resp.Body.Close()
57 respByte, err := ioutil.ReadAll(resp.Body)
60 ricdms.Logger.Debug("error in response: %+v", respByte)
61 return make(map[string]interface{}, 0), err
64 ricdms.Logger.Debug("response : %+v", string(respByte))
66 v := make(map[string]interface{}, 0)
67 json.Unmarshal(respByte, &v)
71 func (c *ChartMgr) DownloadChart(chartName string, version string) (io.ReadCloser, error) {
72 ricdms.Logger.Debug("Download Charts invoked")
74 if chartName == "" || version == "" {
75 return nil, fmt.Errorf("chartname or version is empty")
78 ChartURL := fmt.Sprintf(ricdms.Config.DownloadChartURLFormat, chartName, version)
80 resp, err := http.Get(ChartURL)
88 func (c *ChartMgr) GetChartsByName(name string) ([]map[string]interface{}, error) {
89 ricdms.Logger.Debug("Get Chart by xApp name is invoked")
92 return make([]map[string]interface{}, 0), fmt.Errorf("xAppname is empty")
95 URL := fmt.Sprintf(ricdms.Config.GetChartsByxAppNameURL, name)
97 response, err := http.Get(URL)
99 ricdms.Logger.Error("error: %v", err)
100 return make([]map[string]interface{}, 0), err
103 defer response.Body.Close()
104 data, err := ioutil.ReadAll(response.Body)
107 ricdms.Logger.Debug("Reading response failed with err : %v", err)
108 return make([]map[string]interface{}, 0), err
111 v := make([]map[string]interface{}, 0)
112 err = json.Unmarshal(data, &v)
114 ricdms.Logger.Debug("Error while parsing res: %v", err)
115 return make([]map[string]interface{}, 0), err
120 func (c *ChartMgr) GetChartsByNameAndVersion(name, version string) (map[string]interface{}, error) {
121 ricdms.Logger.Debug("Get Charts by name and version is invoked")
123 if name == "" || version == "" {
124 return make(map[string]interface{}, 0), fmt.Errorf("name or version is not provided")
127 URL := fmt.Sprintf(ricdms.Config.GetChartsByNameAndVersionURL, name, version)
129 response, err := http.Get(URL)
131 ricdms.Logger.Debug("error in retrieving chart: %v", err)
132 return make(map[string]interface{}, 0), err
135 defer response.Body.Close()
136 data, err := ioutil.ReadAll(response.Body)
139 ricdms.Logger.Debug("error in reading response: %v", err)
140 return make(map[string]interface{}, 0), err
143 v := make(map[string]interface{}, 0)
144 err = json.Unmarshal(data, &v)
146 ricdms.Logger.Debug("error in parsing response: %v", err)
147 return make(map[string]interface{}, 0), err