X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fmanagers%2Faggregate_manager_pl.py;h=2a1fe0b04b14432b7361ec5aba506a40c17a5bd1;hb=11d02cbfd5e91784119bb9377fceb4fa6adae621;hp=212699beb75eb81ba6a293e32a62b6a565f93356;hpb=9797fe9b994b5bddd2d1ee6ade36c6716fb9c118;p=sfa.git diff --git a/sfa/managers/aggregate_manager_pl.py b/sfa/managers/aggregate_manager_pl.py index 212699be..2a1fe0b0 100644 --- a/sfa/managers/aggregate_manager_pl.py +++ b/sfa/managers/aggregate_manager_pl.py @@ -7,19 +7,21 @@ import traceback import sys from types import StringTypes -from sfa.util.misc import * +from sfa.util.namespace import * from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * -from sfa.util.record import GeniRecord +from sfa.util.record import SfaRecord from sfa.util.policy import Policy from sfa.util.record import * from sfa.util.sfaticket import SfaTicket from sfa.server.registry import Registries from sfa.util.debug import log +from sfa.plc.slices import Slices import sfa.plc.peers as peers -def delete_slice(api, hrn): +def delete_slice(api, xrn): + hrn, type = urn_to_hrn(xrn) slicename = hrn_to_pl_slicename(hrn) slices = api.plshell.GetSlices(api.plauth, {'name': slicename}) if not slices: @@ -35,25 +37,27 @@ def delete_slice(api, hrn): api.plshell.BindObjectToPeer(api.plauth, 'slice', slice['slice_id'], peer, slice['peer_slice_id']) return 1 -def create_slice(api, hrn, rspec): +def create_slice(api, xrn, rspec): + hrn, type = urn_to_hrn(xrn) # XX just import the legacy module and excute that until # we transition the code to this module from sfa.plc.slices import Slices slices = Slices(api) - slices.create_slice(hrn, rspec) + slices.create_slice_aggregate(hrn, rspec) -def get_ticket(api, slice_hrn, rspec, origin_hrn=None): +def get_ticket(api, xrn, rspec, origin_hrn=None): + slice_hrn, type = urn_to_hrn(xrn) # the the slice record registries = Registries(api) registry = registries[api.hrn] credential = api.getCredential() - records = registry.resolve(credential, slice_hrn) + records = registry.resolve(credential, xrn) # make sure we get a local slice record record = None for tmp_record in records: - if record['type'] == 'slice' and \ - not record['peer_authority']: + if tmp_record['type'] == 'slice' and \ + not tmp_record['peer_authority']: record = SliceRecord(dict=tmp_record) if not record: raise RecordNotFound(slice_hrn) @@ -86,7 +90,8 @@ def get_ticket(api, slice_hrn, rspec, origin_hrn=None): return new_ticket.save_to_string(save_parents=True) -def start_slice(api, hrn): +def start_slice(api, xrn): + hrn, type = urn_to_hrn(xrn) slicename = hrn_to_pl_slicename(hrn) slices = api.plshell.GetSlices(api.plauth, {'name': slicename}, ['slice_id']) if not slices: @@ -98,7 +103,8 @@ def start_slice(api, hrn): return 1 -def stop_slice(api, hrn): +def stop_slice(api, xrn): + hrn, type = urn_to_hrn(xrn) slicename = hrn_to_pl_slicename(hrn) slices = api.plshell.GetSlices(api.plauth, {'name': slicename}, ['slice_id']) if not slices: @@ -109,7 +115,7 @@ def stop_slice(api, hrn): api.plshell.UpdateSliceTag(api.plauth, attribute_id, "0") return 1 -def reset_slice(api, hrn): +def reset_slice(api, xrn): # XX not implemented at this interface return 1 @@ -119,14 +125,14 @@ def get_slices(api): from sfa.plc.slices import Slices slices = Slices(api) slices.refresh() - return slices['hrn'] + return [hrn_to_urn(slice_hrn, 'slice') for slice_hrn in slices['hrn']] -def get_rspec(api, hrn=None, origin_hrn=None): +def get_rspec(api, xrn=None, origin_hrn=None): from sfa.plc.nodes import Nodes nodes = Nodes(api, origin_hrn=origin_hrn) if hrn: - rspec = nodes.get_rspec(hrn) + rspec = nodes.get_rspec(xrn) else: nodes.refresh() rspec = nodes['rspec'] @@ -138,7 +144,9 @@ Returns the request context required by sfatables. At some point, this mechanism to refer to "contexts", which is the information that sfatables is requesting. But for now, we just return the basic information needed in a dict. """ -def fetch_context(slice_hrn, user_hrn, contexts): +def fetch_context(slice_xrn, user_xrn, contexts): + slice_hrn = urn_to_hrn(slice_xrn)[0] + user_hrn = urn_to_hrn(user_xrn)[0] base_context = {'sfa':{'user':{'hrn':user_hrn}}} return base_context