[master 12/21] Treat a missing plugin as an OK situation.

mulkieran installerbot-noreply at redhat.com
Tue May 12 21:35:54 UTC 2015


From: mulhern <amulhern at redhat.com>

Related: #12

But log info about what plugin was missing.

Signed-off-by: mulhern <amulhern at redhat.com>
---
 blivet/__init__.py | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/blivet/__init__.py b/blivet/__init__.py
index 6775b65..7725c43 100644
--- a/blivet/__init__.py
+++ b/blivet/__init__.py
@@ -63,17 +63,27 @@ def cb(self, exn):
 log_bd_message = lambda level, msg: program_log.info(msg)
 
 # initialize the libblockdev library
+from gi.repository import GLib
 from gi.repository import BlockDev as blockdev
-_REQUIRED_PLUGIN_NAMES = set(("lvm", "btrfs", "swap", "crypto", "loop", "mdraid", "mpath", "dm"))
-_required_plugins = blockdev.plugin_specs_from_names(_REQUIRED_PLUGIN_NAMES)
+_REQUESTED_PLUGIN_NAMES = set(("lvm", "btrfs", "swap", "crypto", "loop", "mdraid", "mpath", "dm"))
+_requested_plugins = blockdev.plugin_specs_from_names(_REQUESTED_PLUGIN_NAMES)
 if not blockdev.is_initialized():
-    if not blockdev.try_init(require_plugins=_required_plugins, log_func=log_bd_message):
-        raise RuntimeError("Failed to initialize the libblockdev library with all required plugins")
+    try:
+        blockdev.try_init(require_plugins=_requested_plugins, log_func=log_bd_message)
+    except GLib.GError:
+        pass
 else:
     avail_plugs = set(blockdev.get_available_plugin_names())
-    if avail_plugs != _REQUIRED_PLUGIN_NAMES:
-        if not blockdev.reinit(require_plugins=_required_plugins, reload=False, log_func=log_bd_message):
-            raise RuntimeError("Failed to initialize the libblockdev library with all required plugins")
+    if avail_plugs != _REQUESTED_PLUGIN_NAMES:
+        try:
+            blockdev.reinit(require_plugins=_requested_plugins, reload=False, log_func=log_bd_message)
+        except GLib.GError:
+            pass
+
+avail_plugs = set(blockdev.get_available_plugin_names())
+missing_plugs =  _REQUESTED_PLUGIN_NAMES - avail_plugs
+for p in missing_plugs:
+    log.info("Failed to load plugin %s", p)
 
 def enable_installer_mode():
     """ Configure the module for use by anaconda (OS installer). """


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/3f0aa449e42bc64da78e2ff8c0553b4526deed00


More information about the anaconda-patches mailing list