From 4341c9afcfb47b34201826a3b18ddc62b9f4b243 Mon Sep 17 00:00:00 2001 From: Sandrine Avakian Date: Thu, 13 Dec 2012 14:26:35 +0100 Subject: [PATCH] Take into account case where there is no information on the running experiment in slab db when asking for list of leases. --- sfa/senslab/slabaggregate.py | 6 +++++- sfa/senslab/slabdriver.py | 23 ++++++++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/sfa/senslab/slabaggregate.py b/sfa/senslab/slabaggregate.py index a464eb23..3c1dfa56 100644 --- a/sfa/senslab/slabaggregate.py +++ b/sfa/senslab/slabaggregate.py @@ -281,7 +281,11 @@ class SlabAggregate: rspec_lease['component_id'] = slab_xrn.urn #rspec_lease['component_id'] = hostname_to_urn(self.driver.hrn, \ #site, node['hostname']) - rspec_lease['slice_id'] = lease['slice_id'] + try: + rspec_lease['slice_id'] = lease['slice_id'] + except KeyError: + #No info on the slice used in slab_xp table + pass rspec_lease['start_time'] = lease['t_from'] rspec_lease['duration'] = (lease['t_until'] - lease['t_from']) \ / grain diff --git a/sfa/senslab/slabdriver.py b/sfa/senslab/slabdriver.py index 81ac2c45..d9d69da1 100644 --- a/sfa/senslab/slabdriver.py +++ b/sfa/senslab/slabdriver.py @@ -1338,7 +1338,7 @@ class SlabDriver(Driver): jobs_psql_query = slab_dbsession.query(SenslabXP).all() jobs_psql_dict = [ (row.job_id, row.__dict__ )for row in jobs_psql_query ] jobs_psql_dict = dict(jobs_psql_dict) - logger.debug("SLABDRIVER \r\n \r\n \tGetLeases jobs_psql_dict %s"\ + logger.debug("SLABDRIVER \tGetLeases jobs_psql_dict %s"\ %(jobs_psql_dict)) jobs_psql_id_list = [ row.job_id for row in jobs_psql_query ] @@ -1347,11 +1347,19 @@ class SlabDriver(Driver): for resa in unfiltered_reservation_list: logger.debug("SLABDRIVER \tGetLeases USER %s"\ %(resa['user'])) - #Cosntruct list of jobs (runing, waiting..) in oar - job_oar_list.append(resa['lease_id']) + #Cosntruct list of jobs (runing, waiting..) in oar + job_oar_list.append(resa['lease_id']) + #If there is information on the job in SLAB DB (slice used and job id) if resa['lease_id'] in jobs_psql_dict: job_info = jobs_psql_dict[resa['lease_id']] - + logger.debug("SLABDRIVER \tGetLeases resa_user_dict %s"\ + %(resa_user_dict)) + resa['slice_hrn'] = job_info['slice_hrn'] + resa['slice_id'] = hrn_to_urn(resa['slice_hrn'], 'slice') + + #Assume it is a senslab slice: + else: + resa['slice_id'] = hrn_to_urn(self.root_auth+'.'+ resa['user'] +"_slice" , 'slice') #if resa['user'] not in resa_user_dict: #logger.debug("SLABDRIVER \tGetLeases userNOTIN ") #ldap_info = self.ldap.LdapSearch('(uid='+resa['user']+')') @@ -1379,9 +1387,7 @@ class SlabDriver(Driver): #resa['slice_hrn'] = resa_user_dict[resa['user']]['slice_info']['hrn'] #resa['slice_id'] = hrn_to_urn(resa['slice_hrn'], 'slice') - - resa['slice_hrn'] = job_info['slice_hrn'] - resa['slice_id'] = hrn_to_urn(resa['slice_hrn'], 'slice') + resa['component_id_list'] = [] #Transform the hostnames into urns (component ids) @@ -1402,8 +1408,7 @@ class SlabDriver(Driver): self.update_jobs_in_slabdb(job_oar_list, jobs_psql_id_list) - logger.debug("SLABDRIVER \tGetLeases resa_user_dict %s"\ - %(resa_user_dict)) + #for resa in unfiltered_reservation_list: -- 2.47.0