X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Fversions%2Fsfav1Lease.py;fp=sfa%2Frspecs%2Felements%2Fversions%2Fsfav1Lease.py;h=2a14b47ba61533479e40e8dfe0e1e89201b173db;hb=04a3f20dc71bf8b3f96b1e3172623aa346a638a7;hp=0c7cb26ba5ebbe73b473993a009820ca93d29196;hpb=c1c136b3042a24604823c6da135308b7c031c234;p=sfa.git diff --git a/sfa/rspecs/elements/versions/sfav1Lease.py b/sfa/rspecs/elements/versions/sfav1Lease.py index 0c7cb26b..2a14b47b 100644 --- a/sfa/rspecs/elements/versions/sfav1Lease.py +++ b/sfa/rspecs/elements/versions/sfav1Lease.py @@ -22,59 +22,61 @@ class SFAv1Lease: @staticmethod def add_leases(xml, leases): - + network_elems = xml.xpath('//network') if len(network_elems) > 0: network_elem = network_elems[0] elif len(leases) > 0: - network_urn = Xrn(leases[0]['component_id']).get_authority_urn().split(':')[0] - network_elem = xml.add_element('network', name = network_urn) + network_urn = Xrn(leases[0]['component_id'] + ).get_authority_urn().split(':')[0] + network_elem = xml.add_element('network', name=network_urn) else: network_elem = xml - + # group the leases by slice and timeslots grouped_leases = [] while leases: - slice_id = leases[0]['slice_id'] - start_time = leases[0]['start_time'] - duration = leases[0]['duration'] - group = [] + slice_id = leases[0]['slice_id'] + start_time = leases[0]['start_time'] + duration = leases[0]['duration'] + group = [] - for lease in leases: - if slice_id == lease['slice_id'] and start_time == lease['start_time'] and duration == lease['duration']: - group.append(lease) + for lease in leases: + if slice_id == lease['slice_id'] and start_time == lease['start_time'] and duration == lease['duration']: + group.append(lease) - grouped_leases.append(group) + grouped_leases.append(group) - for lease1 in group: - leases.remove(lease1) + for lease1 in group: + leases.remove(lease1) lease_elems = [] for lease in grouped_leases: #lease[0]['start_time'] = datetime_to_string(utcparse(lease[0]['start_time'])) lease_fields = ['slice_id', 'start_time', 'duration'] - lease_elem = network_elem.add_instance('lease', lease[0], lease_fields) + lease_elem = network_elem.add_instance( + 'lease', lease[0], lease_fields) lease_elems.append(lease_elem) # add nodes of this lease for node in lease: - lease_elem.add_instance('node', node, ['component_id']) + lease_elem.add_instance('node', node, ['component_id']) - -# lease_elems = [] +# lease_elems = [] # for lease in leases: # lease_fields = ['lease_id', 'component_id', 'slice_id', 'start_time', 'duration'] # lease_elem = network_elem.add_instance('lease', lease, lease_fields) # lease_elems.append(lease_elem) - @staticmethod def get_leases(xml, filter=None): - if filter is None: filter={} - xpath = '//lease%s | //default:lease%s' % (XpathFilter.xpath(filter), XpathFilter.xpath(filter)) + if filter is None: + filter = {} + xpath = '//lease%s | //default:lease%s' % ( + XpathFilter.xpath(filter), XpathFilter.xpath(filter)) lease_elems = xml.xpath(xpath) return SFAv1Lease.get_lease_objs(lease_elems) @@ -82,24 +84,21 @@ class SFAv1Lease: def get_lease_objs(lease_elems): leases = [] for lease_elem in lease_elems: - #get nodes + # get nodes node_elems = lease_elem.xpath('./default:node | ./node') for node_elem in node_elems: - lease = Lease(lease_elem.attrib, lease_elem) - lease['slice_id'] = lease_elem.attrib['slice_id'] - #lease['start_time'] = datetime_to_epoch(utcparse(lease_elem.attrib['start_time'])) - lease['start_time'] = lease_elem.attrib['start_time'] - lease['duration'] = lease_elem.attrib['duration'] - lease['component_id'] = node_elem.attrib['component_id'] - leases.append(lease) + lease = Lease(lease_elem.attrib, lease_elem) + lease['slice_id'] = lease_elem.attrib['slice_id'] + #lease['start_time'] = datetime_to_epoch(utcparse(lease_elem.attrib['start_time'])) + lease['start_time'] = lease_elem.attrib['start_time'] + lease['duration'] = lease_elem.attrib['duration'] + lease['component_id'] = node_elem.attrib['component_id'] + leases.append(lease) return leases - - - -# leases = [] +# leases = [] # for lease_elem in lease_elems: # lease = Lease(lease_elem.attrib, lease_elem) # if lease.get('lease_id'): @@ -110,5 +109,4 @@ class SFAv1Lease: # lease['duration'] = lease_elem.attrib['duration'] # leases.append(lease) -# return leases - +# return leases