from sfa.trust.credential import Credential
from sfa.util.sfalogging import logger
-from sfa.util.rspecHelper import merge_rspecs
from sfa.util.xrn import Xrn, urn_to_hrn
-from sfa.util.threadmanager import ThreadManager
from sfa.util.version import version_core
from sfa.util.callids import Callids
+from sfa.server.threadmanager import ThreadManager
+
from sfa.rspecs.rspec_converter import RSpecConverter
from sfa.rspecs.version_manager import VersionManager
from sfa.rspecs.rspec import RSpec
# get the rspec from the aggregate
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(_ListResources, aggregate, server, [cred], options, call_id)
if caller_hrn == aggregate and aggregate != api.hrn:
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
# Just send entire RSpec to each aggregate
threads.run(_CreateSliver, aggregate, server, xrn, [cred], rspec.toxml(), users, call_id)
if caller_hrn == aggregate and aggregate != api.hrn:
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(_RenewSliver, server, xrn, [cred], expiration_time, call_id)
# 'and' the results
return reduce (lambda x,y: x and y, threads.get_results() , True)
if caller_hrn == aggregate and aggregate != api.hrn:
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(_DeleteSliver, server, xrn, [cred], call_id)
threads.get_results()
return 1
threads = ThreadManager()
for aggregate in api.aggregates:
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run (_SliverStatus, server, slice_xrn, [cred], call_id)
results = threads.get_results()
if caller_hrn == aggregate and aggregate != api.hrn:
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(_ListSlices, server, [cred], call_id)
# combime results
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(server.GetTicket, xrn, [cred], aggregate_rspec, users)
results = threads.get_results()
# gather information from each ticket
- rspecs = []
+ rspec = None
initscripts = []
slivers = []
object_gid = None
attrs = agg_ticket.get_attributes()
if not object_gid:
object_gid = agg_ticket.get_gid_object()
- rspecs.append(agg_ticket.get_rspec())
+ if not rspec:
+ rspec = RSpec(agg_ticket.get_rspec())
+ else:
+ rspec.version.merge(agg_ticket.get_rspec())
initscripts.extend(attrs.get('initscripts', []))
slivers.extend(attrs.get('slivers', []))
# merge info
attributes = {'initscripts': initscripts,
'slivers': slivers}
- merged_rspec = merge_rspecs(rspecs)
-
+
# create a new ticket
ticket = SfaTicket(subject = slice_hrn)
ticket.set_gid_caller(api.auth.client_gid)
ticket.set_pubkey(object_gid.get_pubkey())
#new_ticket.set_parent(api.auth.hierarchy.get_auth_ticket(auth_hrn))
ticket.set_attributes(attributes)
- ticket.set_rspec(merged_rspec)
+ ticket.set_rspec(rspec.toxml())
ticket.encode()
ticket.sign()
return ticket.save_to_string(save_parents=True)
if caller_hrn == aggregate and aggregate != api.hrn:
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(server.Start, xrn, cred)
threads.get_results()
return 1
if caller_hrn == aggregate and aggregate != api.hrn:
continue
interface = api.aggregates[aggregate]
- server = api.get_server(interface, cred)
+ server = api.server_proxy(interface, cred)
threads.run(server.Stop, xrn, cred)
threads.get_results()
return 1