network_elem = network_elems[0]
elif len(nodes) > 0 and nodes[0].get('component_manager_id'):
network_urn = nodes[0]['component_manager_id']
- network_elem = xml.add_element('network', name = Xrn(network_urn).get_hrn())
+ network_elem = xml.add_element('network', name = Xrn(network_urn).get_hrn())
else:
network_elem = xml
for hostname in hostnames:
nodes = SFAv1Node.get_nodes(xml, {'component_id': '*%s*' % hostname})
for node in nodes:
- slivers = SFAv1Slivers.get_slivers(node.element)
+ slivers = SFAv1Sliver.get_slivers(node.element)
for sliver in slivers:
node.element.remove(sliver.element)
# get slivers
node['slivers'] = SFAv1Sliver.get_slivers(node_elem)
# get tags
- node['tags'] = SFAv1PLTag.get_pl_tags(node_elem, ignore=Node.fields)
-
- parent = node_elem.getparent()
- if (parent != None) and (parent.tag=="network") and ("name" in parent.attrib):
- node['network_name'] = parent.attrib['name']
+ node['tags'] = SFAv1PLTag.get_pl_tags(node_elem, ignore=Node.fields+["hardware_type"])
+ # get hardware types
+ hardware_type_elems = node_elem.xpath('./default:hardware_type | ./hardware_type')
+ node['hardware_types'] = [hw_type.get_instance(HardwareType) for hw_type in hardware_type_elems]
+
+ # temporary... play nice with old slice manager rspec
+ if not node['component_name']:
+ hostname_elem = node_elem.find("hostname")
+ if hostname_elem != None:
+ node['component_name'] = hostname_elem.text
nodes.append(node)
return nodes