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

mulhern amulhern at redhat.com
Thu May 29 18:47: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              |  7 +++----
 blivet/devicelibs/mdraid.py          | 13 ++-----------
 blivet/devices.py                    |  2 +-
 tests/devicefactory_test.py          |  8 ++++----
 tests/devicelibs_test/mdraid_test.py | 16 ++++++++--------
 tests/devices_test.py                | 14 +++++++-------
 tests/devicetree_test.py             |  2 +-
 7 files changed, 26 insertions(+), 36 deletions(-)

diff --git a/blivet/devicefactory.py b/blivet/devicefactory.py
index ee0c651..96e189c 100644
--- a/blivet/devicefactory.py
+++ b/blivet/devicefactory.py
@@ -758,7 +758,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)
@@ -1535,9 +1535,8 @@ class MDFactory(DeviceFactory):
 
     def _get_device_space(self):
         member_count = len(self._get_member_devices())
-        size_per_member = mdraid.getRaidLevel(self.raid_level).get_base_member_size(
-           self.size,
-           member_count)
+        raid_level = mdraid.RAID_levels.raidLevel(self.raid_level)
+        size_per_member = raid_level.get_base_member_size(self.size, member_count)
         size_per_member += mdraid.get_raid_superblock_size(self.size)
         return size_per_member * member_count
 
diff --git a/blivet/devicelibs/mdraid.py b/blivet/devicelibs/mdraid.py
index 75f7ffe..0bfbbe8 100644
--- a/blivet/devicelibs/mdraid.py
+++ b/blivet/devicelibs/mdraid.py
@@ -23,7 +23,7 @@
 import os
 
 from .. import util
-from ..errors import MDRaidError, RaidError
+from ..errors import MDRaidError
 from ..size import Size
 from . import raid
 
@@ -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 2958faa..6993ded 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -3350,7 +3350,7 @@ class MDRaidArrayDevice(ContainerDevice):
             :param type:  a valid raid level descriptor
             :returns:     None
         """
-        self._level = mdraid.getRaidLevel(value) # pylint: disable=attribute-defined-outside-init
+        self._level = mdraid.RAID_levels.raidLevel(value) # pylint: disable=attribute-defined-outside-init
 
     @property
     def createBitmap(self):
diff --git a/tests/devicefactory_test.py b/tests/devicefactory_test.py
index 28fa079..d4746dd 100644
--- a/tests/devicefactory_test.py
+++ b/tests/devicefactory_test.py
@@ -5,7 +5,7 @@ import unittest
 import blivet
 
 from blivet import devicefactory
-from blivet.errors import MDRaidError, RaidError
+from blivet.errors import RaidError
 from blivet.size import Size
 
 class MDFactoryTestCase(unittest.TestCase):
@@ -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 73d2ff1..5abffea 100755
--- a/tests/devicelibs_test/mdraid_test.py
+++ b/tests/devicelibs_test/mdraid_test.py
@@ -15,15 +15,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 3d6ec5e..3f8c4fc 100644
--- a/tests/devices_test.py
+++ b/tests/devices_test.py
@@ -8,7 +8,7 @@ from mock import Mock
 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
@@ -365,18 +365,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",
@@ -391,7 +391,7 @@ class MDRaidArrayDeviceTestCase(DeviceStateTestCase):
                                 parents=[StorageDevice("parent",
                                                 fmt=getFormat("mdmember"))])
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
                                 "invalid RAID level descriptor junk",
                                 MDRaidArrayDevice,
                                 "dev",
@@ -407,10 +407,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):
diff --git a/tests/devicetree_test.py b/tests/devicetree_test.py
index b0105f9..56ce17f 100644
--- a/tests/devicetree_test.py
+++ b/tests/devicetree_test.py
@@ -171,7 +171,7 @@ class MDRaid0TestCase(BlivetResetTestCase):
     _validate_attrs = BlivetResetTestCase._validate_attrs + ["level", "spares"]
 
     def set_up_disks(self):
-        level = devicelibs.mdraid.getRaidLevel(self.level)
+        level = devicelibs.mdraid.RAID_levels.raidLevel(self.level)
         disk_count = level.min_members
         self.disks = dict()
         for i in range(disk_count):
-- 
1.8.3.1



More information about the anaconda-patches mailing list