Bug fixe when creating leases.
authorSandrine Avakian <sandrine.avakian@inria.fr>
Tue, 4 Jun 2013 12:52:13 +0000 (14:52 +0200)
committerMohamed Larabi <mohamed.larabi@inria.fr>
Tue, 4 Jun 2013 15:55:29 +0000 (17:55 +0200)
sfa/senslab/slabaggregate.py
sfa/senslab/slabapi.py
sfa/senslab/slabdriver.py

index 2d38a7b..7e15d11 100644 (file)
@@ -310,8 +310,8 @@ class SlabAggregate:
    
       
 #from plc/aggregate.py 
-    def get_rspec(self, slice_xrn=None, login=None, version = None, options
-    =None):
+    def get_rspec(self, slice_xrn=None, login=None, version = None, \
+                options=None):
 
         rspec = None
         version_manager = VersionManager()     
@@ -335,21 +335,22 @@ class SlabAggregate:
 
         
         #if slice and 'expires' in slice:
-           #rspec.xml.set('expires',  datetime_to_epoch(slice['expires']))
+           #rspec.xml.set('expires',\
+                #datetime_to_string(utcparse(slice['expires']))
          # add sliver defaults
         #nodes, links = self.get_nodes(slice, slivers)
         logger.debug("\r\n \r\n SlabAggregate \tget_rspec *** \
                                         slice_xrn %s slices  %s\r\n \r\n"\
                                             %(slice_xrn, slices)) 
                                             
-        try:                                    
+        if options is not None:                                    
             lease_option = options['list_leases']
-        except KeyError:
+        else:
             #If no options are specified, at least print the resources
             lease_option = 'all'
            #if slice_xrn :
                #lease_option = 'all'
-            pass 
+          
         
         if lease_option in ['all', 'resources']:
         #if not options.get('list_leases') or options.get('list_leases') 
index a66433e..ca1aa3b 100644 (file)
@@ -42,6 +42,9 @@ class SlabTestbedAPI():
         return
      
      
+    @staticmethod
+    def GetMinExperimentDurationInSec():
+        return 600
                 
     @staticmethod     
     def GetPeers (peer_filter=None ):
@@ -1228,7 +1231,9 @@ class SlabTestbedAPI():
             
             #Now we have the slice record fixed_slicerec_dict, get the 
             #jobs associated to this slice
-            leases_list = self.GetLeases(login = login)
+            leases_list = []
+            if login is not None:
+                leases_list = self.GetLeases(login = login)
             #If no job is running or no job scheduled 
             #return only the slice record           
             if leases_list == [] and fixed_slicerec_dict:
index de1b42a..11d0ca1 100644 (file)
@@ -366,10 +366,10 @@ class SlabDriver(Driver):
                     #the lease to the requested leases list
                     duration_in_seconds = \
                             int(single_requested_lease['duration'])*60
-                    if duration_in_seconds > self.slab_api.GetLeaseGranularity():
+                    if duration_in_seconds > GetMinExperimentDurationInSec() :
                         requested_lease_list.append(single_requested_lease)
                         
-                    return requested_lease_list
+        return requested_lease_list
                         
     @staticmethod                    
     def _group_leases_by_start_time(requested_lease_list):
@@ -394,8 +394,8 @@ class SlabDriver(Driver):
                 
             if lease['start_time'] not in requested_job_dict:
                 if isinstance(lease['hostname'], str):
-                    #lease['hostname'] = [lease['hostname']]
-                    lease['hostname'] =  list(lease['hostname'])
+                    lease['hostname'] = [lease['hostname']]
+
                     
                 requested_job_dict[lease['start_time']] = lease