autopep8
[sfa.git] / sfa / rspecs / elements / versions / sfav1Node.py
index 1931a58..23defad 100644 (file)
@@ -25,24 +25,27 @@ class SFAv1Node:
             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
 
-        node_elems = []       
+        node_elems = []
         for node in nodes:
-            node_fields = ['component_manager_id', 'component_id', 'boot_state']
+            node_fields = ['component_manager_id',
+                           'component_id', 'boot_state']
             node_elem = network_elem.add_instance('node', node, node_fields)
             node_elems.append(node_elem)
 
             # determine network hrn
-            network_hrn = None 
+            network_hrn = None
             if 'component_manager_id' in node and node['component_manager_id']:
                 network_hrn = Xrn(node['component_manager_id']).get_hrn()
 
             # set component_name attribute and  hostname element
             if 'component_id' in node and node['component_id']:
-                component_name = Xrn.unescape(get_leaf(Xrn(node['component_id']).get_hrn()))
+                component_name = Xrn.unescape(
+                    get_leaf(Xrn(node['component_id']).get_hrn()))
                 node_elem.set('component_name', component_name)
                 hostname_elem = node_elem.add_element('hostname')
                 hostname_elem.set_text(component_name)
@@ -56,23 +59,25 @@ class SFAv1Node:
             if location:
                 node_elem.add_instance('location', location, Location.fields)
 
-            # add exclusive tag to distinguish between Reservable and Shared nodes
+            # add exclusive tag to distinguish between Reservable and Shared
+            # nodes
             exclusive_elem = node_elem.add_element('exclusive')
             if node.get('exclusive') and node.get('exclusive') == 'true':
                 exclusive_elem.set_text('TRUE')
                 # add granularity of the reservation system
                 granularity = node.get('granularity')
                 if granularity:
-                    node_elem.add_instance('granularity', granularity, granularity.fields)
+                    node_elem.add_instance(
+                        'granularity', granularity, granularity.fields)
             else:
                 exclusive_elem.set_text('FALSE')
 
-
             if isinstance(node.get('interfaces'), list):
                 for interface in node.get('interfaces', []):
-                    node_elem.add_instance('interface', interface, ['component_id', 'client_id', 'ipv4']) 
-            
-            #if 'bw_unallocated' in node and node['bw_unallocated']:
+                    node_elem.add_instance('interface', interface, [
+                                           'component_id', 'client_id', 'ipv4'])
+
+            # if 'bw_unallocated' in node and node['bw_unallocated']:
             #    bw_unallocated = etree.SubElement(node_elem, 'bw_unallocated', units='kbps').text = str(int(node['bw_unallocated'])/1000)
 
             PGv2Services.add_services(node_elem, node.get('services', []))
@@ -81,12 +86,13 @@ class SFAv1Node:
                 for tag in tags:
                     # backdoor for FITeagle
                     # Alexander Willner <alexander.willner@tu-berlin.de>
-                    if tag['tagname']=="fiteagle_settings":
+                    if tag['tagname'] == "fiteagle_settings":
                         tag_elem = node_elem.add_element(tag['tagname'])
                         for subtag in tag['value']:
                             subtag_elem = tag_elem.add_element('setting')
                             subtag_elem.set('name', str(subtag['tagname']))
-                            subtag_elem.set('description', str(subtag['description']))
+                            subtag_elem.set('description', str(
+                                subtag['description']))
                             subtag_elem.set_text(subtag['value'])
                     else:
                         tag_elem = node_elem.add_element(tag['tagname'])
@@ -95,9 +101,9 @@ class SFAv1Node:
 
             # add sliver tag in Request Rspec
             if rspec_content_type == "request":
-                node_elem.add_instance('sliver', '', []) 
+                node_elem.add_instance('sliver', '', [])
 
-    @staticmethod 
+    @staticmethod
     def add_slivers(xml, slivers):
         component_ids = []
         for sliver in slivers:
@@ -108,7 +114,7 @@ class SFAv1Node:
             elif 'component_id' in sliver and sliver['component_id']:
                 filter['component_id'] = '*%s*' % sliver['component_id']
             if not filter:
