bugfixes
[sfa.git] / sfa / rspecs / elements / versions / sfav1Node.py
index ba03055..f62cc71 100644 (file)
@@ -1,4 +1,4 @@
-
+from sfa.util.sfalogging import logger
 from sfa.util.xml import XpathFilter
 from sfa.util.plxrn import PlXrn, xrn_to_hostname
 from sfa.util.xrn import Xrn
@@ -50,8 +50,10 @@ class SFAv1Node:
             if 'authority_id' in node and node['authority_id']:
                 node_elem.set('site_id', node['authority_id'])
 
-            location_elems = Element.add_elements(node_elem, 'location', node.get('location', []), Location.fields)
-            interface_elems = Element.add_elements(node_elem, 'interface', node.get('interfaces', []), Interface.fields)
+            location_elems = Element.add_elements(node_elem, 'location',
+                                                  node.get('location', []), Location.fields)
+            interface_elems = Element.add_elements(node_elem, 'interface', 
+                                                   node.get('interfaces', []), ['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)
@@ -93,6 +95,21 @@ class SFAv1Node:
         node_elems = xml.xpath(xpath)
         return SFAv1Node.get_node_objs(node_elems)
 
+    # xxx Thierry : an ugly hack to get the tests to pass again
+    # probably this needs to be trashed
+    # the original code returned the <sliver /> tag, 
+    # but we prefer the <node> father node instead as it already holds data
+    # initially this was to preserve the nodename...
+    # xxx I don't get the ' | //default:node/default:sliver' ...
+    @staticmethod
+    def get_nodes_with_slivers_thierry(xml):
+        # dropping the ''
+        xpath = '//node[count (sliver)>0]'
+        node_elems = xml.xpath(xpath)
+        #  we need to check/recompute the node data 
+        
+        return node_elems
+
     @staticmethod
     def get_nodes_with_slivers(xml):
         xpath = '//node/sliver | //default:node/default:sliver' 
@@ -116,7 +133,8 @@ class SFAv1Node:
             node['interfaces'] = Element.get_elements(node_elem, './default:interface | ./interface', Interface)
             node['services'] = PGv2Services.get_services(node_elem) 
             node['slivers'] = SFAv1Sliver.get_slivers(node_elem)
-            node['tags'] =  SFAv1PLTag.get_pl_tags(node_elem, ignore=Node.fields.keys())
+#thierry    node['tags'] =  SFAv1PLTag.get_pl_tags(node_elem, ignore=Node.fields.keys())
+            node['tags'] =  SFAv1PLTag.get_pl_tags(node_elem, ignore=Node.fields)
             nodes.append(node)
         return nodes