New version 3.7.0
- Remove unused BLOCKDEV_DM_RAID technology from tasks (vtrefny) - tests: Force remove LVM VG /dev/ entry not removed by vgremove (vtrefny) - Mark LUKS2 integrity devices as always controllable (vtrefny) - Ignore parent dependencies during action execute (vtrefny) - tests: Patch checking stratis pool metadata size (vtrefny) - Remove support for DMRAID devices (vtrefny) - Do not read DDF RAID UUID from udev (vtrefny) - Check physical and logical block size when creating a LUKS format (vtrefny) - Add separate properties for logical and physical block size (vtrefny) - Use DMI product_name for t2 mac detection. (83884198+sharpenedblade) - vmtests: add a --logs arg to capture blivet.log from failed tests (berrange) - examples: illustrate GPT GUID usage in partitioning example (berrange) - vmtests: add test for GPT part type UUID validation (berrange) - blivet: allow 'mountpoint' to be passed to PartitionDevice (berrange) - deviceaction: retain explicit part type UUID when formatting (berrange) - devices/partition: add ability to auto apply a GPT UUID (berrange) - gpt: add helper API for discoverable partition UUIDs (berrange) - devices/partition: allow passing partition type UUID (berrange) - formats/disklabel: allow passing partition type UUID (berrange) - Add a forced delay to udev settle in chroot environments (vlad.bespalov) - Update public API documentation (vtrefny) - tests/README: Clarify various test classes (vtrefny) - Rename unit_tests.storagetestcase to unit_tests.blivettestcase (vtrefny) - Add additional identifiers to NVMeNamespaceDevice (vtrefny) - Add transport and address to NVMeController info (vtrefny) - Make sure we close the streams when reading a file (vtrefny) - Style changes. (sharpenedblade) - Do not report mactel on T2 macs. (sharpenedblade) - Add function to check for T2 apple macs. (sharpenedblade) - Add a basic read-only support for UDF filesystem (vtrefny) - add loongarch support (mahailiang) - Add a basic support for NVMe and NVMe Fabrics devices (vtrefny)
This commit is contained in:
		
							parent
							
								
									be0f89d540
								
							
						
					
					
						commit
						9790bf0f9a
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -149,3 +149,5 @@ | ||||
| /blivet-3.6.0-tests.tar.gz | ||||
| /blivet-3.6.1-tests.tar.gz | ||||
| /blivet-3.6.1.tar.gz | ||||
| /blivet-3.7.0-tests.tar.gz | ||||
| /blivet-3.7.0.tar.gz | ||||
|  | ||||
| @ -1,461 +0,0 @@ | ||||
| From 2645236684b12a9a029f27c758fe5db12befabd7 Mon Sep 17 00:00:00 2001 | ||||
| From: Vojtech Trefny <vtrefny@redhat.com> | ||||
| Date: Wed, 17 Aug 2022 14:24:58 +0200 | ||||
| Subject: [PATCH 1/2] Do not read DDF RAID UUID from udev | ||||
| 
 | ||||
| The UUID we get from udev isn't the array UUID, we need to get | ||||
| that using libblockdev. | ||||
| ---
 | ||||
|  blivet/populator/helpers/mdraid.py | 16 ++++++++++------ | ||||
|  1 file changed, 10 insertions(+), 6 deletions(-) | ||||
| 
 | ||||
| diff --git a/blivet/populator/helpers/mdraid.py b/blivet/populator/helpers/mdraid.py
 | ||||
| index 3479e3f7..a7602d20 100644
 | ||||
| --- a/blivet/populator/helpers/mdraid.py
 | ||||
| +++ b/blivet/populator/helpers/mdraid.py
 | ||||
| @@ -98,17 +98,21 @@ class MDFormatPopulator(FormatPopulator):
 | ||||
| 
 | ||||
|      def _get_kwargs(self): | ||||
|          kwargs = super(MDFormatPopulator, self)._get_kwargs() | ||||
| -        try:
 | ||||
| -            # ID_FS_UUID contains the array UUID
 | ||||
| -            kwargs["md_uuid"] = udev.device_get_uuid(self.data)
 | ||||
| -        except KeyError:
 | ||||
| -            log.warning("mdraid member %s has no md uuid", udev.device_get_name(self.data))
 | ||||
| +        kwargs["biosraid"] = udev.device_is_biosraid_member(self.data)
 | ||||
| +        if not kwargs["biosraid"]:
 | ||||
