From: Tony Mack <tmack@cs.princeton.edu>
Date: Wed, 4 Nov 2009 01:05:16 +0000 (+0000)
Subject: request hash is optional
X-Git-Tag: sfa-0.9-6~64
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=cc424a19c4c158f5ccb861ac825850ce26df43c6;p=sfa.git

request hash is optional
---

diff --git a/sfa/methods/list.py b/sfa/methods/list.py
index 24c4064d..a33cad5b 100644
--- a/sfa/methods/list.py
+++ b/sfa/methods/list.py
@@ -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):
diff --git a/sfa/methods/resolve.py b/sfa/methods/resolve.py
index cc637b89..29e79b4b 100644
--- a/sfa/methods/resolve.py
+++ b/sfa/methods/resolve.py
@@ -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()