X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Fversions%2Fpgv2Node.py;h=cae644dc39d4c70506f42b02694e5b84c65931e3;hb=013d9db0fd63345c1d24b2b15b59d3dc5036bc18;hp=eb0518fa38f65b15cb48325025415ad53acd05a6;hpb=04ed4ac050de268d1469c379f6bf60a46bfc333f;p=sfa.git diff --git a/sfa/rspecs/elements/versions/pgv2Node.py b/sfa/rspecs/elements/versions/pgv2Node.py index eb0518fa..cae644dc 100644 --- a/sfa/rspecs/elements/versions/pgv2Node.py +++ b/sfa/rspecs/elements/versions/pgv2Node.py @@ -25,19 +25,22 @@ class PGv2Node: 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 @@ -47,8 +50,9 @@ class PGv2Node: 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 @@ -75,8 +79,8 @@ class PGv2Node: 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')