[ARVADOS] updated: e5b58426fb9064da76b207cd6d8aaaff05331d64

git at public.curoverse.com git at public.curoverse.com
Wed May 21 13:32:11 EDT 2014


Summary of changes:
 sdk/python/arvados/keep.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

       via  e5b58426fb9064da76b207cd6d8aaaff05331d64 (commit)
       via  b0d3b048f6f16dd80e119623e0d4cb558a6537f7 (commit)
      from  7d2ce5fa717f587963f64e466a9c3dd33faef27b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit e5b58426fb9064da76b207cd6d8aaaff05331d64
Merge: b0d3b04 7d2ce5f
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Wed May 21 13:32:06 2014 -0400

    2751: merge because git derp.


commit b0d3b048f6f16dd80e119623e0d4cb558a6537f7
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Wed May 21 13:30:28 2014 -0400

    2751: Added support for keep_services table, can still use keep_disks as a fallback.

diff --git a/sdk/python/arvados/errors.py b/sdk/python/arvados/errors.py
index e4c69a3..b4afb21 100644
--- a/sdk/python/arvados/errors.py
+++ b/sdk/python/arvados/errors.py
@@ -14,3 +14,5 @@ class KeepWriteError(Exception):
     pass
 class NotImplementedError(Exception):
     pass
+class NoKeepServersError(Exception):
+    pass
diff --git a/sdk/python/arvados/keep.py b/sdk/python/arvados/keep.py
index c506997..d1e2255 100644
--- a/sdk/python/arvados/keep.py
+++ b/sdk/python/arvados/keep.py
@@ -169,7 +169,7 @@ class KeepClient(object):
 
             # Override normal keep disk lookup with an explict proxy
             # configuration.
-            keep_proxy_env = self.config.get("ARVADOS_KEEP_PROXY")
+            keep_proxy_env = config.get("ARVADOS_KEEP_PROXY")
             if keep_proxy_env != None:
                 if keep_proxy_env[-1:] != '/':
                     keep_proxy_env += "/"
@@ -177,16 +177,23 @@ class KeepClient(object):
                 self.using_proxy = True
             else:
                 try:
-                    keep_disks = arvados.api().keep_disks().list().execute()['items']
+                    try:
+                        keep_services = arvados.api().keep_services().accessible().execute()['items']
+                    except:
+                        keep_services = arvados.api().keep_disks().list().execute()['items']
+
+                    if len(keep_services) == 0:
+                        raise arvados.errors.NoKeepServersError()
+
+                    if 'service_type' in keep_services[0] and keep_services[0]['service_type'] == 'proxy':
+                        self.using_proxy = True
+
                     roots = (("http%s://%s:%d/" %
                               ('s' if f['service_ssl_flag'] else '',
                                f['service_host'],
                                f['service_port']))
-                             for f in keep_disks)
+                             for f in keep_services)
                     self.service_roots = sorted(set(roots))
-                    if len(keep_disks) == 1 and re.match(r'[a-z0-9]{5}-penuu-keepproxy......', keep_disks[0]['uuid']):
-                        # Proxies have a special UUID pattern.
-                        self.using_proxy = True
                     logging.debug(str(self.service_roots))
                 finally:
                     self.lock.release()

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list