in _patches/runtimes_extra.go [39:82]
func GetRuntimesByUrl(opURL string, pop *OpenWhiskInfo) error {
// configure transport
tlsConfig := &tls.Config{
InsecureSkipVerify: true,
}
var netTransport = &http.Transport{
TLSClientConfig: tlsConfig,
}
var netClient = &http.Client{
Timeout: time.Second * utils.DEFAULT_HTTP_TIMEOUT,
Transport: netTransport,
}
req, _ := http.NewRequest("GET", opURL, nil)
req.Header.Set(HTTP_CONTENT_TYPE_KEY, HTTP_CONTENT_TYPE_VALUE)
whisk.Debug(whisk.DbgInfo, "trying "+req.URL.String())
res, err := netClient.Do(req)
if err != nil {
// TODO() create an error
errString := wski18n.T(wski18n.ID_ERR_RUNTIMES_GET_X_err_X,
map[string]interface{}{"err": err.Error()})
whisk.Debug(whisk.DbgWarn, errString)
if utils.Flags.Strict {
errMessage := wski18n.T(wski18n.ID_ERR_RUNTIME_PARSER_ERROR,
map[string]interface{}{wski18n.KEY_ERR: err.Error()})
err = wskderrors.NewRuntimeParserError(errMessage)
}
return err
} else {
if res != nil {
defer res.Body.Close()
}
b, _ := ioutil.ReadAll(res.Body)
if b != nil && len(b) > 0 {
stdout := wski18n.T(wski18n.ID_MSG_UNMARSHAL_NETWORK_X_url_X,
map[string]interface{}{"url": opURL})
wskprint.PrintOpenWhiskVerbose(utils.Flags.Verbose, stdout)
return json.Unmarshal(b, pop)
}
return fmt.Errorf("cannot get runtimes")
}
}