[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