[haizea-commit] r469 - trunk/src/haizea/resourcemanager
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Thu Aug 7 06:10:00 CDT 2008
Author: borja
Date: 2008-08-07 06:09:59 -0500 (Thu, 07 Aug 2008)
New Revision: 469
Modified:
trunk/src/haizea/resourcemanager/resourcepool.py
trunk/src/haizea/resourcemanager/rm.py
trunk/src/haizea/resourcemanager/slottable.py
Log:
Miscellaneous small fixes
Modified: trunk/src/haizea/resourcemanager/resourcepool.py
===================================================================
--- trunk/src/haizea/resourcemanager/resourcepool.py 2008-08-07 10:32:58 UTC (rev 468)
+++ trunk/src/haizea/resourcemanager/resourcepool.py 2008-08-07 11:09:59 UTC (rev 469)
@@ -39,11 +39,15 @@
self.imagenode_bandwidth = self.info.get_bandwidth()
- self.reusealg = self.rm.config.get("diskimage-reuse")
- if self.reusealg == constants.REUSE_IMAGECACHES:
- self.maxcachesize = self.rm.config.get("diskimage-cache-size")
+ self.lease_deployment_type = self.rm.config.get("lease-preparation")
+ if self.lease_deployment_type == constants.DEPLOYMENT_TRANSFER:
+ self.reusealg = self.rm.config.get("diskimage-reuse")
+ if self.reusealg == constants.REUSE_IMAGECACHES:
+ self.maxcachesize = self.rm.config.get("diskimage-cache-size")
+ else:
+ self.maxcachesize = None
else:
- self.maxcachesize = None
+ self.reusealg = None
def loadEnactmentModules(self):
mode = self.rm.config.get("mode")
Modified: trunk/src/haizea/resourcemanager/rm.py
===================================================================
--- trunk/src/haizea/resourcemanager/rm.py 2008-08-07 10:32:58 UTC (rev 468)
+++ trunk/src/haizea/resourcemanager/rm.py 2008-08-07 11:09:59 UTC (rev 469)
@@ -315,16 +315,29 @@
# events in OpenNebula 1.2. For now, the only event is a prematurely
# ending VM.
def notify_event(self, lease_id, event):
- self.scheduler.notify_event(lease_id, event)
-
+ try:
+ self.scheduler.notify_event(lease_id, event)
+ except Exception, msg:
+ # Exit if something goes horribly wrong
+ self.logger.error("Exception when notifying an event for lease %i. Dumping state..." % lease_id , constants.RM)
+ self.print_stats("ERROR", verbose=True)
+ raise
+
def cancel_lease(self, lease_id):
"""Cancels a lease.
Arguments:
lease -- Lease to cancel
- """
- self.scheduler.cancel_lease(lease_id)
+ """
+ try:
+ self.scheduler.cancel_lease(lease_id)
+ except Exception, msg:
+ # Exit if something goes horribly wrong
+ self.logger.error("Exception when canceling lease %i. Dumping state..." % lease_id, constants.RM)
+ self.print_stats("ERROR", verbose=True)
+ raise
+
class Clock(object):
"""Base class for the resource manager's clock.
Modified: trunk/src/haizea/resourcemanager/slottable.py
===================================================================
--- trunk/src/haizea/resourcemanager/slottable.py 2008-08-07 10:32:58 UTC (rev 468)
+++ trunk/src/haizea/resourcemanager/slottable.py 2008-08-07 11:09:59 UTC (rev 469)
@@ -177,8 +177,9 @@
# Inefficient, but ok since this query seldom happens
res = [i.value for i in self.reservationsByEnd if isinstance(i.value, ds.VMResourceReservation) and i.value.prematureend > after]
if len(res) > 0:
- res.sort()
- return res[0].prematureend
+ prematureends = [r.prematureend for r in res]
+ prematureends.sort()
+ return prematureends[0]
else:
return None
@@ -405,9 +406,9 @@
def findLeasesToPreempt(self, mustpreempt, startTime, endTime):
def comparepreemptability(rrX, rrY):
- if rrX.lease.tSubmit > rrY.lease.submit_time:
+ if rrX.lease.submit_time > rrY.lease.submit_time:
return constants.BETTER
- elif rrX.lease.tSubmit < rrY.lease.submit_time:
+ elif rrX.lease.submit_time < rrY.lease.submit_time:
return constants.WORSE
else:
return constants.EQUAL
@@ -821,10 +822,12 @@
# TODO: The deployment module should just provide a list of nodes
# it prefers
- reusealg = self.rm.config.get("diskimage-reuse")
nodeswithimg=[]
- if reusealg==constants.REUSE_IMAGECACHES:
- nodeswithimg = self.rm.resourcepool.getNodesWithImgInPool(diskImageID, start)
+ self.lease_deployment_type = self.rm.config.get("lease-preparation")
+ if self.lease_deployment_type == constants.DEPLOYMENT_TRANSFER:
+ reusealg = self.rm.config.get("diskimage-reuse")
+ if reusealg==constants.REUSE_IMAGECACHES:
+ nodeswithimg = self.rm.resourcepool.getNodesWithImgInPool(diskImageID, start)
# Compares node x and node y.
# Returns "x is ??? than y" (???=BETTER/WORSE/EQUAL)
More information about the Haizea-commit
mailing list