- logger.log('reservation.restart_slice, slice %s, to be written'%slicename)
-
- def show_time (self, timestamp):
- return time.strftime ("%Y-%m-%d %H:%M %Z",time.gmtime(timestamp))
-
- ####################
- def start(self,options,conf):
- logger.log("reservation: plugin performing dummy start...")
-
- # this method is entirely about making sure that we have events scheduled
- # at the <granularity> intervals where there is a lease that starts or ends
- def GetSlivers (self, data, conf=None, plc=None):
-
- # check we're using a compliant GetSlivers
- if 'reservation_policy' not in data:
- logger.log_missing_data("reservation.GetSlivers",'reservation_policy')
- return
- reservation_policy=data['reservation_policy']
- if 'leases' not in data:
- logger.log_missing_data("reservation.GetSlivers",'leases')
- return
-
-
- # store data locally
- # since we've asked for persistent_data, we should not get an empty data here
- if data: self.data = data
-
- # regular nodes are not affected
- if reservation_policy == 'none':
- return
- elif reservation_policy not in ['lease_or_idle','lease_or_shared']:
- logger.log("reservation: ignoring -- unexpected value for reservation_policy %r"%reservation_policy)
- return
- # at this point we have reservation_policy in ['lease_or_idle','lease_or_shared']
- # we make no difference for now
- logger.verbose('reservation.GetSlivers : reservable node -- listing timers ')
-
- self.sync_timers_from_leases()
- for timestamp in self.timers.keys():
- logger.verbose('TIMER armed for %s'%self.show_time(timestamp))
-
- logger.verbose('reservation.GetSlivers : end listing timers')
+ logger.log('reservation: Restarting slice %s'%(slicename))
+ self.debug_box('before restarting',slicename)
+ worker=accounts.get(slicename)
+ try:
+ # dig in self.data to retrieve corresponding rec
+ slivers = [ sliver for sliver in self.data.slivers if sliver['name']==slicename ]
+ sliver=slivers[0]
+
+ #
+ logger.verbose("reservation: Located worker object %r"%worker)
+ worker.start(rec)
+ except:
+ logger.log_exc("reservation.restart_slice: Could not start slice %s through its worker"%slicename)
+ # we hope the status line won't return anything
+ self.debug_box('after restarting',slicename)