From: Sandrine Avakian <sandrine.avakian@inria.fr>
Date: Thu, 13 Dec 2012 13:26:35 +0000 (+0100)
Subject: Take into account case where there is no information on
X-Git-Tag: sfa-2.1-24~3^2~16
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=4341c9afcfb47b34201826a3b18ddc62b9f4b243;p=sfa.git

Take into account case where there is no information on
the running experiment in slab db when asking for list
of leases.
---

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: