diff --git a/blivet/devices/disk.py b/blivet/devices/disk.py index 676637543..d02a6e573 100644 --- a/blivet/devices/disk.py +++ b/blivet/devices/disk.py @@ -528,67 +528,19 @@ def __init__(self, device, **kwargs): :type format: :class:`~.formats.DeviceFormat` or a subclass of it :keyword str wwn: the disk's WWN :keyword busid: bus ID - :keyword opts: options - :type opts: dict with option name keys and option value values """ self.busid = kwargs.pop('busid') - self.opts = kwargs.pop('opts') DiskDevice.__init__(self, device, **kwargs) @property def description(self): return "DASD device %s" % self.busid - def get_opts(self): - return ["%s=%s" % (k, v) for k, v in self.opts.items() if v == '1'] - def dracut_setup_args(self): - conf = "/etc/dasd.conf" - line = None - if os.path.isfile(conf): - f = open(conf) - # grab the first line that starts with our bus_id - for l in f.readlines(): - if l.startswith(self.busid): - line = l.rstrip() - break - - f.close() - - # See if we got a line. If not, grab our get_opts - if not line: - line = self.busid - for devopt in self.get_opts(): - line += " %s" % devopt - - # Create a translation mapping from dasd.conf format to module format - translate = {'use_diag': 'diag', - 'readonly': 'ro', - 'erplog': 'erplog', - 'failfast': 'failfast'} - - # this is a really awkward way of determining if the - # feature found is actually desired (1, not 0), plus - # translating that feature into the actual kernel module - # value - opts = [] - parts = line.split() - for chunk in parts[1:]: - try: - feat, val = chunk.split('=') - if int(val): - opts.append(translate[feat]) - except (ValueError, KeyError): - # If we don't know what the feature is (feat not in translate - # or if we get a val that doesn't cleanly convert to an int - # we can't do anything with it. - log.warning("failed to parse dasd feature %s", chunk) - - if opts: - return set(["rd.dasd=%s(%s)" % (self.busid, - ":".join(opts))]) - else: - return set(["rd.dasd=%s" % self.busid]) + devspec = util.capture_output(["/lib/s390-tools/zdev-to-dasd_mod.dasd", + "persistent", self.busid]).strip() + # strip to remove trailing newline, which must not appear in zipl BLS + return set(["rd.dasd=%s" % devspec]) class NVDIMMNamespaceDevice(DiskDevice): diff --git a/blivet/populator/helpers/disk.py b/blivet/populator/helpers/disk.py index ce2cb73be..d0cef3165 100644 --- a/blivet/populator/helpers/disk.py +++ b/blivet/populator/helpers/disk.py @@ -202,9 +202,6 @@ def match(cls, data): def _get_kwargs(self): kwargs = super(DASDDevicePopulator, self)._get_kwargs() kwargs["busid"] = udev.device_get_dasd_bus_id(self.data) - kwargs["opts"] = {} - for attr in ['readonly', 'use_diag', 'erplog', 'failfast']: - kwargs["opts"][attr] = udev.device_get_dasd_flag(self.data, attr) log.info("%s is a dasd device", udev.device_get_name(self.data)) return kwargs diff --git a/python-blivet.spec b/python-blivet.spec index 579c77801..a9fcb71c1 100644 --- a/python-blivet.spec +++ b/python-blivet.spec @@ -21,6 +21,7 @@ Source1: http://github.com/storaged-project/blivet/archive/%{realname}-%{realver %global libblockdevver 3.0 %global libbytesizever 0.3 %global pyudevver 0.18 +%global s390utilscorever 2.31.0 BuildArch: noarch @@ -69,7 +70,7 @@ Recommends: libblockdev-swap >= %{libblockdevver} %ifarch s390 s390x Recommends: libblockdev-s390 >= %{libblockdevver} -Requires: s390utils-core +Requires: s390utils-core >= %{s390utilscorever} %endif Requires: python3-bytesize >= %{libbytesizever}