be ListResources drops 'rspec_version from call. Let aggregate return their default...
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Thu, 23 Jun 2011 21:13:33 +0000 (17:13 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Thu, 23 Jun 2011 21:13:33 +0000 (17:13 -0400)
sfa/managers/slice_manager_pl.py

index 5c64df0..87a7c60 100644 (file)
@@ -33,16 +33,20 @@ from sfa.util.version import version_core
 from sfa.util.callids import Callids
 
 
-def _call_id_supported(api, server):
-    """
-    Returns true if server support the optional call_id arg, false otherwise.
-    """
+def _get_cached_server_version(api, server):
     cache_key = server.url + "-version"
     server_version = api.cache.get(cache_key)
     if not server_version:
         server_version = server.GetVersion()
         # cache version for 24 hours
         api.cache.add(cache_key, server_version, ttl= 60*60*24)
+    return server_version
+
+def _call_id_supported(api, server):
+    """
+    Returns true if server support the optional call_id arg, false otherwise.
+    """
+    server_version = _get_cached_server_version(api, server)
 
     if 'sfa' in server_version:
         code_tag = server_version['code_tag']
@@ -102,6 +106,8 @@ def ListResources(api, creds, options, call_id):
     (hrn, type) = urn_to_hrn(xrn)
     my_opts = copy(options)
     my_opts['geni_compressed'] = False
+    if 'rspec_version' in my_opts:
+        del my_opts['rspec_version']
 
     # get the rspec's return format from options
     rspec_version = RSpecVersion(options.get('rspec_version'))
@@ -121,6 +127,7 @@ def ListResources(api, creds, options, call_id):
     credential = api.getDelegatedCredential(creds)
     if not credential:
         credential = api.getCredential()
+    credentials = [credential]
     threads = ThreadManager()
     for aggregate in api.aggregates:
         # prevent infinite loop. Dont send request back to caller
@@ -129,8 +136,8 @@ def ListResources(api, creds, options, call_id):
             continue
         # get the rspec from the aggregate
         server = api.aggregates[aggregate]
-        #threads.run(server.ListResources, credential, my_opts, call_id)
-        threads.run(_ListResources, server, credential, my_opts, call_id)
+        #threads.run(server.ListResources, credentials, my_opts, call_id)
+        threads.run(_ListResources, server, credentials, my_opts, call_id)
 
     results = threads.get_results()
     rspec_version = RSpecVersion(my_opts.get('rspec_version'))
@@ -350,23 +357,6 @@ def ListSlices(api, creds, call_id):
     return slices
 
 
-    if rspec_version['type'] == pg_rspec_ad_version['type']:
-        rspec = PGRSpec()
-    else:
-        rspec = SfaRSpec()
-    for result in results:
-        try:
-            rspec.merge(result)
-        except:
-            api.logger.info("SM.ListResources: Failed to merge aggregate rspec")
-
-    # cache the result
-    if caching and api.cache and not xrn:
-        api.cache.add(version_string, rspec.toxml())
-
-    return rspec.toxml()
-
-
 def get_ticket(api, xrn, creds, rspec, users):
     slice_hrn, type = urn_to_hrn(xrn)
     # get the netspecs contained within the clients rspec