[anaconda] Make anaconda changes necessary for libblockdev s390 plugin.

Vratislav Podzimek vpodzime at redhat.com
Tue May 19 11:45:35 UTC 2015


On Mon, 2015-05-18 at 15:10 -0400, Samantha N. Bueno wrote:
> ---
>  pyanaconda/anaconda.py                      | 10 ++++++++++
>  pyanaconda/ui/gui/spokes/advstorage/dasd.py |  9 +++++----
>  pyanaconda/ui/gui/spokes/advstorage/zfcp.py | 12 +++++++-----
>  pyanaconda/ui/gui/spokes/lib/dasdfmt.py     | 11 +++++------
>  pyanaconda/ui/gui/spokes/storage.py         | 12 ++++++------
>  pyanaconda/ui/tui/spokes/storage.py         | 17 +++++++++--------
>  6 files changed, 42 insertions(+), 29 deletions(-)
> 
> diff --git a/pyanaconda/anaconda.py b/pyanaconda/anaconda.py
> index cb4138d..896aae7 100644
> --- a/pyanaconda/anaconda.py
> +++ b/pyanaconda/anaconda.py
> @@ -167,11 +167,21 @@ class Anaconda(object):
>      def storage(self):
>          if not self._storage:
>              import blivet
> +            import blivet.arch
> +            from gi.repository import BlockDev as blockdev
>              self._storage = blivet.Blivet(ksdata=self.ksdata)
>  
>              if self.instClass.defaultFS:
>                  self._storage.setDefaultFSType(self.instClass.defaultFS)
>  
> +            if blivet.arch.isS390():
> +                # want to make sure s390 plugin is loaded
> +                if "s390" not in blockdev.get_available_plugin_names():
> +                    plugin = blockdev.PluginSpec()
> +                    plugin.name = blockdev.Plugin.S390
> +                    plugin.so_name = None
> +                    blockdev.reinit([plugin], reload=False)
> +
>          return self._storage
>  
>      def dumpState(self):
> diff --git a/pyanaconda/ui/gui/spokes/advstorage/dasd.py b/pyanaconda/ui/gui/spokes/advstorage/dasd.py
> index 88e1a01..61fe5e5 100644
> --- a/pyanaconda/ui/gui/spokes/advstorage/dasd.py
> +++ b/pyanaconda/ui/gui/spokes/advstorage/dasd.py
> @@ -21,6 +21,7 @@
>  
>  from pyanaconda.ui.gui import GUIObject
>  from pyanaconda.ui.gui.utils import gtk_action_nowait
> +from gi.repository import BlockDev as blockdev
>  
>  from blivet.devicelibs.dasd import sanitize_dasd_dev_input, online_dasd
>  
> @@ -83,7 +84,7 @@ class DASDDialog(GUIObject):
>          self._conditionNotebook.set_current_page(1)
>  
>          try:
> -            device = sanitize_dasd_dev_input(self._deviceEntry.get_text())
> +            device = blockdev.s390.sanitize_dev_input(self._deviceEntry.get_text())
>          except ValueError as e:
>              _config_error = str(e)
>              self.builder.get_object("deviceErrorLabel").set_text(_config_error)
> @@ -126,8 +127,8 @@ class DASDDialog(GUIObject):
>          """
>          # attempt to add the device
>          try:
> -            online_dasd(device)
> +            blockdev.s390.dasd_online(device)
>              self._update_devicetree = True
> -        except ValueError as e:
> -            self._discoveryError = str(e)
> +        except blockdev.S390Error as err:
> +            self._discoveryError = str(err)
>              return
> diff --git a/pyanaconda/ui/gui/spokes/advstorage/zfcp.py b/pyanaconda/ui/gui/spokes/advstorage/zfcp.py
> index 0674b1f..3dfc9a5 100644
> --- a/pyanaconda/ui/gui/spokes/advstorage/zfcp.py
> +++ b/pyanaconda/ui/gui/spokes/advstorage/zfcp.py
> @@ -21,6 +21,8 @@
>  
>  from pyanaconda.ui.gui import GUIObject
>  from pyanaconda.ui.gui.utils import gtk_action_nowait
> +from gi.repository import BlockDev as blockdev
> +from gi.repository import GLib
No longer need to import GLib as the exceptions are caught as
BlockDev.S390Error instances.

-- 
Vratislav Podzimek

Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic



More information about the anaconda-patches mailing list