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 = {}
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)
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)