X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Fversions%2Fnitosv1Channel.py;h=04f4aa6e146a83941edd735d9ea454224ac96dfb;hb=6766a510ba0528c1c880497d4ae5a547cc76844a;hp=5ca87374ab1240026c084604455d363d322a3ce3;hpb=619c814e547982c5a0d8940730c9507f72c7b807;p=sfa.git diff --git a/sfa/rspecs/elements/versions/nitosv1Channel.py b/sfa/rspecs/elements/versions/nitosv1Channel.py index 5ca87374..04f4aa6e 100644 --- a/sfa/rspecs/elements/versions/nitosv1Channel.py +++ b/sfa/rspecs/elements/versions/nitosv1Channel.py @@ -3,7 +3,7 @@ from sfa.util.xml import XpathFilter from sfa.util.xrn import Xrn from sfa.rspecs.elements.element import Element -from sfa.rspecs.elements.node import Node +from sfa.rspecs.elements.node import NodeElement from sfa.rspecs.elements.sliver import Sliver from sfa.rspecs.elements.location import Location from sfa.rspecs.elements.hardware_type import HardwareType @@ -23,18 +23,18 @@ class NITOSv1Channel: @staticmethod def add_channels(xml, channels): - + network_elems = xml.xpath('//network') if len(network_elems) > 0: network_elem = network_elems[0] elif len(channels) > 0: - #network_urn = Xrn(leases[0]['component_id']).get_authority_urn().split(':')[0] - network_urn = "pla" - network_elem = xml.add_element('network', name = network_urn) + # dirty hack that handles no resource manifest rspec + network_urn = "omf" + network_elem = xml.add_element('network', name=network_urn) else: network_elem = xml -# spectrum_elems = xml.xpath('//spectrum') +# spectrum_elems = xml.xpath('//spectrum') # spectrum_elem = xml.add_element('spectrum') # if len(spectrum_elems) > 0: @@ -44,30 +44,34 @@ class NITOSv1Channel: # else: # spectrum_elem = xml - spectrum_elem = network_elem.add_instance('spectrum', []) - - channel_elems = [] + spectrum_elem = network_elem.add_instance('spectrum', []) + + channel_elems = [] for channel in channels: - channel_fields = ['channel_num', 'frequency', 'standard'] - channel_elem = spectrum_elem.add_instance('channel', channel, channel_fields) + channel_fields = ['channel_num', + 'frequency', 'standard', 'component_id'] + channel_elem = spectrum_elem.add_instance( + 'channel', channel, channel_fields) channel_elems.append(channel_elem) - @staticmethod - def get_channels(xml, filter={}): - xpath = '//channel%s | //default:channel%s' % (XpathFilter.xpath(filter), XpathFilter.xpath(filter)) + def get_channels(xml, filter=None): + if filter is None: + filter = {} + xpath = '//channel%s | //default:channel%s' % ( + XpathFilter.xpath(filter), XpathFilter.xpath(filter)) channel_elems = xml.xpath(xpath) return NITOSv1Channel.get_channel_objs(channel_elems) @staticmethod def get_channel_objs(channel_elems): - channels = [] + channels = [] for channel_elem in channel_elems: channel = Channel(channel_elem.attrib, channel_elem) channel['channel_num'] = channel_elem.attrib['channel_num'] channel['frequency'] = channel_elem.attrib['frequency'] channel['standard'] = channel_elem.attrib['standard'] + channel['component_id'] = channel_elem.attrib['component_id'] channels.append(channel) - return channels - + return channels