# Andy Bavier <acb@cs.princeton.edu>
# Copyright (C) 2004-2006 The Trustees of Princeton University
#
-# $Id: bwmon.py,v 1.3 2006/05/08 17:37:28 mlhuang Exp $
+# $Id: bwmon.py,v 1.4 2006/06/02 04:00:00 mlhuang Exp $
#
import syslog
self.exemptbytes = exemptbytes
# Query Node Manager for max rate overrides
- (new_maxrate, new_maxexemptrate) = nm.query(self.name, ['nm_net_max_rate', 'nm_net_max_exempt_rate'])
- if new_maxrate is not None:
+ (new_maxrate, new_maxexemptrate) = nm.query(self.name, [('nm_net_max_rate', -1), ('nm_net_max_exempt_rate', -1)])
+ if new_maxrate != -1:
new_maxrate *= 1000
else:
new_maxrate = default_maxrate
- if new_maxexemptrate is not None:
+ if new_maxexemptrate != -1:
new_maxexemptrate *= 1000
else:
new_maxexemptrate = default_maxexemptrate
"""
# Query Node Manager for max average rate overrides
- (self.avgrate, self.avgexemptrate) = nm.query(self.name, ['nm_net_avg_rate', 'nm_net_avg_exempt_rate'])
- if self.avgrate is None:
+ (self.avgrate, self.avgexemptrate) = nm.query(self.name, [('nm_net_avg_rate', -1), ('nm_net_avg_exempt_rate', -1)])
+ if self.avgrate == -1:
self.avgrate = default_avgrate
- if self.avgexemptrate is None:
+ if self.avgexemptrate == -1:
self.avgexemptrate = default_avgexemptrate
# Prepare message parameters from the template
(version, slices) = pickle.load(f)
f.close()
# Check version of data file
- if version != "$Id: bwmon.py,v 1.3 2006/05/08 17:37:28 mlhuang Exp $":
+ if version != "$Id: bwmon.py,v 1.4 2006/06/02 04:00:00 mlhuang Exp $":
print "Not using old version '%s' data file %s" % (version, datafile)
raise Exception
except Exception:
- version = "$Id: bwmon.py,v 1.3 2006/05/08 17:37:28 mlhuang Exp $"
+ version = "$Id: bwmon.py,v 1.4 2006/06/02 04:00:00 mlhuang Exp $"
slices = {}
# Get special slice IDs
# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2006 The Trustees of Princeton University
#
-# $Id: pl_mom.py,v 1.3 2006/05/09 03:22:25 mlhuang Exp $
+# $Id: pl_mom.py,v 1.4 2006/06/02 04:00:00 mlhuang Exp $
#
import os
Get values of various slice attributes from the local Node Manager
slice - slice name
- attributes - [attribute_name, (attribute_name, return_value_if_not_set), ...]
+ attributes - [(attribute_name, return_value_if_not_set), ...]
"""
- values = [None for attribute in attributes]
+ values = [attribute[1] for attribute in attributes]
if self.nm is not None:
try:
rspec = rcap.readline().strip()
rcap.close()
- for i, attribute in enumerate(attributes):
- # NM interface allows you to pass in a tuple
- # (attribute, default) instead of just an
- # attribute name. default is returned if the
- # attribute is not set.
- if type(attribute) != tuple:
- attribute = (attribute, 0)
- (rc, (value,)) = self.nm.nm_inspect(rspec, [attribute])
- if rc == 0 and value != attribute[1]:
- values[i] = value
+ (rc, result) = self.nm.nm_inspect(rspec, attributes)
+ if rc == 0 and type(result) == list and len(result) == len(values):
+ values = result
except Exception, err:
print "Warning: Exception received while querying Node Manager:", err
- self.nm = None
return values