9684: Add safe_yaml initializer
[arvados.git] / sdk / go / arvadosclient / arvadosclient.go
index 57f81c2c86479aef0abab228467915ae9170ecdd..aeb81f9317e871c81156ba759b163f9aeeb5f08e 100644 (file)
@@ -120,8 +120,16 @@ func MakeArvadosClient() (ac ArvadosClient, err error) {
                External: external,
                Retries:  2}
 
-       if s := os.Getenv("ARVADOS_KEEP_SERVICES"); s != "" {
-               ac.KeepServiceURIs = strings.Split(s, " ")
+       for _, s := range strings.Split(os.Getenv("ARVADOS_KEEP_SERVICES"), " ") {
+               if s == "" {
+                       continue
+               }
+               if u, err := url.Parse(s); err != nil {
+                       return ac, fmt.Errorf("ARVADOS_KEEP_SERVICES: %q: %s", s, err)
+               } else if !u.IsAbs() {
+                       return ac, fmt.Errorf("ARVADOS_KEEP_SERVICES: %q: not an absolute URI", s)
+               }
+               ac.KeepServiceURIs = append(ac.KeepServiceURIs, s)
        }
 
        if ac.ApiServer == "" {