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

mulhern amulhern at redhat.com
Sat May 17 18:51:01 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 11a59e9..3d75c44 100644
--- a/blivet/devicefactory.py
+++ b/blivet/devicefactory.py
@@ -759,7 +759,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)
@@ -1537,9 +1537,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 a450b1f..7ab3363 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 3538b4f..5b7c6d2 100644
--- a/blivet/devices.py
+++ b/blivet/devices.py
@@ -3258,7 +3258,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 afb9839..32aad45 100644
--- a/tests/devices_test.py
+++ b/tests/devices_test.py
@@ -7,7 +7,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
@@ -364,18 +364,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",
@@ -390,7 +390,7 @@ class MDRaidArrayDeviceTestCase(DeviceStateTestCase):
                                 parents=[StorageDevice("parent",
                                                 fmt=getFormat("mdmember"))])
 
-        self.assertRaisesRegexp(MDRaidError,
+        self.assertRaisesRegexp(RaidError,
                                 "invalid RAID level descriptor junk",
                                 MDRaidArrayDevice,
                                 "dev",
@@ -406,10 +406,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