X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/fb88a62276c929dc009d96f8b4f1497ae20d811e..c9aaa4d329b08c8b1c8cfd566c5282ab57e97f05:/sdk/go/arvadosclient/arvadosclient.go diff --git a/sdk/go/arvadosclient/arvadosclient.go b/sdk/go/arvadosclient/arvadosclient.go index d90c618f7a..8f902d3a09 100644 --- a/sdk/go/arvadosclient/arvadosclient.go +++ b/sdk/go/arvadosclient/arvadosclient.go @@ -146,7 +146,7 @@ func MakeTLSConfig(insecure bool) *tls.Config { data, err := ioutil.ReadFile(file) if err != nil { if !os.IsNotExist(err) { - log.Printf("error reading %q: %s", file, err) + log.Printf("proceeding without loading cert file %q: %s", file, err) } continue } @@ -206,6 +206,9 @@ func (c *ArvadosClient) CallRaw(method string, resourceType string, uuid string, if scheme == "" { scheme = "https" } + if c.ApiServer == "" { + return nil, fmt.Errorf("Arvados client is not configured (target API host is not set). Maybe env var ARVADOS_API_HOST should be set first?") + } u := url.URL{ Scheme: scheme, Host: c.ApiServer} @@ -423,6 +426,24 @@ func (c *ArvadosClient) Discovery(parameter string) (value interface{}, err erro return value, ErrInvalidArgument } +// ClusterConfig returns the value of the given key in the current cluster's +// exported config. If key is an empty string, it'll return the entire config. +func (c *ArvadosClient) ClusterConfig(key string) (config interface{}, err error) { + var clusterConfig interface{} + err = c.Call("GET", "config", "", "", nil, &clusterConfig) + if err != nil { + return nil, err + } + if key == "" { + return clusterConfig, nil + } + configData, ok := clusterConfig.(map[string]interface{})[key] + if !ok { + return nil, ErrInvalidArgument + } + return configData, nil +} + func (c *ArvadosClient) httpClient() *http.Client { if c.Client != nil { return c.Client