From: Anil-Kumar Vengalil <Anil-Kumar.Vengalil@sophia.inria.fr>
Date: Thu, 14 Jan 2010 10:38:16 +0000 (+0000)
Subject: getting resolve working across federated aggregates
X-Git-Tag: sfa-0.9-9~10
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=0d5b86316834e10a9450f0e0a277440511e2e5af;p=sfa.git

getting resolve working across federated aggregates
---

diff --git a/sfa/methods/resolve.py b/sfa/methods/resolve.py
index c4aeadc9..4414ee29 100644
--- a/sfa/methods/resolve.py
+++ b/sfa/methods/resolve.py
@@ -1,6 +1,7 @@
 ### $Id$
 ### $URL$
 import traceback
+import types
 from sfa.util.faults import *
 from sfa.util.namespace import *
 from sfa.util.method import Method
@@ -28,14 +29,16 @@ class resolve(Method):
 
     returns = [SfaRecord]
     
-    def call(self, cred, xrn, origin_hrn=None):
+    def call(self, cred, xrns, origin_hrn=None):
         user_cred = Credential(string=cred)
-        hrn = urn_to_hrn(xrn)[0]
+	if not isinstance(xrns, types.ListType):
+	    xrns=[xrns]
+	hrns = [urn_to_hrn(xrn)[0] for xrn in xrns]
 
         #log the call
         if not origin_hrn:
             origin_hrn = user_cred.get_gid_caller().get_hrn()
-        self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name))
+        self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrns, self.name))
  
         # validate the cred
         self.api.auth.check(cred, 'resolve')
@@ -44,7 +47,7 @@ class resolve(Method):
         mgr_type = self.api.config.SFA_REGISTRY_TYPE
         manager_module = manager_base + ".registry_manager_%s" % mgr_type
         manager = __import__(manager_module, fromlist=[manager_base])
-        return manager.resolve(self.api, xrn, origin_hrn=origin_hrn)
+        return manager.resolve(self.api, xrns, origin_hrn=origin_hrn)