From: Sandrine Avakian Date: Tue, 4 Jun 2013 12:52:13 +0000 (+0200) Subject: Bug fixe when creating leases. X-Git-Tag: sfa-2.1-26~7 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=ad8e48ba0986cae09767eae41da24bd55e564718;p=sfa.git Bug fixe when creating leases. --- diff --git a/sfa/senslab/slabaggregate.py b/sfa/senslab/slabaggregate.py index d995f2bd..474092bc 100644 --- a/sfa/senslab/slabaggregate.py +++ b/sfa/senslab/slabaggregate.py @@ -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') diff --git a/sfa/senslab/slabapi.py b/sfa/senslab/slabapi.py index a66433e0..ca1aa3b9 100644 --- a/sfa/senslab/slabapi.py +++ b/sfa/senslab/slabapi.py @@ -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: diff --git a/sfa/senslab/slabdriver.py b/sfa/senslab/slabdriver.py index de1b42ac..11d0ca17 100644 --- a/sfa/senslab/slabdriver.py +++ b/sfa/senslab/slabdriver.py @@ -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