MCPcopy
hub / github.com/spacecloud-io/space-cloud / ExtractValuesObj

Function ExtractValuesObj

space-cli/cmd/utils/helm.go:164–213  ·  view source on GitHub ↗

ExtractValuesObj extract chart values from yaml file & cli flags

(setValuesFlag, valuesYamlFile string)

Source from the content-addressed store, hash-verified

162
163// ExtractValuesObj extract chart values from yaml file & cli flags
164func ExtractValuesObj(setValuesFlag, valuesYamlFile string) (map[string]interface{}, error) {
165 valuesFileObj := map[string]interface{}{}
166 if valuesYamlFile != "" {
167 var bodyInBytes []byte
168 var err error
169 if strings.HasPrefix(valuesYamlFile, "http") {
170 // download file from the internet
171 resp, err := http.Get(valuesYamlFile)
172 if err != nil {
173 return nil, err
174 }
175 if resp.StatusCode != http.StatusOK {
176 return nil, fmt.Errorf("")
177 }
178 bodyInBytes, err = ioutil.ReadAll(resp.Body)
179 if err != nil {
180 return nil, err
181 }
182 } else {
183 // read locally available file
184 bodyInBytes, err = ioutil.ReadFile(valuesYamlFile)
185 if err != nil {
186 return nil, err
187 }
188 }
189
190 if err := yaml.Unmarshal(bodyInBytes, &valuesFileObj); err != nil {
191 return nil, err
192 }
193 }
194
195 setValuesObj := map[string]interface{}{}
196 if setValuesFlag != "" {
197 arr := strings.Split(setValuesFlag, ",")
198 for _, element := range arr {
199 tempArr := strings.Split(element, "=")
200 if len(tempArr) != 2 {
201 return nil, fmt.Errorf("invalid value (%s) provided for flag --set, it should be in format foo1=bar1,foo2=bar2", tempArr)
202 }
203 setValuesObj[tempArr[0]] = tempArr[1]
204 }
205 }
206
207 // override values of yaml file
208 for key, value := range setValuesObj {
209 valuesFileObj[key] = value
210 }
211
212 return valuesFileObj, nil
213}

Callers 1

ReadSpecObjectsFromFileFunction · 0.85

Calls 3

ReadFileMethod · 0.65
GetMethod · 0.45
UnmarshalMethod · 0.45

Tested by

no test coverage detected