Modified 'mobile' parameter of a node.
[sfa.git] / sfa / senslab / slabaggregate.py
index 5fc796c..bd277ab 100644 (file)
@@ -15,6 +15,7 @@ from sfa.rspecs.elements.node import Node
 #from sfa.rspecs.elements.services import Services
 from sfa.rspecs.elements.sliver import Sliver
 from sfa.rspecs.elements.lease import Lease
+from sfa.rspecs.elements.granularity import Granularity
 from sfa.rspecs.version_manager import VersionManager
 
 #from sfa.util.sfatime import datetime_to_epoch
@@ -107,6 +108,9 @@ class SlabAggregate:
         #filter_dict = {}
         tags_filter = {}
         
+        # get the granularity in second for the reservation system
+        grain = self.driver.GetLeaseGranularity()
+        
         # Commenting this part since all nodes should be returned, 
         # even if a slice is provided
         #if slice :
@@ -208,6 +212,9 @@ class SlabAggregate:
                 #if_count+=1
         
             #tags = [PLTag(node_tags[tag_id]) for tag_id in node['node_tag_ids']]
+            # Granularity
+            granularity = Granularity({'grain': grain})
+            rspec_node['granularity'] = granularity
             rspec_node['tags'] = []
             if node['hostname'] in slivers:
                 # add sliver info
@@ -231,9 +238,10 @@ class SlabAggregate:
         #if slice_record:
             #lease_filter.update({'name': slice_record['name']})
         return_fields = ['lease_id', 'hostname', 'site_id', \
-                            'name', 't_from', 't_until']
+                            'name', 'start_time', 'duration']
         #leases = self.driver.GetLeases(lease_filter)
         leases = self.driver.GetLeases()
+        grain = self.driver.GetLeaseGranularity()
         site_ids = []
         rspec_leases = []
         for lease in leases:
@@ -245,8 +253,8 @@ class SlabAggregate:
                 rspec_lease['component_id'] = hostname_to_urn(self.driver.hrn, \
                                         site, node['hostname'])
                 rspec_lease['slice_id'] = lease['slice_id']
-                rspec_lease['t_from'] = lease['t_from']
-                rspec_lease['t_until'] = lease['t_until']   
+                rspec_lease['start_time'] = lease['t_from']
+                rspec_lease['duration'] = (lease['t_until'] - lease['t_from']) / grain   
                 rspec_leases.append(rspec_lease)
         return rspec_leases    
         
@@ -305,12 +313,14 @@ class SlabAggregate:
                 logger.debug("SlabAggregate \tget_rspec **** \
                         default_sliver_attribs %s \r\n" %(default_sliver_attribs))
                 for attrib in default_sliver_attribs:
-                    logger.debug("SlabAggregate \tget_rspec ******* attrib %s \r\n"\
-                                            %(attrib))
+                    
     
                     rspec.version.add_default_sliver_attribute(attrib['tagname'], \
                                                                 attrib['value'])   
-        if options.get('list_leases') :
+        if options.get('list_leases') or options.get('list_leases') and options['list_leases'] != 'resources':
             leases = self.get_leases(slices)
             rspec.version.add_leases(leases)
+            
+        logger.debug("SlabAggregate \tget_rspec ******* rspec_toxml %s \r\n"\
+                                            %(rspec.toxml())) 
         return rspec.toxml()