[PATCH rhel7-branch] network: don't crash, just log for unrecognized bond options (#1039006)

Radek Vykydal rvykydal at redhat.com
Mon Sep 1 09:21:18 UTC 2014


Resolves: rhbz#1039006
---
 pyanaconda/network.py |  6 +++++-
 pyanaconda/nm.py      | 14 +++++++++++++-
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/pyanaconda/network.py b/pyanaconda/network.py
index 144548d..3419704 100644
--- a/pyanaconda/network.py
+++ b/pyanaconda/network.py
@@ -549,7 +549,11 @@ def add_connection_for_ksdata(networkdata, devname):
         values.append(['802-3-ethernet', 'mac-address', mac, 'ay'])
         dev_spec = devname
 
-    nm.nm_add_connection(values)
+    try:
+        nm.nm_add_connection(values)
+    except nm.AddConnectionError as e:
+        log.error(e)
+        return []
     added_connections.insert(0, (con_uuid, dev_spec))
     return added_connections
 
diff --git a/pyanaconda/nm.py b/pyanaconda/nm.py
index b958b9c..a288105 100644
--- a/pyanaconda/nm.py
+++ b/pyanaconda/nm.py
@@ -74,6 +74,13 @@ class UnknownConnectionError(Exception):
     def __str__(self):
         return self.__repr__()
 
+# bug #1039006
+class AddConnectionError(Exception):
+    """Connection is not available for the device"""
+    def __str__(self):
+        return self.__repr__()
+
+
 def _get_proxy(bus_type=Gio.BusType.SYSTEM,
                flags=Gio.DBusProxyFlags.NONE,
                info=None,
@@ -716,7 +723,12 @@ def nm_add_connection(values):
 
     proxy = _get_proxy(object_path="/org/freedesktop/NetworkManager/Settings",
                        interface_name="org.freedesktop.NetworkManager.Settings")
-    connection = proxy.AddConnection('(a{sa{sv}})', settings)
+    try:
+        connection = proxy.AddConnection('(a{sa{sv}})', settings)
+    except GLib.GError as e:
+        if "bond.options: invalid option" in e.message:
+            raise AddConnectionError(e)
+        raise
     return connection
 
 def nm_delete_connection(uuid):
-- 
1.9.3



More information about the anaconda-patches mailing list