From: Ondrej Lichtner <olichtne(a)redhat.com>
This commit encapsulates the removal of soft devices in a try-except
block. The cade is there only because the current version of NM doesn't
remove these devices on its own. In the future however NM will handle
it, and it already works on the current git build. In these cases the
device removal would fail with an exception which is unwanted.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
lnst/Slave/NmConfigDevice.py | 33 +++++++++++++++++++++------------
1 file changed, 21 insertions(+), 12 deletions(-)
diff --git a/lnst/Slave/NmConfigDevice.py b/lnst/Slave/NmConfigDevice.py
index 3d12c55..a2ad57f 100644
--- a/lnst/Slave/NmConfigDevice.py
+++ b/lnst/Slave/NmConfigDevice.py
@@ -391,9 +391,12 @@ class NmConfigDeviceBond(NmConfigDeviceGeneric):
self._nm_rm_connection(netdev["con_obj_path"])
netdev["con_obj_path"] = ""
- #NM doesn't know how to remove soft devices...
- bond_masters = "/sys/class/net/bonding_masters"
- exec_cmd('echo "-%s" > %s' % (netdev["name"],
bond_masters))
+ #older versions of NM don't know how to remove soft devices...
+ try:
+ bond_masters = "/sys/class/net/bonding_masters"
+ exec_cmd('echo "-%s" > %s' % (netdev["name"],
bond_masters))
+ except:
+ pass
def _add_slaves(self):
for slave in get_slaves(self._netdev):
@@ -501,9 +504,12 @@ class NmConfigDeviceBridge(NmConfigDeviceGeneric):
self._nm_rm_connection(netdev["con_obj_path"])
netdev["con_obj_path"] = ""
- #NM doesn't know how to remove soft devices...
- exec_cmd("ip link set %s down" % netdev["name"])
- exec_cmd("brctl delbr %s " % netdev["name"])
+ #older versions of NM don't know how to remove soft devices...
+ try:
+ exec_cmd("ip link set %s down" % netdev["name"])
+ exec_cmd("brctl delbr %s " % netdev["name"])
+ except:
+ pass
def _add_slave(self, slave):
netdev = self._config[slave]
@@ -640,13 +646,16 @@ class NmConfigDeviceVlan(NmConfigDeviceGeneric):
self._nm_rm_connection(netdev["con_obj_path"])
netdev["con_obj_path"] = ""
- #NM doesn't know how to remove soft devices...
+ #older versions of NM don't know how to remove soft devices...
#and lnst will break when multiple devices with the same mac exist
- dev_name = self._get_vlan_info()[0]
- if self._check_ip_link_add():
- exec_cmd("ip link del %s" % dev_name)
- else:
- exec_cmd("vconfig rem %s" % dev_name)
+ try:
+ dev_name = self._get_vlan_info()[0]
+ if self._check_ip_link_add():
+ exec_cmd("ip link del %s" % dev_name)
+ else:
+ exec_cmd("vconfig rem %s" % dev_name)
+ except:
+ pass
class NmConfigDeviceTeam(NmConfigDeviceGeneric):
#Not supported by NetworkManager yet
--
1.8.3.1
Show replies by date