[blivet:master 00/21] RAID handling again

mulhern amulhern at redhat.com
Sat May 17 18:50:45 UTC 2014


I had to do a good deal of revision, so a lot of these are new.

Ones that are, I think identical to previous versions and probably not worth
reading again are: 
* Import name...
* No longer use...
* Allow the RAID object...
* Check for required...
* Remove getRaidLevel...
* Add lists of supported RAID levels...
* Refine BTRFS...
* Lookup raid level...

I've added a has_redundancy property to the RAIDLevel class and I use it
in a couple of methods. For Container it is False. Maybe that's wrong
and it should raise an exception?

There's a corresponding anaconda patch for get_supported_raid_levels, coming
up soon.

Btrfs actually has different raid levels for data and metadata. Blivet does
not, it restricts raid levels to the data ones for both data and metadata,
and I'm leaving it that way for now.

mulhern (21):
  Import name 'lvm' instead of names from lvm package.
  Comment mdraid.mdcreate() and update tests appropriately.
  Remove DMRaidArrayDevice.members property.
  Extract selection of members in completed() into a separate method.
  No longer use _standard_levels as the default set of RAID levels.
  Adjust RaidLevel hierarchy so that all raid level objects extend
    RAIDLevel
  Allow the RAID object itself to be a valid RAID descriptor for lookup.
  Move Container class to raid package and tidy it up
  Add a LinearRAID class to the list of Raid classes.
  Add a has_redundancy method that returns True if there is actual
    redundancy
  Make createBitmap() a property and update tests appropriately.
  Use has_redundancy raid property when checking whether a device is
    removable
  Update the mdraid.mdadd comments
  Use has_redundancy property to decide how to add a member to an array.
  Check for required methods in MDRaidLevels.isRaidLevel.
  Remove getRaidLevel() from mdraid file and make RAID_levels public
  Add lists of supported RAID levels for btrfs and lvm
  Refine BTRFSVolumeDevice._removeParent() method.
  Make BTRFS devices use RAID objects instead of strings for levels
  Lookup raid level for any sort of device in DeviceFactory.configure()
  Put get_supported_raid_levels in devicefactory.py

 blivet/devicefactory.py              |  60 +++++++----
 blivet/devicelibs/btrfs.py           |   8 +-
 blivet/devicelibs/lvm.py             |   3 +
 blivet/devicelibs/mdraid.py          |  64 ++++-------
 blivet/devicelibs/raid.py            | 202 +++++++++++++++++++++--------------
 blivet/devices.py                    | 151 ++++++++++++++++++--------
 tests/devicefactory_test.py          |   8 +-
 tests/devicelibs_test/mdraid_test.py |  21 ++--
 tests/devicelibs_test/raid_test.py   |  71 ++++++------
 tests/devices_test.py                |  21 ++--
 tests/devicetree_test.py             |   2 +-
 11 files changed, 361 insertions(+), 250 deletions(-)

-- 
1.8.3.1



More information about the anaconda-patches mailing list