Setting tag NodeManager-1.8-16
--This line, and those below, will be ignored--
Please write a changelog for this new tag in the section above
DIFF=========
Index: tools.py
===================================================================
--- tools.py (.../tags/NodeManager-1.8-15) (révision 15386)
+++ tools.py (.../trunk) (révision 15386)
@@ -8,12 +8,31 @@
import threading
import fcntl
import commands
+import sioc
import logger
PID_FILE = '/var/run/nm.pid'
+def get_default_if():
+ interface = get_if_from_hwaddr(get_hwaddr_from_plnode())
+ if not interface: interface = "eth0"
+ return interface
+
+def get_hwaddr_from_plnode():
+ for line in open("/usr/boot/plnode.txt", 'r').readlines():
+ if line.startswith("NET_DEVICE"):
+ return line.split("=")[1].strip().strip('"')
+ return None
+
+def get_if_from_hwaddr(hwaddr):
+ devs = sioc.gifconf()
+ for dev in devs:
+ dev_hwaddr = sioc.gifhwaddr(dev)
+ if dev_hwaddr == hwaddr: return dev
+ return None
+
def as_daemon_thread(run):
"""Call function <run> with no arguments in its own thread."""
thr = threading.Thread(target=run)
Index: bwmon.py
===================================================================
--- bwmon.py (.../tags/NodeManager-1.8-15) (révision 15386)
+++ bwmon.py (.../trunk) (révision 15386)
@@ -52,8 +52,9 @@
seconds_per_day = 24 * 60 * 60
bits_per_byte = 8
+dev_default = tools.get_default_if()
# Burst to line rate (or node cap). Set by NM. in KBit/s
-default_MaxRate = int(bwlimit.get_bwcap() / 1000)
+default_MaxRate = int(bwlimit.get_bwcap(dev_default) / 1000)
default_Maxi2Rate = int(bwlimit.bwmax / 1000)
# 5.4 Gbyte per day. 5.4 * 1024 k * 1024M * 1024G
# 5.4 Gbyte per day max allowed transfered per recording period
@@ -323,7 +324,7 @@
(self.name,
bwlimit.format_tc_rate(maxrate),
bwlimit.format_tc_rate(maxi2rate)), 1)
- bwlimit.set(xid = self.xid,
+ bwlimit.set(xid = self.xid, dev = dev_default
minrate = self.MinRate * 1000,
maxrate = self.MaxRate * 1000,
maxexemptrate = self.Maxi2Rate * 1000,
@@ -704,7 +705,7 @@
nmdbcopy = copy.deepcopy(database.db)
database.db_lock.release()
try:
- if getDefaults(nmdbcopy) and len(bwlimit.tc("class show dev eth0")) > 0:
+ if getDefaults(nmdbcopy) and len(bwlimit.tc("class show dev %s" % dev_default)) > 0:
# class show to check if net:InitNodeLimit:bwlimit.init has run.
sync(nmdbcopy)
else: logger.log("bwmon: BW limits DISABLED.")
Index: net.py
===================================================================
--- net.py (.../tags/NodeManager-1.8-15) (révision 15386)
+++ net.py (.../trunk) (révision 15386)
@@ -11,8 +11,10 @@
import sioc, plnet
# local modules
-import bwlimit, logger, iptables
+import bwlimit, logger, iptables, tools
+dev_default = tools.get_default_if()
+
def start(options, conf):
logger.log("net plugin starting up...")
@@ -22,7 +24,7 @@
if 'OVERRIDES' in dir(config):
if config.OVERRIDES.get('net_max_rate') == '-1':
logger.log("net: Slice and node BW Limits disabled.")
- if len(bwlimit.tc("class show dev eth0")):
+ if len(bwlimit.tc("class show dev %s" % dev_default)):
logger.verbose("*** DISABLING NODE BW LIMITS ***")
bwlimit.stop()
else:
Index: plugins/rawdisk.py
===================================================================
--- plugins/rawdisk.py (.../tags/NodeManager-1.8-15) (révision 15386)
+++ plugins/rawdisk.py (.../trunk) (révision 15386)
@@ -39,7 +39,6 @@
break
buf = buf.strip()
fields = re.split(pat, buf)
- print fields
dev = fields[-1]
if not dev.startswith("dm-") and dev.endswith("1") and dev not in in_vg:
devices.append("/dev/%s" % dev)