Please send this as a proper patch (no attachment)
Mon, Jul 22, 2013 at 02:52:31PM CEST, jtluka(a)redhat.com wrote:
Hi, seems that LNST is broken if use_nm = false is set on slaves.
LNST will crash with following traceback:
Traceback (most recent call last):
File "/root/lnst/lnst/Slave/NetTestSlave.py", line 433, in _process_msg
result = method(*msg["args"])
File "/root/lnst/lnst/Slave/NetTestSlave.py", line 243, in
machine_cleanup
NetConfigDeviceAllCleanup(self._config)
File "/root/lnst/lnst/Slave/NetConfigDevice.py", line 322, in
NetConfigDeviceAllCleanup
NetConfigDeviceType(dev_type).type_cleanup()
TypeError: NetConfigDeviceType() takes exactly 2 arguments (1 given)
Ondrej is working on a complex patch that's going to fix this bug.
I'm attaching simple patch that should help you to use LNST until
Ondrej's patch is ready.
-Jan
diff --git a/lnst/Slave/NetConfigDevice.py
b/lnst/Slave/NetConfigDevice.py
index 6fcd4b5..c7fdc29 100644
--- a/lnst/Slave/NetConfigDevice.py
+++ b/lnst/Slave/NetConfigDevice.py
@@ -31,9 +31,10 @@ class NetConfigDeviceGeneric:
_moduleparams = ""
_cleanupcmd = ""
- def __init__(self, netdev, config):
+ def __init__(self, netdev, config, lnst_config):
self._netdev = netdev
self._config = config
+ self._lnst_config = lnst_config
def configure(self):
pass
@@ -112,7 +113,7 @@ class NetConfigDeviceBond(NetConfigDeviceGeneric):
slavenetdev = self._config[slave]
slave_name = slavenetdev["name"]
if (mark == "+"):
- NetConfigDevice(slavenetdev, self._config).down()
+ NetConfigDevice(slavenetdev, self._config, self._lnst_config).down()
exec_cmd('echo "%s%s" > %s/slaves' % (mark, slave_name,
self._get_bond_dir()))
@@ -234,12 +235,12 @@ class NetConfigDeviceTeam(NetConfigDeviceGeneric):
def _ports_down(self):
for slave_id in get_slaves(self._netdev):
port_netdev = self._config[slave_id]
- NetConfigDevice(port_netdev, self._config).down()
+ NetConfigDevice(port_netdev, self._config, self._lnst_config).down()
def _ports_up(self):
for slave_id in get_slaves(self._netdev):
port_netdev = self._config[slave_id]
- NetConfigDevice(port_netdev, self._config).up()
+ NetConfigDevice(port_netdev, self._config, self._lnst_config).up()
def configure(self):
self._ports_down()
@@ -274,7 +275,7 @@ class NetConfigDeviceTeam(NetConfigDeviceGeneric):
if teamd_port_config:
teamd_port_config = prepare_json_str(teamd_port_config)
exec_cmd("teamdctl %s %s port config update %s \"%s\"" %
(dbus_option, dev_name, port_name, teamd_port_config))
- NetConfigDevice(port_netdev, self._config).down()
+ NetConfigDevice(port_netdev, self._config, self._lnst_config).down()
exec_cmd("teamdctl %s %s port add %s" % (dbus_option, dev_name,
port_name))
def slave_del(self, slaveid):
@@ -298,9 +299,9 @@ def NetConfigDevice(netdev, config, lnst_config):
'''
if check_process_running("NetworkManager") and \
lnst_config.get_option("environment", "use_nm"):
- return nm_type_class_mapping[netdev["type"]](netdev, config)
+ return nm_type_class_mapping[netdev["type"]](netdev, config,
lnst_config)
else:
- return type_class_mapping[netdev["type"]](netdev, config)
+ return type_class_mapping[netdev["type"]](netdev, config, lnst_config)
def NetConfigDeviceType(dev_type, lnst_config):
'''
@@ -316,7 +317,7 @@ def NetConfigDeviceAllCleanup(lnst_config):
if check_process_running("NetworkManager") and \
lnst_config.get_option("environment", "use_nm"):
for dev_type in nm_type_class_mapping:
- NetConfigDeviceType(dev_type).type_cleanup()
+ NetConfigDeviceType(dev_type, lnst_config).type_cleanup()
else:
for dev_type in type_class_mapping:
- NetConfigDeviceType(dev_type).type_cleanup()
+ NetConfigDeviceType(dev_type, lnst_config).type_cleanup()
diff --git a/lnst/Slave/NmConfigDevice.py b/lnst/Slave/NmConfigDevice.py
index 320842f..9215d50 100644
--- a/lnst/Slave/NmConfigDevice.py
+++ b/lnst/Slave/NmConfigDevice.py
@@ -46,9 +46,10 @@ class NmConfigDeviceGeneric(object):
_wait_for = None
- def __init__(self, netdev, config):
+ def __init__(self, netdev, config, lnst_config):
self._netdev = netdev
self._config = config
+ self._lnst_config = lnst_config
self._bus = dbus.SystemBus()
self._nm_obj = self._bus.get_object(NM_BUS, OBJ_PRE)
self._nm_if = dbus.Interface(self._nm_obj, IF_PRE)
_______________________________________________
LNST-developers mailing list
LNST-developers(a)lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/lnst-developers