[blivet:master 11/16] Remove getRaidLevel() from mdraid file and make RAID_levels public

mulhern amulhern at redhat.com
Tue May 6 16:42:36 UTC 2014


devicelibs.btrfs and devicelibs.lvm will be the same. Keeping getRaidLevel()
will just require making copies of it for each of these, in order to remain
consistent.

Update some tests as appropriate, where RaidError is thrown instead of
MDRaidError.

Signed-off-by: mulhern <amulhern at redhat.com>
---
 blivet/devicefactory.py              |  4 ++--
 blivet/devicelibs/mdraid.py          | 11 +----------
 blivet/devices.py                    |  2 +-
 tests/devicefactory_test.py          |  6 +++---
 tests/devicelibs_test/mdraid_test.py | 16 ++++++++--------
 tests/devices_test.py                | 13 +++++++------
 6 files changed, 22 insertions(+), 30 deletions(-)

diff --git a/blivet/devicefactory.py b/blivet/devicefactory.py
index 3912e28..82ad25d 100644
--- a/blivet/devicefactory.py
+++ b/blivet/devicefactory.py
@@ -761,7 +761,7 @@ class DeviceFactory(object):
             if level in [None, "single"]:
                 continue
 
-            min_disks = mdraid.getRaidLevel(level).min_members
+            min_disks = mdraid.RAID_levels.raidLevel(level).min_members
             disks = set(d for m in self._get_member_devices() for d in m.disks)
             if len(disks) < min_disks:
                 raise DeviceFactoryError("Not enough disks for %s" % level)
@@ -1539,7 +1539,7 @@ class MDFactory(DeviceFactory):
 
     def _get_device_space(self):
         member_count = len(self._get_member_devices())
-        raid_level = mdraid.getRaidLevel(self.raid_level)
+        raid_level = mdraid.RAID_levels.raidLevel(self.raid_level)
         try:
             size_per_member = raid_level.get_base_member_size(self.size, member_count)
         except RaidError as e:
diff --git a/blivet/devicelibs/mdraid.py b/blivet/devicelibs/mdraid.py
index 1859f59..f1e2eab 100644
--- a/blivet/devicelibs/mdraid.py
+++ b/blivet/devicelibs/mdraid.py
@@ -43,16 +43,7 @@ class MDRaidLevels(raid.RAIDLevels):
            hasattr(level, 'get_recommended_stride') and \
            hasattr(level, 'get_size')
 
-_RAID_levels = MDRaidLevels(["raid0", "raid1", "raid4", "raid5", "raid6", "raid10", "container"])
-
-def getRaidLevel(descriptor):
-    """Return an object for this raid level descriptor.
-       Raises an MDRaidError if the descriptor is not valid.
-    """
-    try:
-        return _RAID_levels.raidLevel(descriptor)
-    except RaidError as e:
-        raise MDRaidError(e.message)
+RAID_levels = MDRaidLevels(["raid0", "raid1", "raid4", "raid5", "raid6", "raid10", "container"])
 
 def get_raid_superblock_size(size, version=None):
     """ mdadm has different amounts of space reserved for its use depending
diff --git a/blivet/devices.py b/blivet/devices.py
index 118a4b8..93a6109 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -3239,7 +3239,7 @@ class MDRaidArrayDevice(ContainerDevice):
 
             Sets createBitmap True unless level is 0
         """
-        self._level = mdraid.getRaidLevel(value) # pylint: disable=attribute-defined-outside-init
+        self._level = mdraid.RAID_levels.raidLevel(value) # pylint: disable=attribute-defined-outside-init
 
         # bitmaps are not meaningful on raid0 according to mdadm-3.0.3
         self.createBitmap = self._level.name != "raid0" # pylint: disable=attribute-defined-outside-init
diff --git a/tests/devicefactory_test.py b/tests/devicefactory_test.py
index 75bbf7e..7496d60 100644
--- a/tests/devicefactory_test.py
+++ b/tests/devicefactory_test.py
@@ -26,11 +26,11 @@ class MDFactoryTestCase(unittest.TestCase):
            raid_level=0)
 
     def testMDFactory(self):
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
            "invalid RAID level",
            self.factory1._get_device_space)
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
            "invalid RAID level",
            self.factory1._configure)
 
