[PATCH 3/4] Show ccw names for DASD and zFCP, WWID for mpath (#580507)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In the partition editor UI, we get device names for DASD as "dasda",
"dasdb", and so on.  For zFCP, we get "sda", "sdb", and so on.  The ccw
identifiers are more useful to s390 users, so display those on this
screen if we have them, otherwise fall back on the current name.

For mpath devices, try to display the WWID if we have it, otherwise show
the current name.
---
 iw/partition_gui.py |   17 +++++++++++++++++
 storage/devices.py  |   16 ++++++++++++++++
 2 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/iw/partition_gui.py b/iw/partition_gui.py
index 7420df6..7408126 100644
--- a/iw/partition_gui.py
+++ b/iw/partition_gui.py
@@ -20,6 +20,7 @@
 #            Michael Fulbright <msf@xxxxxxxxxx>
 #
 
+import os
 import gobject
 import gtk
 import gtk.glade
@@ -34,6 +35,7 @@ import string
 import types
 import copy
 
+import iutil
 import storage
 from iw_gui import *
 from flags import flags
@@ -50,6 +52,8 @@ from storage.partitioning import doPartitioning
 from storage.partitioning import hasFreeDiskSpace
 from storage.devicelibs import lvm
 from storage.devices import devicePathToName, PartitionDevice
+from storage.devices import deviceNameToDiskByPath, deviceNameToWWID
+from storage.errors import DeviceNotFoundError
 
 import gettext
 _ = lambda x: gettext.ldgettext("anaconda", x)
@@ -963,6 +967,19 @@ class PartitionWindow(InstallWindow):
         # device name
         name_str = getattr(device, "lvname", device.name)
 
+        try:
+            if iutil.isS390() and \
+               (name_str.startswith("dasd") or \
+                name_str.startswith("sd")):
+                name_str = os.path.basename(deviceNameToDiskByPath(name_str))
+            elif name_str.startswith("mpath"):
+                name_str = deviceNameToWWID(name_str)
+        except DeviceNotFoundError:
+            name_str = device.name
+
+        if name_str == "":
+            name_str = device.name
+
         # label
         label_str = getattr(format, "label", "")
         if label_str is None:
diff --git a/storage/devices.py b/storage/devices.py
index 7e7e405..6104fd7 100644
--- a/storage/devices.py
+++ b/storage/devices.py
@@ -160,6 +160,22 @@ def deviceNameToDiskByPath(deviceName=None):
         return ret
     raise DeviceNotFoundError(deviceName)
 
+
+def deviceNameToWWID(deviceName=None):
+    if not deviceName:
+        return ""
+
+    ret = None
+    for dev in udev_get_block_devices():
+        if udev_device_get_name(dev) == deviceName:
+            ret = udev_device_get_wwid(dev)
+            break
+
+    if ret:
+        return ret
+    raise DeviceNotFoundError(deviceName)
+
+
 class Device(object):
     """ A generic device.
 
-- 
1.7.0.1

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list


[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux