[haizea-commit] r519 - trunk/src/haizea/resourcemanager
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Thu Sep 25 13:29:49 CDT 2008
Author: borja
Date: 2008-09-25 13:29:48 -0500 (Thu, 25 Sep 2008)
New Revision: 519
Modified:
trunk/src/haizea/resourcemanager/scheduler.py
Log:
Minor fixes
Modified: trunk/src/haizea/resourcemanager/scheduler.py
===================================================================
--- trunk/src/haizea/resourcemanager/scheduler.py 2008-09-25 18:28:59 UTC (rev 518)
+++ trunk/src/haizea/resourcemanager/scheduler.py 2008-09-25 18:29:48 UTC (rev 519)
@@ -910,6 +910,13 @@
raise SchedException, "Determined suspension should start at %s, before the VMRR's start (%s) -- Suspend time not being properly estimated?" % (susp_start, vmrr.start)
vmrr.update_end(susp_start)
+
+ # If we're already suspending, remove previous susprrs
+ if vmrr.is_suspending():
+ for susprr in vmrr.susp_rrs:
+ self.slottable.removeReservation(susprr)
+ vmrr.susp_rrs = []
+
for susprr in suspend_rrs:
vmrr.susp_rrs.append(susprr)
@@ -1354,21 +1361,19 @@
self.logger.debug("LEASE-%i End of handleEndVM" % l.id)
self.logger.info("Stopped VMs for lease %i on nodes %s" % (l.id, rr.nodes.values()))
- def _handle_unscheduled_end_vm(self, l, rr, enact=False):
+ def _handle_unscheduled_end_vm(self, l, vmrr, enact=False):
self.logger.info("LEASE-%i The VM has ended prematurely." % l.id)
- self._handle_end_rr(l, rr)
- if rr.is_suspending():
- rrs = l.next_rrs(rr)
- for r in rrs:
- l.remove_rr(r)
- self.slottable.removeReservation(r)
- rr.end = get_clock().get_time()
- self._handle_end_vm(l, rr, enact=enact)
+ self._handle_end_rr(l, vmrr)
+ if vmrr.is_suspending():
+ for susprr in vmrr.susp_rrs:
+ self.slottable.removeReservation(susprr)
+ vmrr.end = get_clock().get_time()
+ self._handle_end_vm(l, vmrr, enact=enact)
nexttime = get_clock().get_next_schedulable_time()
if self.is_backfilling():
# We need to reevaluate the schedule to see if there are any future
# reservations that we can slide back.
- self.__reevaluate_schedule(l, rr.nodes.values(), nexttime, [])
+ self.__reevaluate_schedule(l, vmrr.nodes.values(), nexttime, [])
def _handle_start_suspend(self, l, rr):
self.logger.debug("LEASE-%i Start of handleStartSuspend" % l.id)
More information about the Haizea-commit
mailing list