replaced Element.get_elements() with XmlNode.get_instance(). replaced Element.add_ele...
[sfa.git] / sfa / rspecs / elements / versions / sfav1Sliver.py
index 22989f9..e8fc0b7 100644 (file)
@@ -12,13 +12,17 @@ class SFAv1Sliver:
         if not isinstance(slivers, list):
             slivers = [slivers]
         for sliver in slivers:
-            sliver_elem = Element.add_elements(xml, 'sliver', sliver, ['name'])[0]
+            sliver_elem = xml.add_instance('sliver', sliver, ['name'])
+            SFAv1Sliver.add_sliver_attributes(sliver_elem, sliver.get('tags', []))
             if sliver.get('sliver_id'):
                 sliver_id_leaf = Xrn(sliver.get('sliver_id')).get_leaf()
                 sliver_id_parts = sliver_id_leaf.split(':')
                 name = sliver_id_parts[0]
                 sliver_elem.set('name', name)
-            SFAv1PLTag.add_pl_tags(sliver_elem, sliver.get('tags', []))
+
+    @staticmethod
+    def add_sliver_attributes(xml, attributes):
+        SFAv1PLTag.add_pl_tags(xml, attributes)
                     
     @staticmethod
     def get_slivers(xml, filter={}):
@@ -29,6 +33,10 @@ class SFAv1Sliver:
             sliver = Sliver(sliver_elem.attrib,sliver_elem)
             if 'component_id' in xml.attrib:     
                 sliver['component_id'] = xml.attrib['component_id']
-            sliver['tags'] = SFAv1PLTag.get_pl_tags(sliver_elem, ignore=Sliver.fields.keys())
+            sliver['tags'] = SFAv1Sliver.get_sliver_attributes(sliver_elem)
             slivers.append(sliver)
-        return slivers            
+        return slivers           
+
+    @staticmethod
+    def get_sliver_attributes(xml, filter={}):
+        return SFAv1PLTag.get_pl_tags(xml, ignore=Sliver.fields)