-                continue 
+                continue
             nodes = SFAv1Node.get_nodes(xml, filter)
             if not nodes:
                 continue
@@ -118,56 +124,64 @@ class SFAv1Node:
     @staticmethod
     def remove_slivers(xml, hostnames):
         for hostname in hostnames:
-            nodes = SFAv1Node.get_nodes(xml, {'component_id': '*%s*' % hostname})
+            nodes = SFAv1Node.get_nodes(
+                xml, {'component_id': '*%s*' % hostname})
             for node in nodes:
                 slivers = SFAv1Sliver.get_slivers(node.element)
                 for sliver in slivers:
                     node.element.remove(sliver.element)
-        
+
     @staticmethod
     def get_nodes(xml, filter=None):
-        if filter is None: filter={}
-        xpath = '//node%s | //default:node%s' % (XpathFilter.xpath(filter), XpathFilter.xpath(filter))
+        if filter is None:
+            filter = {}
+        xpath = '//node%s | //default:node%s' % (
+            XpathFilter.xpath(filter), XpathFilter.xpath(filter))
         node_elems = xml.xpath(xpath)
         return SFAv1Node.get_node_objs(node_elems)
 
     @staticmethod
     def get_nodes_with_slivers(xml):
-        xpath = '//node[count(sliver)>0] | //default:node[count(default:sliver)>0]' 
+        xpath = '//node[count(sliver)>0] | //default:node[count(default:sliver)>0]'
         node_elems = xml.xpath(xpath)
         return SFAv1Node.get_node_objs(node_elems)
 
-
     @staticmethod
     def get_node_objs(node_elems):
-        nodes = []    
+        nodes = []
         for node_elem in node_elems:
             node = NodeElement(node_elem.attrib, node_elem)
             if 'site_id' in node_elem.attrib:
                 node['authority_id'] = node_elem.attrib['site_id']
             # get location
             location_elems = node_elem.xpath('./default:location | ./location')
-            locations = [dict(loc_elem.get_instance(Location)) for loc_elem in location_elems]  
+            locations = [dict(loc_elem.get_instance(Location))
+                         for loc_elem in location_elems]
             if len(locations) > 0:
                 node['location'] = locations[0]
             # get bwlimit
             bwlimit_elems = node_elem.xpath('./default:bw_limit | ./bw_limit')
-            bwlimits = [bwlimit_elem.get_instance(BWlimit) for bwlimit_elem in bwlimit_elems]
+            bwlimits = [bwlimit_elem.get_instance(
+                BWlimit) for bwlimit_elem in bwlimit_elems]
             if len(bwlimits) > 0:
                 node['bwlimit'] = bwlimits[0]
             # get interfaces
             iface_elems = node_elem.xpath('./default:interface | ./interface')
-            ifaces = [dict(iface_elem.get_instance(Interface)) for iface_elem in iface_elems]
+            ifaces = [dict(iface_elem.get_instance(Interface))
+                      for iface_elem in iface_elems]
             node['interfaces'] = ifaces
             # get services
-            node['services'] = PGv2Services.get_services(node_elem) 
+            node['services'] = PGv2Services.get_services(node_elem)
             # get slivers
             node['slivers'] = SFAv1Sliver.get_slivers(node_elem)
             # get tags
-            node['tags'] =  SFAv1PLTag.get_pl_tags(node_elem, ignore=NodeElement.fields+["hardware_type"])
+            node['tags'] = SFAv1PLTag.get_pl_tags(
+                node_elem, ignore=NodeElement.fields + ["hardware_type"])
             # get hardware types
-            hardware_type_elems = node_elem.xpath('./default:hardware_type | ./hardware_type')
-            node['hardware_types'] = [dict(hw_type.get_instance(HardwareType)) for hw_type in hardware_type_elems]
+            hardware_type_elems = node_elem.xpath(
+                './default:hardware_type | ./hardware_type')
+            node['hardware_types'] = [dict(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']:
@@ -176,5 +190,4 @@ class SFAv1Node:
                     node['component_name'] = hostname_elem.text
 
             nodes.append(node)
-        return nodes            
-
+        return nodes