[master 12/22] Treat a missing plugin as an OK situation.
mulkieran
installerbot-noreply at redhat.com
Tue May 5 16:35:36 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/fa62d9e269ef1f616c8ace6683a9220ef491c7fb
More information about the anaconda-patches
mailing list