[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