[haizea-commit] r471 - in trunk/src/haizea/resourcemanager: . frontends

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Thu Aug 7 12:03:06 CDT 2008


Author: borja
Date: 2008-08-07 12:03:06 -0500 (Thu, 07 Aug 2008)
New Revision: 471

Modified:
   trunk/src/haizea/resourcemanager/accounting.py
   trunk/src/haizea/resourcemanager/datastruct.py
   trunk/src/haizea/resourcemanager/frontends/opennebula.py
   trunk/src/haizea/resourcemanager/frontends/rpc.py
   trunk/src/haizea/resourcemanager/frontends/tracefile.py
Log:
Decoupled lease data structures from scheduler

Modified: trunk/src/haizea/resourcemanager/accounting.py
===================================================================
--- trunk/src/haizea/resourcemanager/accounting.py	2008-08-07 16:21:09 UTC (rev 470)
+++ trunk/src/haizea/resourcemanager/accounting.py	2008-08-07 17:03:06 UTC (rev 471)
@@ -219,7 +219,6 @@
         # Remove some data that won't be necessary in the reporting tools
         for l in leases.values():
             l.clear_rrs()
-            l.scheduler = None
             l.logger = None
             self.data.leases[l.id] = l
 

Modified: trunk/src/haizea/resourcemanager/datastruct.py
===================================================================
--- trunk/src/haizea/resourcemanager/datastruct.py	2008-08-07 16:21:09 UTC (rev 470)
+++ trunk/src/haizea/resourcemanager/datastruct.py	2008-08-07 17:03:06 UTC (rev 471)
@@ -87,11 +87,6 @@
         self.vnode_enactment_info = None
         
         self.logger = logging.getLogger("LEASES")
-
-    # TODO: Remove the link to the scheduler, and pass all necessary information
-    # as parameters to methods.
-    def set_scheduler(self, scheduler):
-        self.scheduler = scheduler
         
     def print_contents(self, loglevel="VDEBUG"):
         self.logger.log(loglevel, "Lease ID       : %i" % self.id)
@@ -178,14 +173,19 @@
     
     # TODO: Factor out into deployment modules
     def estimate_image_transfer_time(self, bandwidth):
-        forceTransferTime = self.scheduler.rm.config.get("force-imagetransfer-time")
+        from haizea.resourcemanager.rm import ResourceManager
+        config = ResourceManager.get_singleton().config
+        forceTransferTime = config.get("force-imagetransfer-time")
         if forceTransferTime != None:
             return forceTransferTime
         else:      
             return estimate_transfer_time(self.diskimage_size, bandwidth)
         
+    # TODO: Factor out
     def estimate_migration_time(self, bandwidth):
-        whattomigrate = self.scheduler.rm.config.get("what-to-migrate")
+        from haizea.resourcemanager.rm import ResourceManager
+        config = ResourceManager.get_singleton().config
+        whattomigrate = config.get("what-to-migrate")
         if whattomigrate == MIGRATE_NONE:
             return TimeDelta(seconds=0)
         else:
@@ -195,9 +195,11 @@
                 mbtotransfer = self.diskimage_size + self.requested_resources.get_by_type(RES_MEM)
             return estimate_transfer_time(mbtotransfer, bandwidth)
         
-    # TODO: This whole function has to be rethought
+    # TODO: This whole function has to be rethought, and factored out
     def get_suspend_threshold(self, initial, suspendrate, migrating=False, bandwidth=None):
-        threshold = self.scheduler.rm.config.get("force-suspend-threshold")
+        from haizea.resourcemanager.rm import ResourceManager
+        config = ResourceManager.get_singleton().config
+        threshold = config.get("force-suspend-threshold")
         if threshold != None:
             # If there is a hard-coded threshold, use that
             return threshold
@@ -219,8 +221,8 @@
                     threshold = self.estimate_suspend_resume_time(suspendrate) * 2
             else:
                 #threshold = self.scheduler.rm.config.getBootOverhead() + deploytime + self.estimateSuspendResumeTime(suspendrate)
-                threshold = self.scheduler.rm.config.get("bootshutdown-overhead") + self.estimate_suspend_resume_time(suspendrate)
-            factor = self.scheduler.rm.config.get("suspend-threshold-factor") + 1
+                threshold = config.get("bootshutdown-overhead") + self.estimate_suspend_resume_time(suspendrate)
+            factor = config.get("suspend-threshold-factor") + 1
             return roundDateTimeDelta(threshold * factor)
         
     def xmlrpc_marshall(self):

Modified: trunk/src/haizea/resourcemanager/frontends/opennebula.py
===================================================================
--- trunk/src/haizea/resourcemanager/frontends/opennebula.py	2008-08-07 16:21:09 UTC (rev 470)
+++ trunk/src/haizea/resourcemanager/frontends/opennebula.py	2008-08-07 17:03:06 UTC (rev 471)
@@ -122,7 +122,6 @@
         # Only one node for now
         leasereq.vnode_enactment_info = {}
         leasereq.vnode_enactment_info[1] = int(req["oid"])
-        leasereq.set_scheduler(self.rm.scheduler)
         return leasereq
     
     def create_ar_lease(self, req, attrs, haizea_param):
@@ -144,7 +143,6 @@
         # Only one node for now
         leasereq.vnode_enactment_info = {}
         leasereq.vnode_enactment_info[1] = int(req["oid"])
-        leasereq.set_scheduler(self.rm.scheduler)
         return leasereq
 
     def create_immediate_lease(self, req, attrs, haizea_param):
@@ -158,6 +156,5 @@
         # Only one node for now
         leasereq.vnode_enactment_info = {}
         leasereq.vnode_enactment_info[1] = int(req["oid"])
-        leasereq.set_scheduler(self.rm.scheduler)
         return leasereq
         
\ No newline at end of file

Modified: trunk/src/haizea/resourcemanager/frontends/rpc.py
===================================================================
--- trunk/src/haizea/resourcemanager/frontends/rpc.py	2008-08-07 16:21:09 UTC (rev 470)
+++ trunk/src/haizea/resourcemanager/frontends/rpc.py	2008-08-07 17:03:06 UTC (rev 471)
@@ -66,7 +66,6 @@
             leasereq = ARLease(tSubmit, start, duration, vmimage, vmimagesize, numnodes, resreq, preemptible)
 
         leasereq.state = constants.LEASE_STATE_PENDING
-        leasereq.set_scheduler(self.rm.scheduler)
         
         self.accumulated.append(leasereq)
         

Modified: trunk/src/haizea/resourcemanager/frontends/tracefile.py
===================================================================
--- trunk/src/haizea/resourcemanager/frontends/tracefile.py	2008-08-07 16:21:09 UTC (rev 470)
+++ trunk/src/haizea/resourcemanager/frontends/tracefile.py	2008-08-07 17:03:06 UTC (rev 471)
@@ -68,10 +68,6 @@
                    if slowdown_overhead != 0:
                        r.add_runtime_overhead(slowdown_overhead)
                    r.add_boot_overhead(boot_overhead)
-
-        # Make the scheduler reachable from the lease request
-        for r in self.requests:
-            r.set_scheduler(rm.scheduler)
             
         num_besteffort = len([x for x in self.requests if isinstance(x,BestEffortLease)])
         num_ar = len([x for x in self.requests if isinstance(x,ARLease)])



More information about the Haizea-commit mailing list