- cm_element = etree.SubElement(link_elem, 'component_manager', name=link['component_manager'])
- for if_ref in [link['interface1'], link['interface2']]:
- if_ref_elem = etree.SubElement(link_elem, 'interface_ref')
- for attrib in Interface.fields:
- if attrib in if_ref and if_ref[attrib]:
- if_ref_elem.attrib[attrib] = if_ref[attrib]
- prop1 = etree.SubElement(link_elem, 'property', source_id = link['interface1']['component_id'],
- dest_id = link['interface2']['component_id'], capacity=link['capacity'],
- latency=link['latency'], packet_loss=link['packet_loss'])
- prop2 = etree.SubElement(link_elem, 'property', source_id = link['interface2']['component_id'],
- dest_id = link['interface1']['component_id'], capacity=link['capacity'],
- latency=link['latency'], packet_loss=link['packet_loss'])
- if 'type' in link and link['type']:
- type_elem = etree.SubElement(link_elem, 'link_type', name=link['type'])
-
- @staticmethod
+ cm_element = link_elem.add_element(
+ 'component_manager', name=link['component_manager'])
+ # set interface_ref elements
+ if link.get('interface1') and link.get('interface2'):
+ for if_ref in [link['interface1'], link['interface2']]:
+ link_elem.add_instance(
+ 'interface_ref', if_ref, Interface.fields)
+ # set property elements
+ prop1 = link_elem.add_element('property', source_id=link['interface1']['component_id'],
+ dest_id=link['interface2'][
+ 'component_id'], capacity=link['capacity'],
+ latency=link['latency'], packet_loss=link['packet_loss'])
+ prop2 = link_elem.add_element('property', source_id=link['interface2']['component_id'],
+ dest_id=link['interface1'][
+ 'component_id'], capacity=link['capacity'],
+ latency=link['latency'], packet_loss=link['packet_loss'])
+ if link.get('type'):
+ type_elem = link_elem.add_element(
+ 'link_type', name=link['type'])
+
+ @staticmethod