From: Faiyaz Ahmed Date: Thu, 22 Jan 2009 18:42:17 +0000 (+0000) Subject: Can disable slice HTB's via PLC_SlICE_PREFIX+_default: sliceattribute net_max_rate=-1 X-Git-Tag: NodeManager-1.7-39~3 X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=commitdiff_plain;h=b3a4cdf020091e1560783a79076ba77e61f16295 Can disable slice HTB's via PLC_SlICE_PREFIX+_default: sliceattribute net_max_rate=-1 --- diff --git a/bwmon.py b/bwmon.py index 63a2d34..495fabd 100644 --- a/bwmon.py +++ b/bwmon.py @@ -474,7 +474,7 @@ def sync(nmdbcopy): # Incase default isn't set yet. if default_MaxRate == -1: - default_MaxRate = 1000000 + default_MaxRate = 10000000 try: f = open(datafile, "r+") @@ -648,6 +648,29 @@ def sync(nmdbcopy): pickle.dump((version, slices, deaddb), f) f.close() +def getDefaults(nmdbcopy): + ''' + Get defaults from default slice's slice attributes. + ''' + status = True + # default slice + dfltslice = nmdbcopy.get(PLC_SLICE_PREFIX+"_default") + if dfltslice: + if dfltslice['rspec']['net_max_rate'] == -1: + allOff() + status = False + return status + +def allOff(): + # Get/set special slice IDs + root_xid = bwlimit.get_xid("root") + default_xid = bwlimit.get_xid("default") + kernelhtbs = gethtbs(root_xid, default_xid) + if len(kernelhtbs): + logger.log("bwlimit: Disabling all running HTBs.") + for htb in kernelhtbs.keys(): bwlimit.off(htb) + + lock = threading.Event() def run(): """When run as a thread, wait for event, lock db, deep copy it, release it, run bwmon.GetSlivers(), then go back to waiting.""" @@ -658,7 +681,9 @@ def run(): database.db_lock.acquire() nmdbcopy = copy.deepcopy(database.db) database.db_lock.release() - try: sync(nmdbcopy) + try: + if getDefaults(nmdbcopy): sync(nmdbcopy) + else: logger.log("bwmon: DISABLED.") except: logger.log_exc() lock.clear()