Merge branch 'geni-v3' of ssh://git.onelab.eu/git/sfa into geni-v3
[sfa.git] / sfa / rspecs / rspec.py
index 550bcc0..a17b7d6 100755 (executable)
@@ -18,11 +18,16 @@ class RSpec:
         self.user_options = user_options
         self.elements = {}
         if rspec:
-            self.parse_xml(rspec)
+            if version:
+                self.version = self.version_manager.get_version(version)
+                self.parse_xml(rspec, version)
+            else:
+                self.parse_xml(rspec)
         elif version:
             self.create(version)
         else:
             raise InvalidRSpec("No RSpec or version specified. Must specify a valid rspec string or a valid version") 
+
     def create(self, version=None):
         """
         Create root element
@@ -38,7 +43,6 @@ class RSpec:
         self.xml.set('expires', expires_ts)
         self.xml.set('generated', generated_ts)
 
-
     def parse_xml(self, xml, version=None):
         self.xml.parse_xml(xml)
         if not version:
@@ -91,12 +95,12 @@ class RSpec:
 
     def filter(self, filter):
         if 'component_manager_id' in filter:    
-            nodes = self.version.get_node_elements()
+            nodes = self.version.get_nodes()
             for node in nodes:
                 if 'component_manager_id' not in node.attrib or \
                   node.attrib['component_manager_id'] != filter['component_manager_id']:
                     parent = node.getparent()
-                    parent.remove(node) 
+                    parent.remove(node.element
         
 
     def toxml(self, header=True):