component_name = xrn_to_hostname(node['component_id'])
node_elem.set('component_name', component_name)
# set hardware types
- for hardware_type in node.get('hardware_types', []):
- node_elem.add_instance('hardware_type', hardware_type, HardwareType.fields)
+ 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 interfaces
- for interface in node.get('interfaces', []):
- node_elem.add_instance('interface', interface, ['component_id', 'client_id', 'ipv4'])
+ 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('boot_state', '').lower() == 'boot':
- available_elem = node_elem.add_element('available', now='True')
- else:
- available_elem = node_elem.add_element('available', now='False')
+ if node.get('boot_state'):
+ if node.get('boot_state').lower() == 'boot':
+ available_elem = node_elem.add_element('available', now='true')
+ else:
+ available_elem = node_elem.add_element('available', now='false')
# add services
PGv2Services.add_services(node_elem, node.get('services', []))
# add slivers
slivers = Sliver({'type': 'plab-vserver'})
# we must also advertise the available initscripts
slivers['tags'] = []
- for initscript in node.get('pl_initscripts', []):
- slivers['tags'].append({'name': 'initscript', 'value': initscript['name']})
+ if node.get('pl_initscripts'):
+ for initscript in node.get('pl_initscripts', []):
+ slivers['tags'].append({'name': 'initscript', 'value': initscript['name']})
PGv2SliverType.add_slivers(node_elem, slivers)
return node_elems
node['authority_id'] = Xrn(node_elem.attrib['component_id']).get_authority_urn()
# get hardware types
- hardware_type_elems = node_elem.xpath('./default:hardwate_type | ./hardware_type')
- node['hardware_types'] = [hw_type.get_instnace(HardwareType) for hw_type in hardware_type_elems]
+ 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]
# get location
location_elems = node_elem.xpath('./default:location | ./location')