Express Lease start_time in RFC3339 date format not in epoch
[sfa.git] / sfa / rspecs / elements / versions / slabv1Lease.py
index 24689c7..2991a49 100644 (file)
@@ -1,7 +1,7 @@
 from sfa.util.sfalogging import logger
 from sfa.util.xml import XpathFilter
 from sfa.util.xrn import Xrn
-
+from sfa.util.sfatime import utcparse, datetime_to_string, datetime_to_epoch
 
 
 #from sfa.rspecs.elements.versions.sfav1PLTag import SFAv1PLTag
@@ -26,6 +26,8 @@ class Slabv1Lease:
          
         lease_elems = []       
         for lease in leases:
+            lease['start_time'] = datetime_to_string(utcparse(lease['start_time']))
+
             lease_fields = ['lease_id', 'component_id', 'slice_id', 'start_time', 'duration']
             lease_elem = network_elem.add_instance('lease', lease, lease_fields)
             lease_elems.append(lease_elem)
@@ -39,15 +41,16 @@ class Slabv1Lease:
 
     @staticmethod
     def get_lease_objs(lease_elems):
-        leases = []    
+        leases = []
         for lease_elem in lease_elems:
-            lease = Lease(lease_elem.attrib, lease_elem)
-            if lease.get('lease_id'):
-               lease['lease_id'] = lease_elem.attrib['lease_id']
-            lease['component_id'] = lease_elem.attrib['component_id']
-            lease['slice_id'] = lease_elem.attrib['slice_id']
-            lease['start_time'] = lease_elem.attrib['start_time']
-            lease['duration'] = lease_elem.attrib['duration']
-
-            leases.append(lease)
-        return leases      
\ No newline at end of file
+            #get nodes
+            node_elems = lease_elem.xpath('./default:node | ./node')
+            for node_elem in node_elems:
+                 lease = Lease(lease_elem.attrib, lease_elem)
+                 lease['slice_id'] = lease_elem.attrib['slice_id']
+                 lease['start_time'] = datetime_to_epoch(utcparse(lease_elem.attrib['start_time']))
+                 lease['duration'] = lease_elem.attrib['duration']
+                 lease['component_id'] = node_elem.attrib['component_id']
+                 leases.append(lease)
+
+        return leases