# Faiyaz Ahmed <faiyaza@cs.princeton.edu>
# Copyright (C) 2004-2008 The Trustees of Princeton University
#
-# $Id: bwmon.py,v 1.1.2.11 2007/06/26 18:03:55 faiyaza Exp $
+# $Id$
#
import os
bits_per_byte = 8
# Defaults
-debug = False
+debug = True
verbose = False
datafile = "/var/lib/misc/bwmon.dat"
#nm = None
(version, slices, deaddb) = pickle.load(f)
f.close()
# Check version of data file
- if version != "$Id: bwmon.py,v 1.1.2.11 2007/06/26 18:03:55 faiyaza Exp $":
+ if version != "$Id$":
logger.log("bwmon: Not using old version '%s' data file %s" % (version, datafile))
raise Exception
except Exception:
- version = "$Id: bwmon.py,v 1.1.2.11 2007/06/26 18:03:55 faiyaza Exp $"
+ version = "$Id$"
slices = {}
deaddb = {}
# and made a dict of computed values.
slices[newslice] = Slice(newslice, live[newslice]['name'], live[newslice]['_rspec'])
slices[newslice].reset( 0, 0, 0, 0, live[newslice]['_rspec'] )
- # Double check time for dead slice in deaddb is within 24hr recording period.
+ # Double check time for dead slice in deaddb is within 24hr recording period.
elif (time.time() <= (deaddb[live[newslice]['name']]['slice'].time + period)):
deadslice = deaddb[live[newslice]['name']]
logger.log("bwmon: Reinstantiating deleted slice %s" % live[newslice]['name'])
deaddb[slices[xid].name] = {'slice': slices[xid], 'htb': kernelhtbs[xid]}
del slices[xid]
if kernelhtbs.has_key(xid): bwlimit.off(xid)
+
+ # Clean up deaddb
+ for (deadslicexid, deadslice) in deaddb.iteritems():
+ if (time.time() >= (deadslice.time() + period)):
+ logger.log("bwmon: Removing dead slice %s from dat." % deadslice.name)
+ del deaddb[deadslicexid]
# Get actual running values from tc since we've added and removed buckets.
# Update slice totals and bandwidth. {xid: {values}}