nodes should in a network
[sfa.git] / sfa / rspecs / elements / versions / sfav1Node.py
index e26ce79..b8fe27e 100644 (file)
@@ -29,11 +29,14 @@ class SFAv1Node:
         network_elems = SFAv1Network.get_networks(xml)
         if len(network_elems) > 0:
             network_elem = network_elems[0]
-        else:
-            network_elem = xml.root
-                    
+        elif len(nodes) > 0 and nodes[0].get('component_manager_id'):
+            network_elem = SFAv1Network.add_network(xml.root, {'name': nodes[0]['component_manager_id']})
+            
+
+        node_elems = []       
         for node in nodes:
             node_elem = etree.SubElement(network_elem, 'node')
+            node_elems.append(node_elem)
             network = None 
             if 'component_manager_id' in node and node['component_manager_id']:
                 node_elem.set('component_manager_id', node['component_manager_id'])
@@ -68,8 +71,8 @@ class SFAv1Node:
             if 'tags' in node:
                 for tag in node['tags']:
                    # expose this hard wired list of tags, plus the ones that are marked 'sfa' in their category
-                   if tag['tagname'] in ['fcdistro', 'arch'] or 'sfa' in tag['category'].split('/'):
-                        tag_element = etree.SubElement(node_elem, tag['tagname']).text=tag['value']
+                   if tag['name'] in ['fcdistro', 'arch']:
+                        tag_element = etree.SubElement(node_elem, tag['name']).text=tag['value']
 
             if 'slivers' in node:
                 for sliver in node['slivers']: