Loading...

anaconda-devel-list@redhat.com

[Prev] Thread [Next]  |  [Prev] Date [Next]

Re: [rhel6-branch] mpath: flush more eagerly in filter_gui. David Lehman Wed Oct 19 19:00:28 2011

On Thu, 2011-10-13 at 09:38 +0200, Ales Kozumplik wrote:
> Else we might end up with bad device names in exclusiveDisks.
> 
> See also 861d48e0dcca256cd3c0c5cd72ca7ceed1848e09 and
> 8b8cf4cbee86e5bfb00802b5d5ab617f9c5d5fab.
> 
> Resolves: rhbz#744772

Ack.

> ---
>  iw/filter_gui.py            |   14 ++++++--------
>  storage/devicelibs/mpath.py |    6 ++++++
>  2 files changed, 12 insertions(+), 8 deletions(-)
> 
> diff --git a/iw/filter_gui.py b/iw/filter_gui.py
> index 0c29c16..6da510d 100644
> --- a/iw/filter_gui.py
> +++ b/iw/filter_gui.py
> @@ -629,15 +629,13 @@ class FilterWindow(InstallWindow):
>          with open("/etc/multipath.conf", "w+") as mpath_cfg:
>              mpath_cfg.write(cfg)
>  
> -        if anaconda.isKickstart:
> -            # identifyMultipaths() uses 'multipath -d' to find mpath 
> devices. In
> -            # case this is an interactive kickstart install, it wouldn't 
> display
> -            # those already set up during the early storageInitialize() 
> unless
> -            # we flush them first.
> -            log.info("filter_gui: flushing all multipath devices.")
> -            iutil.execWithRedirect("multipath", ["-F"])
> -        (singlepaths, mpaths, partitions) = identifyMultipaths(disks)
> +        # identifyMultipaths() uses 'multipath -d' and 'multipath -ll' to 
> find
> +        # mpath devices. In case there are devices already set up they won't
> +        # show up (or show up with a wrong name). Flush those first.
> +        log.info("filter_gui: flushing all multipath devices.")
> +        flush_mpaths()
>  
> +        (singlepaths, mpaths, partitions) = identifyMultipaths(disks)
>          # The device list could be really long, so we really only want to
>          # iterate over it the bare minimum of times.  Dividing this list up
>          # now means fewer elements to iterate over later.
> diff --git a/storage/devicelibs/mpath.py b/storage/devicelibs/mpath.py
> index eb6e999..789add1 100644
> --- a/storage/devicelibs/mpath.py
> +++ b/storage/devicelibs/mpath.py
> @@ -303,3 +303,9 @@ blacklist {
>          ret += '}\n'
>  
>          return ret
> +
> +def flush_mpaths():
> +    iutil.execWithRedirect("multipath", ["-F"])
> +    check_output = iutil.execWithCapture("multipath", ["-ll"]).strip()
> +    if check_output:
> +        log.error("multipath: some devices could not be flushed")


_______________________________________________
Anaconda-devel-list mailing list
[EMAIL PROTECTED]
https://www.redhat.com/mailman/listinfo/anaconda-devel-list