@@ -38,7 +38,7 @@ class MDFactoryTestCase(unittest.TestCase):
 
         self.assertIsNone(self.factory1.get_container())
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
            "invalid RAID level",
            self.factory1._get_new_device,
            parents=[])
diff --git a/tests/devicelibs_test/mdraid_test.py b/tests/devicelibs_test/mdraid_test.py
index fbb6e43..235d377 100755
--- a/tests/devicelibs_test/mdraid_test.py
+++ b/tests/devicelibs_test/mdraid_test.py
@@ -14,15 +14,15 @@ class MDRaidTestCase(unittest.TestCase):
     def testMDRaid(self):
 
         ##
-        ## getRaidLevel
+        ## level lookup
         ##
-        self.assertEqual(mdraid.getRaidLevel("container").name, "container")
-        self.assertEqual(mdraid.getRaidLevel("stripe").name, "raid0")
-        self.assertEqual(mdraid.getRaidLevel("mirror").name, "raid1")
-        self.assertEqual(mdraid.getRaidLevel("4").name, "raid4")
-        self.assertEqual(mdraid.getRaidLevel(5).name, "raid5")
-        self.assertEqual(mdraid.getRaidLevel("RAID6").name, "raid6")
-        self.assertEqual(mdraid.getRaidLevel("raid10").name, "raid10")
+        self.assertEqual(mdraid.RAID_levels.raidLevel("container").name, "container")
+        self.assertEqual(mdraid.RAID_levels.raidLevel("stripe").name, "raid0")
+        self.assertEqual(mdraid.RAID_levels.raidLevel("mirror").name, "raid1")
+        self.assertEqual(mdraid.RAID_levels.raidLevel("4").name, "raid4")
+        self.assertEqual(mdraid.RAID_levels.raidLevel(5).name, "raid5")
+        self.assertEqual(mdraid.RAID_levels.raidLevel("RAID6").name, "raid6")
+        self.assertEqual(mdraid.RAID_levels.raidLevel("raid10").name, "raid10")
 
         ##
         ## get_raid_superblock_size
diff --git a/tests/devices_test.py b/tests/devices_test.py
index b17ec77..8700cd6 100644
--- a/tests/devices_test.py
+++ b/tests/devices_test.py
@@ -8,6 +8,7 @@ import blivet
 
 from blivet.errors import DeviceError
 from blivet.errors import MDRaidError
+from blivet.errors import RaidError
 
 from blivet.devices import BTRFSSubVolumeDevice
 from blivet.devices import BTRFSVolumeDevice
@@ -359,18 +360,18 @@ class MDRaidArrayDeviceTestCase(DeviceStateTestCase):
                         spares=lambda x, m: self.assertEqual(x, 1, m),
                         totalDevices=lambda x, m: self.assertEqual(x, 5, m))
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
                                 "invalid RAID level",
                                 MDRaidArrayDevice,
                                 "dev")
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
                                 "invalid RAID level",
                                 MDRaidArrayDevice,
                                 "dev",
                                 level="raid2")
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
                                 "invalid RAID level",
                                 MDRaidArrayDevice,
                                 "dev",
@@ -385,7 +386,7 @@ class MDRaidArrayDeviceTestCase(DeviceStateTestCase):
                                 parents=[StorageDevice("parent",
                                                 format=getFormat("mdmember"))])
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
                                 "invalid RAID level descriptor junk",
                                 MDRaidArrayDevice,
                                 "dev",
@@ -401,10 +402,10 @@ class MDRaidArrayDeviceTestCase(DeviceStateTestCase):
 
     def testMDRaidArrayDeviceMethods(self):
         """Test for method calls on initialized MDRaidDevices."""
-        with self.assertRaisesRegexp(MDRaidError, "invalid RAID level" ):
+        with self.assertRaisesRegexp(RaidError, "invalid RAID level" ):
             self.dev7.level = "junk"
 
-        with self.assertRaisesRegexp(MDRaidError, "invalid RAID level" ):
+        with self.assertRaisesRegexp(RaidError, "invalid RAID level" ):
             self.dev7.level = None
 
 class BTRFSDeviceTestCase(DeviceStateTestCase):
-- 
1.8.3.1



More information about the anaconda-patches mailing list