return sfa_peer
- def verify_slice_leases(self, sfa_slice, requested_leases, kept_leases, \
+ def verify_slice_leases(self, sfa_slice, requested_jobs_dict, kept_leases, \
peer):
-
+
+
+ #First get the list of current leases from OAR
leases = self.driver.GetLeases({'name':sfa_slice['name']}, ['lease_id'])
if leases :
current_leases = [lease['lease_id'] for lease in leases]
+ #Deleted leases are the ones with lease id not declared in the Rspec
deleted_leases = list(set(current_leases).difference(kept_leases))
try:
if peer:
- self.driver.UnBindObjectFromPeer('slice', \
- sfa_slice['slice_id'], peer['shortname'])
- deleted = self.driver.DeleteLeases(deleted_leases)
- for lease in requested_leases:
- added = self.driver.AddLeases(lease['hostname'], \
- sfa_slice['name'], int(lease['t_from']), \
- int(lease['t_until']))
+ #peer = RegAuyhority object is unsubscriptable
+ #TODO :UnBindObjectFromPeer Quick and dirty auth='senslab2 SA 27/07/12
+ self.driver.UnBindObjectFromPeer('senslab2', 'slice', \
+ sfa_slice['record_id_slice'], peer.hrn)
+
+ deleted = self.driver.DeleteLeases(deleted_leases, \
+ sfa_slice['name'])
+
#TODO : catch other exception?
except KeyError:
logger.log_exc('Failed to add/remove slice leases')
-
+
+ #Add new leases
+ for start_time in requested_jobs_dict:
+ job = requested_jobs_dict[start_time]
+ added = self.driver.AddLeases(job['hostname'], \
+ sfa_slice, int(job['start_time']), \
+ int(job['duration']))
+
return leases
def verify_slice_nodes(self, sfa_slice, requested_slivers, peer):
username = tmp[(len(tmp)-1)]
#Update the table with the nodes that populate the slice
self.driver.db.update_job(sfa_slice['name'], nodes = added_nodes)
- logger.debug("SLABSLICES \tverify_slice_nodes slice %s "\
- %(sfa_slice))
+ logger.debug("SLABSLICES \tverify_slice_nodes slice %s \r\n \r\n deleted_nodes %s"\
+ %(sfa_slice,deleted_nodes))
#If there is a timeslot specified, then a job can be launched
- try:
- #slot = sfa_slice['timeslot']
- self.driver.LaunchExperimentOnOAR(sfa_slice, added_nodes, \
- username)
- except KeyError:
- logger.log_exc("SLABSLICES \verify_slice_nodes KeyError \
- sfa_slice %s " %(sfa_slice))
+ #try:
+ ##slot = sfa_slice['timeslot']
+ #self.driver.LaunchExperimentOnOAR(sfa_slice, added_nodes, \
+ #username)
+ #except KeyError:
+ #logger.log_exc("SLABSLICES \verify_slice_nodes KeyError \
+ #sfa_slice %s " %(sfa_slice))
if deleted_nodes: