request hash is optional
authorTony Mack <tmack@cs.princeton.edu>
Wed, 4 Nov 2009 01:05:16 +0000 (01:05 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Wed, 4 Nov 2009 01:05:16 +0000 (01:05 +0000)
sfa/methods/list.py
sfa/methods/resolve.py

index 24c4064..a33cad5 100644 (file)
@@ -56,14 +56,17 @@ class list(Method):
         # forward the request
         if registry_hrn != self.api.hrn:
             credential = self.api.getCredential()
-           request_hash=None
             try:
-                record_list = registries[registry_hrn].list(credential, hrn, request_hash, caller_cred)
+                record_list = registries[registry_hrn].list(credential, hrn, caller_cred)
                 records = [GeniRecord(dict=record).as_dict() for record in record_list]
-                if records:
-                    return records
             except:
-                pass
+                arg_list = [credential, hrn]
+                request_hash = self.api.compute_hash(arg_list)
+                record_list = registries[registry_hrn].list(credential, hrn, request_hash, caller_cred)
+                records = [GeniRecord(dict=record).as_dict() for record in record_list] 
+                
+        if records:
+            return records
 
         # if we still havnt found the record yet, try the local registry
         if not self.api.auth.hierarchy.auth_exists(hrn):
index cc637b8..29e79b4 100644 (file)
@@ -59,14 +59,17 @@ class resolve(Method):
         # forward the request
         if registry_hrn != self.api.hrn:
             credential = self.api.getCredential()
-           request_hash=None
             try:
-                records = registries[registry_hrn].resolve(credential, hrn, request_hash, caller_cred)
+                records = registries[registry_hrn].resolve(credential, hrn, caller_cred)
                 good_records = [GeniRecord(dict=record).as_dict() for record in records]
-                if good_records:
-                    return good_records
             except:
-                traceback.print_exc()
+                arg_list = [credential, hrn]
+                request_hash=self.api.key.compute_hash(arg_list)                
+                records = registries[registry_hrn].resolve(credential, hrn, request_hash, caller_cred)
+                good_records = [GeniRecord(dict=record).as_dict() for record in records]
+                
+        if good_records:
+            return good_records
 
         # if we still havnt found the record yet, try the local registry
         table = GeniTable()