[haizea-commit] r506 - in trunk/src/haizea/resourcemanager: . deployment
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Fri Sep 19 12:00:46 CDT 2008
Author: borja
Date: 2008-09-19 12:00:46 -0500 (Fri, 19 Sep 2008)
New Revision: 506
Modified:
trunk/src/haizea/resourcemanager/datastruct.py
trunk/src/haizea/resourcemanager/deployment/imagetransfer.py
trunk/src/haizea/resourcemanager/scheduler.py
Log:
Adapted image transfer scheduler to new lease data structure topology
Modified: trunk/src/haizea/resourcemanager/datastruct.py
===================================================================
--- trunk/src/haizea/resourcemanager/datastruct.py 2008-09-19 16:53:01 UTC (rev 505)
+++ trunk/src/haizea/resourcemanager/datastruct.py 2008-09-19 17:00:46 UTC (rev 506)
@@ -137,8 +137,14 @@
self.logger.log(loglevel, "Mem image map : %s" % pretty_nodemap(self.memimagemap))
def print_rrs(self, loglevel=LOGLEVEL_VDEBUG):
- self.logger.log(loglevel, "RESOURCE RESERVATIONS")
- self.logger.log(loglevel, "~~~~~~~~~~~~~~~~~~~~~")
+ if len(self.deployment_rrs) > 0:
+ self.logger.log(loglevel, "DEPLOYMENT RESOURCE RESERVATIONS")
+ self.logger.log(loglevel, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
+ for r in self.deployment_rrs:
+ r.print_contents(loglevel)
+ self.logger.log(loglevel, "##")
+ self.logger.log(loglevel, "VM RESOURCE RESERVATIONS")
+ self.logger.log(loglevel, "~~~~~~~~~~~~~~~~~~~~~~~~")
for r in self.vm_rrs:
r.print_contents(loglevel)
self.logger.log(loglevel, "##")
@@ -149,6 +155,9 @@
def append_vmrr(self, vmrr):
self.vm_rrs.append(vmrr)
+
+ def append_deployrr(self, vmrr):
+ self.deployment_rrs.append(vmrr)
def get_last_vmrr(self):
return self.vm_rrs[-1]
Modified: trunk/src/haizea/resourcemanager/deployment/imagetransfer.py
===================================================================
--- trunk/src/haizea/resourcemanager/deployment/imagetransfer.py 2008-09-19 16:53:01 UTC (rev 505)
+++ trunk/src/haizea/resourcemanager/deployment/imagetransfer.py 2008-09-19 17:00:46 UTC (rev 506)
@@ -113,7 +113,7 @@
lease.appendRR(filetransfer)
elif mechanism == constants.TRANSFER_MULTICAST:
filetransfer = self.schedule_imagetransfer_edf(lease, musttransfer, nexttime)
- lease.append_rr(filetransfer)
+ lease.append_deployrr(filetransfer)
# No chance of scheduling exception at this point. It's safe
# to add entries to the pools
@@ -164,7 +164,7 @@
lease.state = Lease.STATE_READY
lease.imagesavail = nexttime
for rr in transferRRs:
- lease.append_rr(rr)
+ lease.append_deployrr(rr)
def find_earliest_starting_times(self, lease_req, nexttime):
@@ -394,7 +394,7 @@
@staticmethod
def handle_start_filetransfer(sched, lease, rr):
- sched.rm.logger.debug("LEASE-%i Start of handleStartFileTransfer" % lease.id)
+ sched.logger.debug("LEASE-%i Start of handleStartFileTransfer" % lease.id)
lease.print_contents()
if lease.state == Lease.STATE_SCHEDULED or lease.state == Lease.STATE_READY:
lease.state = Lease.STATE_PREPARING
@@ -406,7 +406,7 @@
@staticmethod
def handle_end_filetransfer(sched, lease, rr):
- sched.rm.logger.debug("LEASE-%i Start of handleEndFileTransfer" % lease.id)
+ sched.logger.debug("LEASE-%i Start of handleEndFileTransfer" % lease.id)
lease.print_contents()
if lease.state == Lease.STATE_PREPARING:
lease.state = Lease.STATE_READY
@@ -416,24 +416,24 @@
# Update VM Image maps
for lease_id, v in vnodes:
- lease = sched.scheduledleases.get_lease(lease_id)
- lease.vmimagemap[v] = physnode
+ lease = sched.leases.get_lease(lease_id)
+ lease.diskimagemap[v] = physnode
# Find out timeout of image. It will be the latest end time of all the
# leases being used by that image.
leases = [l for (l, v) in vnodes]
maxend=None
for lease_id in leases:
- l = sched.scheduledleases.get_lease(lease_id)
+ l = sched.leases.get_lease(lease_id)
end = lease.get_endtime()
if maxend==None or end>maxend:
maxend=end
# TODO: ENACTMENT: Verify the image was transferred correctly
- sched.deployment.add_diskimages(physnode, rr.file, lease.diskimage_size, vnodes, timeout=maxend)
+ sched.deployment_scheduler.add_diskimages(physnode, rr.file, lease.diskimage_size, vnodes, timeout=maxend)
lease.print_contents()
- sched.rm.logger.debug("LEASE-%i End of handleEndFileTransfer" % lease.id)
- sched.rm.logger.info("Completed image transfer for lease %i" % (lease.id))
+ sched.logger.debug("LEASE-%i End of handleEndFileTransfer" % lease.id)
+ sched.logger.info("Completed image transfer for lease %i" % (lease.id))
def add_diskimages(self, pnode_id, diskimage_id, diskimage_size, vnodes, timeout):
self.logger.debug("Adding image for leases=%s in nod_id=%i" % (vnodes, pnode_id))
@@ -517,7 +517,7 @@
# self.storage.createCopyFromCache(pnode, lease.diskImageSize)
def cleanup(self, lease, vmrr):
- for vnode, pnode in lease.vmimagemap.items():
+ for vnode, pnode in lease.diskimagemap.items():
self.resourcepool.remove_diskimage(pnode, lease.id, vnode)
class FileTransferResourceReservation(ResourceReservation):
Modified: trunk/src/haizea/resourcemanager/scheduler.py
===================================================================
--- trunk/src/haizea/resourcemanager/scheduler.py 2008-09-19 16:53:01 UTC (rev 505)
+++ trunk/src/haizea/resourcemanager/scheduler.py 2008-09-19 17:00:46 UTC (rev 506)
@@ -1194,10 +1194,10 @@
self.slottable.removeReservation(susprr)
lease.remove_vmrr(vmrr)
self.slottable.removeReservation(vmrr)
- for vnode, pnode in lease.vmimagemap.items():
+ for vnode, pnode in lease.diskimagemap.items():
self.resourcepool.remove_diskimage(pnode, lease.id, vnode)
self.deployment_scheduler.cancel_deployment(lease)
- lease.vmimagemap = {}
+ lease.diskimagemap = {}
lease.state = Lease.STATE_QUEUED
self.__enqueue_in_order(lease)
get_accounting().incr_counter(constants.COUNTER_QUEUESIZE, lease.id)
More information about the Haizea-commit
mailing list