[anaconda][f22-blocker] Catch libblockdev's CryptoError when trying to unlock LUKS
Brian C. Lane
bcl at redhat.com
Thu Apr 30 16:21:21 UTC 2015
On Thu, Apr 30, 2015 at 01:22:59PM +0200, Vratislav Podzimek wrote:
> Otherwise we get a traceback instead of warning and another chance for the user.
>
> Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
> ---
> pyanaconda/rescue.py | 5 +++--
> pyanaconda/ui/gui/spokes/custom.py | 3 ++-
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/pyanaconda/rescue.py b/pyanaconda/rescue.py
> index b3c96b3..6fba78d 100644
> --- a/pyanaconda/rescue.py
> +++ b/pyanaconda/rescue.py
> @@ -42,6 +42,7 @@ from blivet.devices import LUKSDevice
> from blivet.osinstall import storageInitialize, mountExistingSystem
>
> from pykickstart.constants import KS_REBOOT, KS_SHUTDOWN
> +from gi.repository import BlockDev as blockdev
>
> import meh.ui.text
>
> @@ -245,8 +246,8 @@ def _unlock_devices(intf, storage):
> unlocked = True
> # try to use the same passhprase for other devices
> try_passphrase = passphrase
> - except StorageError as serr:
> - log.error("Failed to unlock %s: %s", device.name, serr)
> + except (StorageError, blockdev.CryptoError) as err:
> + log.error("Failed to unlock %s: %s", device.name, err)
> device.teardown(recursive=True)
> device.format.passphrase = None
> try_passphrase = None
> diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
> index 19b376a..95e53a0 100644
> --- a/pyanaconda/ui/gui/spokes/custom.py
> +++ b/pyanaconda/ui/gui/spokes/custom.py
> @@ -88,6 +88,7 @@ from pyanaconda.ui.gui.utils import really_hide, really_show, timed_action
> from pyanaconda.ui.categories.system import SystemCategory
>
> from gi.repository import Gdk, Gtk
> +from gi.repository import BlockDev as blockdev
> from gi.repository.AnacondaWidgets import MountpointSelector
>
> from functools import wraps
> @@ -2653,7 +2654,7 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
> try:
> device.setup()
> device.format.setup()
> - except StorageError as e:
> + except (StorageError, blockdev.CryptoError) as e:
> log.error("failed to unlock %s: %s", device.name, e)
> device.teardown(recursive=True)
> self._error = e
> --
> 2.1.0
Ack.
--
Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)
More information about the anaconda-patches
mailing list