X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/42fff42165a0fa1602758a078746f8697f265f83..c9aaa4d329b08c8b1c8cfd566c5282ab57e97f05:/sdk/go/arvadosclient/arvadosclient.go diff --git a/sdk/go/arvadosclient/arvadosclient.go b/sdk/go/arvadosclient/arvadosclient.go index 4c594625e7..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 } @@ -426,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