Merge branch 'master' into senslab2
[sfa.git] / sfa / rspecs / versions / slabv1.py
index 17aaffc..b966feb 100644 (file)
@@ -1,12 +1,13 @@
 from copy import deepcopy
-from StringIO import StringIO
-from sfa.util.xrn import Xrn, urn_to_sliver_id
-from sfa.util.plxrn import hostname_to_urn, xrn_to_hostname 
+
+
 from sfa.rspecs.version import RSpecVersion
 import sys
+from sfa.rspecs.elements.versions.slabv1Lease import Slabv1Lease
 from sfa.rspecs.elements.versions.slabv1Node import Slabv1Node
 from sfa.rspecs.elements.versions.slabv1Sliver import Slabv1Sliver
 from sfa.rspecs.elements.versions.slabv1Timeslot import Slabv1Timeslot
+from sfa.util.sfalogging import logger
  
 class Slabv1(RSpecVersion):
     #enabled = True
@@ -56,9 +57,10 @@ class Slabv1(RSpecVersion):
         return Slabv1Node.add_nodes(self.xml, nodes)
     
     def merge_node(self, source_node_tag, network, no_dupes = False):
-        if no_dupes and self.get_node_element(node['hostname']):
-            # node already exists
-            return
+        logger.debug("SLABV1 merge_node")
+        #if no_dupes and self.get_node_element(node['hostname']):
+            ## node already exists
+            #return
         network_tag = self.add_network(network)
         network_tag.append(deepcopy(source_node_tag))
 
@@ -175,8 +177,9 @@ class Slabv1(RSpecVersion):
                 #sliver_id = urn_to_sliver_id(sliver_urn, slice_id, node_id)
                 #node_elem.set('sliver_id', sliver_id)
 
-            # add the sliver type elemnt    
-            Slabv1SliverType.add_slivers(node_elem.element, sliver)         
+            # add the sliver type elemnt
+            Slabv1Sliver.add_slivers(node_elem.element, sliver)  
+            #Slabv1SliverType.add_slivers(node_elem.element, sliver)         
 
         # remove all nodes without slivers
         if not append:
@@ -215,7 +218,13 @@ class Slabv1(RSpecVersion):
         #for child in rspec.xml.iterchildren():
         #    self.xml.root.append(child)
         
-        
+    # Leases
+
+    def get_leases(self, lease_filter=None):
+        return Slabv1Lease.get_leases(self.xml, lease_filter)
+
+    def add_leases(self, leases, network = None, no_dupes=False):
+        Slabv1Lease.add_leases(self.xml, leases)    
 
     def cleanup(self):
         # remove unncecessary elements, attributes