slice manager sets 'geni_compressed' option to False when calling ListResources at...
[sfa.git] / sfa / managers / slice_manager_pl.py
index 199028b..1103bdc 100644 (file)
@@ -23,6 +23,7 @@ from sfa.util.threadmanager import ThreadManager
 import sfa.util.xmlrpcprotocol as xmlrpcprotocol     
 from sfa.util.debug import log
 import sfa.plc.peers as peers
+from copy import copy
 
 def get_version():
     version = {}
@@ -107,12 +108,14 @@ def get_ticket(api, xrn, creds, rspec, users):
             net_urn = hrn_to_urn(aggregate, 'authority')     
             # we may have a peer that knows about this aggregate
             for agg in api.aggregates:
-                agg_info = api.aggregates[agg].get_aggregates(credential, net_urn)
-                if agg_info:
-                    # send the request to this address 
-                    url = 'http://%s:%s' % (agg_info['addr'], agg_info['port'])
-                    server = xmlrpcprotocol.get_server(url, api.key_file, api.cert_file)
-                    break   
+                target_aggs = api.aggregates[agg].get_aggregates(credential, net_urn)
+                if not target_aggs or not 'hrn' in target_aggs[0]:
+                    continue
+                # send the request to this address 
+                url = target_aggs[0]['url']
+                server = xmlrpcprotocol.get_server(url, api.key_file, api.cert_file)
+                # aggregate found, no need to keep looping
+                break   
         if server is None:
             continue 
         threads.run(server.GetTicket, xrn, credential, aggregate_rspec, users)
@@ -261,7 +264,9 @@ def get_rspec(api, creds, options):
         if aggregate not in [api.auth.client_cred.get_gid_caller().get_hrn()]:   
             # get the rspec from the aggregate
             server = api.aggregates[aggregate]
-            threads.run(server.ListResources, cred, options)
+            my_opts = copy(options)
+            my_opts['geni_compressed'] = False
+            threads.run(server.ListResources, cred, my_opts)
             #threads.run(server.get_resources, cred, xrn, origin_hrn)