Blame SOURCES/BZ_1806249-ActiveConnection-Handle-uninitialized-device.patch

4a7787
From 60dd21358c94c7bae08410100af99cd5eb34ecc6 Mon Sep 17 00:00:00 2001
4a7787
From: Fernando Fernandez Mancera <ffmancera@riseup.net>
4a7787
Date: Mon, 2 Mar 2020 14:30:09 +0100
4a7787
Subject: [PATCH] ActiveConnection: Handle uninitialized device
4a7787
4a7787
Handle `ActiveConnection._nmdev` being None. This should fix a Traceback
4a7787
when the openvswitch service is not running:
4a7787
4a7787
Traceback (most recent call last):
4a7787
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/connection.py", line 226, in _active_connection_callback
4a7787
    ac.devname, ac.reason
4a7787
  File "/usr/lib/python3.6/site-packages/libnmstate/nm/active_connection.py", line 171, in devname
4a7787
    return self._nmdev.get_iface()
4a7787
AttributeError: 'NoneType' object has no attribute 'get_iface'
4a7787
4a7787
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
4a7787
---
4a7787
 libnmstate/nm/active_connection.py | 16 +++++++++-------
4a7787
 libnmstate/nm/connection.py        |  2 +-
4a7787
 2 files changed, 10 insertions(+), 8 deletions(-)
4a7787
4a7787
diff --git a/libnmstate/nm/active_connection.py b/libnmstate/nm/active_connection.py
4a7787
index 7b70b2a..c81ee2b 100644
4a7787
--- a/libnmstate/nm/active_connection.py
4a7787
+++ b/libnmstate/nm/active_connection.py
4a7787
@@ -1,5 +1,5 @@
4a7787
 #
4a7787
-# Copyright (c) 2019 Red Hat, Inc.
4a7787
+# Copyright (c) 2019-2020 Red Hat, Inc.
4a7787
 #
4a7787
 # This file is part of nmstate
4a7787
 #
4a7787
@@ -86,7 +86,7 @@ class ActiveConnection:
4a7787
             if self._mainloop.is_action_canceled(e):
4a7787
                 logging.debug(
4a7787
                     "Connection deactivation aborted on %s: error=%s",
4a7787
-                    self._nmdev.get_iface(),
4a7787
+                    self.devname,
4a7787
                     e,
4a7787
                 )
4a7787
             else:
4a7787
@@ -105,20 +105,19 @@ class ActiveConnection:
4a7787
                 else:
4a7787
                     self._mainloop.quit(
4a7787
                         "Connection deactivation failed on {}: "
4a7787
-                        "error={}".format(self._nmdev.get_iface(), e)
4a7787
+                        "error={}".format(self.devname, e)
4a7787
                     )
4a7787
                     return
4a7787
 
4a7787
         if success:
4a7787
             logging.debug(
4a7787
-                "Connection deactivation succeeded on %s",
4a7787
-                self._nmdev.get_iface(),
4a7787
+                "Connection deactivation succeeded on %s", self.devname,
4a7787
             )
4a7787
             self._mainloop.execute_next_action()
4a7787
         else:
4a7787
             self._mainloop.quit(
4a7787
                 "Connection deactivation failed on %s: error=unknown"
4a7787
-                % self._nmdev.get_iface()
4a7787
+                % self.devname
4a7787
             )
4a7787
 
4a7787
     @property
4a7787
@@ -168,7 +167,10 @@ class ActiveConnection:
4a7787
 
4a7787
     @property
4a7787
     def devname(self):
4a7787
-        return self._nmdev.get_iface()
4a7787
+        if self._nmdev:
4a7787
+            return self._nmdev.get_iface()
4a7787
+        else:
4a7787
+            return None
4a7787
 
4a7787
     @property
4a7787
     def nmdevice(self):
4a7787
diff --git a/libnmstate/nm/connection.py b/libnmstate/nm/connection.py
4a7787
index 3dc1ee1..2076734 100644
4a7787
--- a/libnmstate/nm/connection.py
4a7787
+++ b/libnmstate/nm/connection.py
4a7787
@@ -223,7 +223,7 @@ class ConnectionProfile:
4a7787
             else:
4a7787
                 self._mainloop.quit(
4a7787
                     "Connection activation failed on {}: reason={}".format(
4a7787
-                        ac.devname, ac.reason
4a7787
+                        devname, ac.reason
4a7787
                     )
4a7787
                 )
4a7787
 
4a7787
-- 
4a7787
2.24.1
4a7787