| +            try:
 | ||||
| +                # ID_FS_UUID contains the array UUID
 | ||||
| +                kwargs["md_uuid"] = udev.device_get_uuid(self.data)
 | ||||
| +            except KeyError:
 | ||||
| +                log.warning("mdraid member %s has no md uuid", udev.device_get_name(self.data))
 | ||||
| +        else:
 | ||||
| +            # for BIOS RAIDs we can't get the UUID from udev, we'll get it from mdadm in `run` below
 | ||||
| +            kwargs["md_uuid"] = None
 | ||||
| 
 | ||||
|          # reset the uuid to the member-specific value | ||||
|          # this will be None for members of v0 metadata arrays | ||||
|          kwargs["uuid"] = udev.device_get_md_device_uuid(self.data) | ||||
| 
 | ||||
| -        kwargs["biosraid"] = udev.device_is_biosraid_member(self.data)
 | ||||
|          return kwargs | ||||
| 
 | ||||
|      def run(self): | ||||
| --
 | ||||
| 2.39.1 | ||||
| 
 | ||||
| 
 | ||||
| From 951410368163de375174b4a9da1479695b5cd77d Mon Sep 17 00:00:00 2001 | ||||
| From: Vojtech Trefny <vtrefny@redhat.com> | ||||
| Date: Wed, 18 Jan 2023 13:23:14 +0100 | ||||
| Subject: [PATCH 2/2] Remove support for DMRAID devices | ||||
| 
 | ||||
| Firmware/BIOS RAID devices will be handled by the MD code. | ||||
| ---
 | ||||
|  blivet/devices/__init__.py           |  2 +- | ||||
|  blivet/devices/disk.py               | 87 ------------------------ | ||||
|  blivet/flags.py                      |  2 - | ||||
|  blivet/formats/dmraid.py             | 55 +--------------- | ||||
|  blivet/formats/mdraid.py             | 10 +-- | ||||
|  blivet/populator/helpers/__init__.py |  1 - | ||||
|  blivet/populator/helpers/dmraid.py   | 98 ---------------------------- | ||||
|  blivet/populator/populator.py        |  4 +- | ||||
|  8 files changed, 7 insertions(+), 252 deletions(-) | ||||
|  delete mode 100644 blivet/populator/helpers/dmraid.py | ||||
| 
 | ||||
| diff --git a/blivet/devices/__init__.py b/blivet/devices/__init__.py
 | ||||
| index 8bb0a979..d90f0d0f 100644
 | ||||
| --- a/blivet/devices/__init__.py
 | ||||
| +++ b/blivet/devices/__init__.py
 | ||||
| @@ -22,7 +22,7 @@
 | ||||
|  from .lib import device_path_to_name, device_name_to_disk_by_path, ParentList | ||||
|  from .device import Device | ||||
|  from .storage import StorageDevice | ||||
| -from .disk import DiskDevice, DiskFile, DMRaidArrayDevice, MultipathDevice, iScsiDiskDevice, FcoeDiskDevice, DASDDevice, ZFCPDiskDevice, NVDIMMNamespaceDevice
 | ||||
| +from .disk import DiskDevice, DiskFile, MultipathDevice, iScsiDiskDevice, FcoeDiskDevice, DASDDevice, ZFCPDiskDevice, NVDIMMNamespaceDevice
 | ||||
|  from .partition import PartitionDevice | ||||
|  from .dm import DMDevice, DMLinearDevice, DMCryptDevice, DMIntegrityDevice, DM_MAJORS | ||||
|  from .luks import LUKSDevice, IntegrityDevice | ||||
| diff --git a/blivet/devices/disk.py b/blivet/devices/disk.py
 | ||||
| index bc4a1b5e..18c8897f 100644
 | ||||
| --- a/blivet/devices/disk.py
 | ||||
| +++ b/blivet/devices/disk.py
 | ||||
| @@ -43,7 +43,6 @@ log = logging.getLogger("blivet")
 | ||||
| 
 | ||||
|  from .lib import Tags | ||||
|  from .storage import StorageDevice | ||||
| -from .container import ContainerDevice
 | ||||
|  from .network import NetworkStorageDevice | ||||
|  from .dm import DMDevice | ||||
| 
 | ||||
| @@ -216,92 +215,6 @@ class DiskFile(DiskDevice):
 | ||||
|          return size | ||||
| 
 | ||||
| 
 | ||||
| -class DMRaidArrayDevice(DMDevice, ContainerDevice):
 | ||||
| -
 | ||||
| -    """ A dmraid (device-mapper RAID) device """
 | ||||
| -    _type = "dm-raid array"
 | ||||
| -    _packages = ["dmraid"]
 | ||||
| -    _partitionable = True
 | ||||
| -    _is_disk = True
 | ||||
| -    _format_class_name = property(lambda s: "dmraidmember")
 | ||||
| -    _format_uuid_attr = property(lambda s: None)
 | ||||
| -    _external_dependencies = [availability.BLOCKDEV_DM_PLUGIN_RAID]
 | ||||
| -
 | ||||
| -    def __init__(self, name, fmt=None,
 | ||||
| -                 size=None, parents=None, sysfs_path='', wwn=None):
 | ||||
| -        """
 | ||||
| -            :param name: the device name (generally a device node's basename)
 | ||||
| -            :type name: str
 | ||||
| -            :keyword size: the device's size
 | ||||
| -            :type size: :class:`~.size.Size`
 | ||||
| -            :keyword parents: a list of parent devices
 | ||||
| -            :type parents: list of :class:`StorageDevice`
 | ||||
| -            :keyword fmt: this device's formatting
 | ||||
| -            :type fmt: :class:`~.formats.DeviceFormat` or a subclass of it
 | ||||
| -            :keyword sysfs_path: sysfs device path
 | ||||
| -            :type sysfs_path: str
 | ||||
| -            :keyword str wwn: the device's WWN
 | ||||
| -
 | ||||
| -            DMRaidArrayDevices always exist. Blivet cannot create or destroy
 | ||||
| -            them.
 | ||||
| -        """
 | ||||
| -        super(DMRaidArrayDevice, self).__init__(name, fmt=fmt, size=size,
 | ||||
| -                                                parents=parents, exists=True,
 | ||||
| -                                                sysfs_path=sysfs_path)
 | ||||
| -        self.wwn = wwn or None
 | ||||
| -        self.tags.add(Tags.local)
 | ||||
| -
 | ||||
| -    @property
 | ||||
| -    def devices(self):
 | ||||
| -        """ Return a list of this array's member device instances. """
 | ||||
| -        return self.parents
 | ||||
| -
 | ||||
| -    def deactivate(self):
 | ||||
| -        """ Deactivate the raid set. """
 | ||||
| -        log_method_call(self, self.name, status=self.status)
 | ||||
| -        # This call already checks if the set is not active.
 | ||||
| -        blockdev.dm.deactivate_raid_set(self.name)
 | ||||
| -
 | ||||
| -    def activate(self):
 | ||||
| -        """ Activate the raid set. """
 | ||||
| -        log_method_call(self, self.name, status=self.status)
 | ||||
| -        # This call already checks if the set is active.
 | ||||
| -        blockdev.dm.activate_raid_set(self.name)
 | ||||
| -        udev.settle()
 | ||||
| -
 | ||||
| -    def _setup(self, orig=False):
 | ||||
| -        """ Open, or set up, a device. """
 | ||||
| -        log_method_call(self, self.name, orig=orig, status=self.status,
 | ||||
| -                        controllable=self.controllable)
 | ||||
| -        self.activate()
 | ||||
| -
 | ||||
| -    def teardown(self, recursive=None):
 | ||||
| -        """ Close, or tear down, a device. """
 | ||||
| -        log_method_call(self, self.name, status=self.status,
 | ||||
| -                        controllable=self.controllable)
 | ||||
| -        if not self._pre_teardown(recursive=recursive):
 | ||||
| -            return
 | ||||
| -
 | ||||
| -        log.debug("not tearing down dmraid device %s", self.name)
 | ||||
| -
 | ||||
| -    def _add(self, member):
 | ||||
| -        raise NotImplementedError()
 | ||||
| -
 | ||||
| -    def _remove(self, member):
 | ||||
| -        raise NotImplementedError()
 | ||||
| -
 | ||||
| -    @property
 | ||||
| -    def description(self):
 | ||||
| -        return "BIOS RAID set (%s)" % blockdev.dm.get_raid_set_type(self.name)
 | ||||
| -
 | ||||
| -    @property
 | ||||
| -    def model(self):
 | ||||
| -        return self.description
 | ||||
| -
 | ||||
| -    def dracut_setup_args(self):
 | ||||
| -        return set(["rd.dm.uuid=%s" % self.name])
 | ||||
| -
 | ||||
| -
 | ||||
|  class MultipathDevice(DMDevice): | ||||
| 
 | ||||
|      """ A multipath device """ | ||||
| diff --git a/blivet/flags.py b/blivet/flags.py
 | ||||
| index 6364164d..4929b656 100644
 | ||||
| --- a/blivet/flags.py
 | ||||
| +++ b/blivet/flags.py
 | ||||
| @@ -46,7 +46,6 @@ class Flags(object):
 | ||||
|          else: | ||||
|              self.selinux = selinux.is_selinux_enabled() | ||||
| 
 | ||||
| -        self.dmraid = True
 | ||||
|          self.ibft = True | ||||
|          self.noiswmd = False | ||||
| 
 | ||||
| @@ -103,7 +102,6 @@ class Flags(object):
 | ||||
|      def update_from_boot_cmdline(self): | ||||
|          self.get_boot_cmdline() | ||||
|          self.multipath = "nompath" not in self.boot_cmdline | ||||
| -        self.dmraid = "nodmraid" not in self.boot_cmdline
 | ||||
|          self.noiswmd = "noiswmd" in self.boot_cmdline | ||||
|          self.gfs2 = "gfs2" in self.boot_cmdline | ||||
|          self.jfs = "jfs" in self.boot_cmdline | ||||
| diff --git a/blivet/formats/dmraid.py b/blivet/formats/dmraid.py
 | ||||
| index 2ba9dcfe..fe1a4f13 100644
 | ||||
| --- a/blivet/formats/dmraid.py
 | ||||
| +++ b/blivet/formats/dmraid.py
 | ||||
| @@ -21,7 +21,6 @@
 | ||||
|  # | ||||
| 
 | ||||
|  from ..storage_log import log_method_call | ||||
| -from ..flags import flags
 | ||||
|  from ..errors import DMRaidMemberError | ||||
|  from ..i18n import N_ | ||||
|  from . import DeviceFormat, register_device_format | ||||
| @@ -35,54 +34,14 @@ class DMRaidMember(DeviceFormat):
 | ||||
|      """ A dmraid member disk. """ | ||||
|      _type = "dmraidmember" | ||||
|      _name = N_("dm-raid member device") | ||||
| -    # XXX This looks like trouble.
 | ||||
| -    #
 | ||||
| -    #     Maybe a better approach is a RaidMember format with subclass
 | ||||
| -    #     for MDRaidMember, letting all *_raid_member types fall through
 | ||||
| -    #     to the generic RaidMember format, which is basically read-only.
 | ||||
| -    #
 | ||||
| -    #     One problem that presents is the possibility of someone passing
 | ||||
| -    #     a dmraid member to the MDRaidArrayDevice constructor.
 | ||||
| -    _udev_types = ["adaptec_raid_member", "ddf_raid_member",
 | ||||
| -                   "hpt37x_raid_member", "hpt45x_raid_member",
 | ||||
| -                   "isw_raid_member",
 | ||||
| +
 | ||||
| +    _udev_types = ["adaptec_raid_member", "hpt37x_raid_member", "hpt45x_raid_member",
 | ||||
|                     "jmicron_raid_member", "lsi_mega_raid_member", | ||||
|                     "nvidia_raid_member", "promise_fasttrack_raid_member", | ||||
|                     "silicon_medley_raid_member", "via_raid_member"] | ||||
| -    _supported = True                   # is supported
 | ||||
| -    _packages = ["dmraid"]              # required packages
 | ||||
| +    _supported = False                  # is supported
 | ||||
|      _hidden = True                      # hide devices with this formatting? | ||||
| 
 | ||||
| -    def __init__(self, **kwargs):
 | ||||
| -        """
 | ||||
| -                :keyword device: path to the underlying device (required)
 | ||||
| -                :type device: str
 | ||||
| -                :keyword uuid: this format's UUID
 | ||||
| -                :type uuid: str
 | ||||
| -                :keyword exists: whether this is an existing format
 | ||||
| -                :type exists: bool
 | ||||
| -
 | ||||
| -        """
 | ||||
| -        log_method_call(self, **kwargs)
 | ||||
| -        DeviceFormat.__init__(self, **kwargs)
 | ||||
| -
 | ||||
| -        # Initialize the attribute that will hold the block object.
 | ||||
| -        self._raidmem = None
 | ||||
| -
 | ||||
| -    def __repr__(self):
 | ||||
| -        s = DeviceFormat.__repr__(self)
 | ||||
| -        s += ("  raidmem = %(raidmem)r" % {"raidmem": self.raidmem})
 | ||||
| -        return s
 | ||||
| -
 | ||||
| -    def _get_raidmem(self):
 | ||||
| -        return self._raidmem
 | ||||
| -
 | ||||
| -    def _set_raidmem(self, raidmem):
 | ||||
| -        self._raidmem = raidmem
 | ||||
| -
 | ||||
| -    raidmem = property(lambda d: d._get_raidmem(),
 | ||||
| -                       lambda d, r: d._set_raidmem(r))
 | ||||
| -
 | ||||
|      def create(self, **kwargs): | ||||
|          log_method_call(self, device=self.device, | ||||
|                          type=self.type, status=self.status) | ||||
| @@ -94,12 +53,4 @@ class DMRaidMember(DeviceFormat):
 | ||||
|          raise DMRaidMemberError("destruction of dmraid members is non-sense") | ||||
| 
 | ||||
| 
 | ||||
| -if not flags.noiswmd:
 | ||||
| -    DMRaidMember._udev_types.remove("isw_raid_member")
 | ||||
| -
 | ||||
| -# The anaconda cmdline has not been parsed yet when we're first imported,
 | ||||
| -# so we can not use flags.dmraid here
 | ||||
| -if not flags.dmraid:
 | ||||
| -    DMRaidMember._udev_types = []
 | ||||
| -
 | ||||
|  register_device_format(DMRaidMember) | ||||
| diff --git a/blivet/formats/mdraid.py b/blivet/formats/mdraid.py
 | ||||
| index 41ddef81..af1e4505 100644
 | ||||
| --- a/blivet/formats/mdraid.py
 | ||||
| +++ b/blivet/formats/mdraid.py
 | ||||
| @@ -28,7 +28,6 @@ from gi.repository import BlockDev as blockdev
 | ||||
|  from ..storage_log import log_method_call | ||||
|  from parted import PARTITION_RAID | ||||
|  from . import DeviceFormat, register_device_format | ||||
| -from ..flags import flags
 | ||||
|  from ..i18n import N_ | ||||
|  from ..tasks import availability | ||||
| 
 | ||||
| @@ -41,7 +40,7 @@ class MDRaidMember(DeviceFormat):
 | ||||
|      """ An mdraid member disk. """ | ||||
|      _type = "mdmember" | ||||
|      _name = N_("software RAID") | ||||
| -    _udev_types = ["linux_raid_member"]
 | ||||
| +    _udev_types = ["linux_raid_member", "ddf_raid_member", "isw_raid_member"]
 | ||||
|      parted_flag = PARTITION_RAID | ||||
|      _formattable = True                 # can be formatted | ||||
|      _supported = True                   # is supported | ||||
| @@ -113,11 +112,4 @@ class MDRaidMember(DeviceFormat):
 | ||||
|          self.md_uuid = uuid | ||||
| 
 | ||||
| 
 | ||||
| -# nodmraid -> Wether to use BIOS RAID or not
 | ||||
| -# Note the anaconda cmdline has not been parsed yet when we're first imported,
 | ||||
| -# so we can not use flags.dmraid here
 | ||||
| -if not flags.noiswmd and flags.dmraid:
 | ||||
| -    MDRaidMember._udev_types.append("isw_raid_member")
 | ||||
| -
 | ||||
| -
 | ||||
|  register_device_format(MDRaidMember) | ||||
| diff --git a/blivet/populator/helpers/__init__.py b/blivet/populator/helpers/__init__.py
 | ||||
| index c5ac412f..57f68c73 100644
 | ||||
| --- a/blivet/populator/helpers/__init__.py
 | ||||
| +++ b/blivet/populator/helpers/__init__.py
 | ||||
| @@ -9,7 +9,6 @@ from .boot import AppleBootFormatPopulator, EFIFormatPopulator, MacEFIFormatPopu
 | ||||
|  from .disk import DiskDevicePopulator, iScsiDevicePopulator, FCoEDevicePopulator, MDBiosRaidDevicePopulator, DASDDevicePopulator, ZFCPDevicePopulator, NVDIMMNamespaceDevicePopulator | ||||
|  from .disklabel import DiskLabelFormatPopulator | ||||
|  from .dm import DMDevicePopulator | ||||
| -from .dmraid import DMRaidFormatPopulator
 | ||||
|  from .loop import LoopDevicePopulator | ||||
|  from .luks import LUKSDevicePopulator, LUKSFormatPopulator, IntegrityDevicePopulator, IntegrityFormatPopulator | ||||
|  from .lvm import LVMDevicePopulator, LVMFormatPopulator | ||||
| diff --git a/blivet/populator/helpers/dmraid.py b/blivet/populator/helpers/dmraid.py
 | ||||
| deleted file mode 100644 | ||||
| index b126ac46..00000000
 | ||||
| --- a/blivet/populator/helpers/dmraid.py
 | ||||
| +++ /dev/null
 | ||||
| @@ -1,98 +0,0 @@
 | ||||
| -# populator/helpers/dmraid.py
 | ||||
| -# DM RAID backend code for populating a DeviceTree.
 | ||||
| -#
 | ||||
| -# Copyright (C) 2009-2015  Red Hat, Inc.
 | ||||
| -#
 | ||||
| -# This copyrighted material is made available to anyone wishing to use,
 | ||||
| -# modify, copy, or redistribute it subject to the terms and conditions of
 | ||||
| -# the GNU Lesser General Public License v.2, or (at your option) any later
 | ||||
| -# version. This program is distributed in the hope that it will be useful,
 | ||||
| -# but WITHOUT ANY WARRANTY expressed or implied, including the implied
 | ||||
| -# warranties of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
 | ||||
| -# the GNU Lesser General Public License for more details.  You should have
 | ||||
| -# received a copy of the GNU Lesser General Public License along with this
 | ||||
| -# program; if not, write to the Free Software Foundation, Inc., 51 Franklin
 | ||||
| -# Street, Fifth Floor, Boston, MA 02110-1301, USA.  Any Red Hat trademarks
 | ||||
| -# that are incorporated in the source code or documentation are not subject
 | ||||
| -# to the GNU Lesser General Public License and may only be used or
 | ||||
| -# replicated with the express permission of Red Hat, Inc.
 | ||||
| -#
 | ||||
| -# Red Hat Author(s): David Lehman <dlehman@redhat.com>
 | ||||
| -#
 | ||||
| -
 | ||||
| -import gi
 | ||||
| -gi.require_version("BlockDev", "2.0")
 | ||||
| -
 | ||||
| -from gi.repository import BlockDev as blockdev
 | ||||
| -
 | ||||
| -from ... import udev
 | ||||
| -from ...devices import DMRaidArrayDevice
 | ||||
| -from ...flags import flags
 | ||||
| -from ...storage_log import log_method_call
 | ||||
| -from .formatpopulator import FormatPopulator
 | ||||
| -
 | ||||
| -import logging
 | ||||
| -log = logging.getLogger("blivet")
 | ||||
| -
 | ||||
| -
 | ||||
| -class DMRaidFormatPopulator(FormatPopulator):
 | ||||
| -    priority = 100
 | ||||
| -    _type_specifier = "dmraidmember"
 | ||||
| -
 | ||||
| -    def run(self):
 | ||||
| -        super(DMRaidFormatPopulator, self).run()
 | ||||
| -
 | ||||
| -        # if dmraid usage is disabled skip any dmraid set activation
 | ||||
| -        if not flags.dmraid:
 | ||||
| -            return
 | ||||
| -
 | ||||
| -        log_method_call(self, name=self.device.name)
 | ||||
| -        name = udev.device_get_name(self.data)
 | ||||
| -        uuid = udev.device_get_uuid(self.data)
 | ||||
| -        major = udev.device_get_major(self.data)
 | ||||
| -        minor = udev.device_get_minor(self.data)
 | ||||
| -
 | ||||
| -        # Have we already created the DMRaidArrayDevice?
 | ||||
| -        try:
 | ||||
| -            rs_names = blockdev.dm.get_member_raid_sets(name, uuid, major, minor)
 | ||||
| -        except blockdev.DMError as e:
 | ||||
| -            log.error("Failed to get RAID sets information for '%s': %s", name, str(e))
 | ||||
| -            return
 | ||||
| -
 | ||||
| -        if len(rs_names) == 0:
 | ||||
| -            log.warning("dmraid member %s does not appear to belong to any "
 | ||||
| -                        "array", self.device.name)
 | ||||
| -            return
 | ||||
| -
 | ||||
| -        for rs_name in rs_names:
 | ||||
| -            dm_array = self._devicetree.get_device_by_name(rs_name, incomplete=True)
 | ||||
| -            if dm_array is not None:
 | ||||
| -                # We add the new device.
 | ||||
| -                dm_array.parents.append(self.device)
 | ||||
| -            else:
 | ||||
| -                if not blockdev.dm.map_exists(rs_name, True, True):
 | ||||
| -                    # Activate the Raid set.
 | ||||
| -                    try:
 | ||||
| -                        blockdev.dm.activate_raid_set(rs_name)
 | ||||
| -                    except blockdev.DMError:
 | ||||
| -                        log.warning("Failed to activate the RAID set '%s'", rs_name)
 | ||||
| -                        return
 | ||||
| -
 | ||||
| -                dm_array = DMRaidArrayDevice(rs_name,
 | ||||
| -                                             parents=[self.device],
 | ||||
| -                                             wwn=self.device.wwn)
 | ||||
| -
 | ||||
| -                self._devicetree._add_device(dm_array)
 | ||||
| -
 | ||||
| -                # Wait for udev to scan the just created nodes, to avoid a race
 | ||||
| -                # with the udev.get_device() call below.
 | ||||
| -                udev.settle()
 | ||||
| -
 | ||||
| -                # Get the DMRaidArrayDevice a DiskLabel format *now*, in case
 | ||||
| -                # its partitions get scanned before it does.
 | ||||
| -                dm_array.update_sysfs_path()
 | ||||
| -                dm_array.update_size()
 | ||||
| -                dm_array_info = udev.get_device(dm_array.sysfs_path)
 | ||||
| -                if dm_array_info:
 | ||||
| -                    dm_array.wwn = udev.device_get_wwn(dm_array_info)
 | ||||
| -                self._devicetree.handle_device(dm_array_info, update_orig_fmt=True)
 | ||||
| diff --git a/blivet/populator/populator.py b/blivet/populator/populator.py
 | ||||
| index 3a419418..139d2c76 100644
 | ||||
| --- a/blivet/populator/populator.py
 | ||||
| +++ b/blivet/populator/populator.py
 | ||||
| @@ -32,7 +32,7 @@ gi.require_version("BlockDev", "2.0")
 | ||||
|  from gi.repository import BlockDev as blockdev | ||||
| 
 | ||||
|  from ..errors import DeviceError, DeviceTreeError, NoParentsError | ||||
| -from ..devices import DMLinearDevice, DMRaidArrayDevice
 | ||||
| +from ..devices import DMLinearDevice
 | ||||
|  from ..devices import FileDevice, LoopDevice | ||||
|  from ..devices import MDRaidArrayDevice | ||||
|  from ..devices import MultipathDevice | ||||
| @@ -219,7 +219,7 @@ class PopulatorMixin(object):
 | ||||
|      def _update_exclusive_disks(self, device): | ||||
|          # If we just added a multipath or fwraid disk that is in exclusive_disks | ||||
|          # we have to make sure all of its members are in the list too. | ||||
| -        mdclasses = (DMRaidArrayDevice, MDRaidArrayDevice, MultipathDevice)
 | ||||
| +        mdclasses = (MDRaidArrayDevice, MultipathDevice)
 | ||||
|          if device.is_disk and isinstance(device, mdclasses): | ||||
|              if device.name in self.exclusive_disks: | ||||
|                  for ancestor in device.ancestors: | ||||
| 
 | ||||
| --
 | ||||
| 2.39.1 | ||||
| 
 | ||||
| @ -19,11 +19,11 @@ | ||||
| Summary:  A python module for system storage configuration | ||||
| Name: python-blivet | ||||
| Url: https://storageapis.wordpress.com/projects/blivet | ||||
| Version: 3.6.1 | ||||
| Version: 3.7.0 | ||||
| 
 | ||||
| #%%global prerelease .b2 | ||||
| # prerelease, if defined, should be something like .a1, .b1, .b2.dev1, or .c2 | ||||
| Release: 3%{?prerelease}%{?dist} | ||||
| Release: 1%{?prerelease}%{?dist} | ||||
| Epoch: 1 | ||||
| License: LGPL-2.1-or-later | ||||
| %global realname blivet | ||||
| @ -35,8 +35,6 @@ Source1: http://github.com/storaged-project/blivet/archive/%{realname}-%{realver | ||||
| Patch0: 0001-remove-btrfs-plugin.patch | ||||
| %endif | ||||
| 
 | ||||
| Patch1: 0002-Fedora-dmraid-mdadm.patch | ||||
| 
 | ||||
| # Versions of required components (done so we make sure the buildrequires | ||||
| # match the requires versions of things). | ||||
| %global partedver 1.8.1 | ||||
| @ -198,6 +196,40 @@ configuration. | ||||
| %endif | ||||
| 
 | ||||
| %changelog | ||||
| * Wed Feb 08 2023 Vojtech Trefny <vtrefny@redhat.com> - 3.7.0-1 | ||||
| - Remove unused BLOCKDEV_DM_RAID technology from tasks (vtrefny) | ||||
| - tests: Force remove LVM VG /dev/ entry not removed by vgremove (vtrefny) | ||||
| - Mark LUKS2 integrity devices as always controllable (vtrefny) | ||||
| - Ignore parent dependencies during action execute (vtrefny) | ||||
| - tests: Patch checking stratis pool metadata size (vtrefny) | ||||
| - Remove support for DMRAID devices (vtrefny) | ||||
| - Do not read DDF RAID UUID from udev (vtrefny) | ||||
| - Check physical and logical block size when creating a LUKS format (vtrefny) | ||||
| - Add separate properties for logical and physical block size (vtrefny) | ||||
| - Use DMI product_name for t2 mac detection. (83884198+sharpenedblade) | ||||
| - vmtests: add a --logs arg to capture blivet.log from failed tests (berrange) | ||||
| - examples: illustrate GPT GUID usage in partitioning example (berrange) | ||||
| - vmtests: add test for GPT part type UUID validation (berrange) | ||||
| - blivet: allow 'mountpoint' to be passed to PartitionDevice (berrange) | ||||
| - deviceaction: retain explicit part type UUID when formatting (berrange) | ||||
| - devices/partition: add ability to auto apply a GPT UUID (berrange) | ||||
| - gpt: add helper API for discoverable partition UUIDs (berrange) | ||||
| - devices/partition: allow passing partition type UUID (berrange) | ||||
| - formats/disklabel: allow passing partition type UUID (berrange) | ||||
| - Add a forced delay to udev settle in chroot environments (vlad.bespalov) | ||||
| - Update public API documentation (vtrefny) | ||||
| - tests/README: Clarify various test classes (vtrefny) | ||||
| - Rename unit_tests.storagetestcase to unit_tests.blivettestcase (vtrefny) | ||||
| - Add additional identifiers to NVMeNamespaceDevice (vtrefny) | ||||
| - Add transport and address to NVMeController info (vtrefny) | ||||
| - Make sure we close the streams when reading a file (vtrefny) | ||||
| - Style changes. (sharpenedblade) | ||||
| - Do not report mactel on T2 macs. (sharpenedblade) | ||||
| - Add function to check for T2 apple macs. (sharpenedblade) | ||||
| - Add a basic read-only support for UDF filesystem (vtrefny) | ||||
| - add loongarch support (mahailiang) | ||||
| - Add a basic support for NVMe and NVMe Fabrics devices (vtrefny) | ||||
| 
 | ||||
| * Thu Feb 02 2023 Vojtech Trefny <vtrefny@redhat.com> - 3.6.1-3 | ||||
| - Use mdadm to support BIOS RAID devices (#2158574) | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sources
									
									
									
									
									
								
							| @ -1,2 +1,2 @@ | ||||
| SHA512 (blivet-3.6.1-tests.tar.gz) = 7fbd55c80366e35e9fc9ef6ceeb7b5c9c2053cc79f785c83921175071f554a2a387eceb4e3c06017cc9fdfdc4fd98d466d8a63dc1d372acce91e766f5aa5b4cb | ||||
| SHA512 (blivet-3.6.1.tar.gz) = ae69d0382ef0b0621b53070feb93a2ad2e608c205a66050adbe6d6f8dba9f19672c8cba92151f2097e3afb85a0a4966a7629389861cd4f8b924b43d92f145136 | ||||
| SHA512 (blivet-3.7.0-tests.tar.gz) = ef6ed70d51cc0c905d90c7dd338ac275b6fcd90aac7801d0a7c1a5e4a6ea67b726e2d71c7ade1f4bc3cd5a4173513992318811c62c9045964d6d3aaf99e3877d | ||||
| SHA512 (blivet-3.7.0.tar.gz) = c1ca8ec54790fd73272171a37d75837904bf6cc96dac711cb275bdd8d418c31824821400c33cf05f356410b7ceb4663d2ba25b7d676818e9a644f39f56d23636 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user