- node_elem.set('component_id', node['component_id'])
- component_name = Xrn(node['component_id']).get_leaf()
- node_elem.set('component_nama', component_name)
- if node.get('client_id'):
- node_elem.set('client_id', node['client_id'])
- if node.get('exclusive'):
- node_elem.set('exclusive', node['exclusive'])
- hardware_types = node.get('hardware_type', [])
- for hardware_type in hardware_types:
- hw_type_elem = etree.SubElement(node_elem, 'hardware_type')
- if hardware_type.get('name'):
- hw_type_elem.set('name', hardware_type['name'])
- if node.get('available') and node['available'].get('now'):
- available_elem = etree.SubElement(node_elem, 'available', \
- now=node['available']['now'])
+ component_name = xrn_to_hostname(node['component_id'])
+ node_elem.set('component_name', component_name)
+ # set hardware types
+ if node.get('hardware_types'):
+ for hardware_type in node.get('hardware_types', []):
+ node_elem.add_instance('hardware_type', hardware_type, HardwareType.fields)
+ # set location
+ if node.get('location'):
+ node_elem.add_instance('location', node['location'], Location.fields)
+
+ # set granularity
+ if node['exclusive'] == "true":
+ granularity = node.get('granularity')
+ node_elem.add_instance('granularity', granularity, granularity.fields)
+ # set interfaces
+ PGv2Interface.add_interfaces(node_elem, node.get('interfaces'))
+ #if node.get('interfaces'):
+ # for interface in node.get('interfaces', []):
+ # node_elem.add_instance('interface', interface, ['component_id', 'client_id'])
+ # set available element
+ if node.get('available'):
+ available_elem = node_elem.add_element('available', now=node['available'])
+ # add services
+ PGv2Services.add_services(node_elem, node.get('services', []))
+ # add slivers