adding support for geni_speaking_for option
[sfa.git] / sfa / methods / ListResources.py
index 65fd819..4fb0faf 100644 (file)
@@ -3,7 +3,7 @@ import zlib
 from sfa.util.xrn import urn_to_hrn
 from sfa.util.method import Method
 from sfa.util.sfatablesRuntime import run_sfatables
-
+from sfa.util.faults import SfaInvalidArgument
 from sfa.trust.credential import Credential
 
 from sfa.storage.parameter import Parameter, Mixed
@@ -23,15 +23,23 @@ class ListResources(Method):
         ]
     returns = Parameter(str, "List of resources")
 
-    def call(self, creds, options={}):
+    def call(self, creds, options):
         self.api.logger.info("interface: %s\tmethod-name: %s" % (self.api.interface, self.name))
-        
+       
+        # client must specify a version
+        if not options.get('geni_rspec_version'):
+            if options.get('rspec_version'):
+                options['geni_rspec_version'] = options['rspec_version']
+            else:
+                raise SfaInvalidArgument('Must specify an rspec version option. geni_rspec_version cannot be null')
         # get slice's hrn from options    
         xrn = options.get('geni_slice_urn', '')
         (hrn, _) = urn_to_hrn(xrn)
+        (speaking_for, _) = urn_to_hrn(options.get('geni_speaking_for'))
 
         # Find the valid credentials
-        valid_creds = self.api.auth.checkCredentials(creds, 'listnodes', hrn)
+        valid_creds = self.api.auth.checkCredentials(creds, 'listnodes', hrn, speaking_for)
 
         # get hrn of the original caller 
         origin_hrn = options.get('origin_hrn', None)