[blivet:master 08/26] Move Container class to raid package and tidy it up

mulhern amulhern at redhat.com
Thu May 29 18:47:26 UTC 2014


Remove dead attribute nick and get_raw_array_size which is really
only appropriate for RAIDn classes and was renamed to get_net_array_size
in a previous commit.

Make Container.get_recommended_stride() raise an exception as the
notion of a recommended stride is meaningless for containers.
Do not catch the exception because if there's a situation where a Container
is being formatted, the only reason why get_recommended_stride() would be
called, something has gone wrong.

Add get_max_spares() and get_base_member_size() which both raise an exception.

Signed-off-by: mulhern <amulhern at redhat.com>
---
 blivet/devicelibs/mdraid.py        | 23 +----------------------
 blivet/devicelibs/raid.py          | 20 ++++++++++++++++++++
 tests/devicelibs_test/raid_test.py |  9 ++++-----
 3 files changed, 25 insertions(+), 27 deletions(-)

diff --git a/blivet/devicelibs/mdraid.py b/blivet/devicelibs/mdraid.py
index 2106548..41ef859 100644
--- a/blivet/devicelibs/mdraid.py
+++ b/blivet/devicelibs/mdraid.py
@@ -44,28 +44,7 @@ class MDRaidLevels(raid.RAIDLevels):
         except AttributeError:
             return False
 
-_RAID_levels = MDRaidLevels(["raid0", "raid1", "raid4", "raid5", "raid6", "raid10"])
-
-class Container(object):
-    name = "container"
-    names = [name]
-    nick = None
-    min_members = 1
-    def get_recommended_stride(self, member_devices):
-        # pylint: disable=unused-argument
-        return None
-    def get_raw_array_size(self, member_count, smallest_member_size):
-        # pylint: disable=unused-argument
-        raise MDRaidError("get_raw_array_size is not defined for level container.")
-    def get_size(self, member_sizes, num_members=None, chunk_size=None, superblock_size_func=None):
-        # pylint: disable=unused-argument
-        return sum(member_sizes)
-
-    def __str__(self):
-        return self.name
-
-Container = Container()
-_RAID_levels.addRaidLevel(Container)
+_RAID_levels = MDRaidLevels(["raid0", "raid1", "raid4", "raid5", "raid6", "raid10", "container"])
 
 def getRaidLevel(descriptor):
     """Return an object for this raid level descriptor.
diff --git a/blivet/devicelibs/raid.py b/blivet/devicelibs/raid.py
index 33af02f..bfe28cb 100644
--- a/blivet/devicelibs/raid.py
+++ b/blivet/devicelibs/raid.py
@@ -470,3 +470,23 @@ class RAID10(RAIDn):
 
 RAID10 = RAID10()
 ALL_LEVELS.addRaidLevel(RAID10)
+
+class Container(RAIDLevel):
+    name = "container"
+    names = [name]
+    min_members = 1
+    def get_max_spares(self, member_count):
+        # pylint: disable=unused-argument
+        raise RaidError("get_max_spares is not defined for level container")
+    def get_base_member_size(self, size, member_count):
+        # pylint: disable=unused-argument
+        raise RaidError("get_base_member_size is not defined for level container")
+    def get_recommended_stride(self, member_count):
+        # pylint: disable=unused-argument
+        raise RaidError("get_recommended_stride is not defined for level container")
+    def get_size(self, member_sizes, num_members=None, chunk_size=None, superblock_size_func=None):
+        # pylint: disable=unused-argument
+        return sum(member_sizes)
+
+Container = Container()
+ALL_LEVELS.addRaidLevel(Container)
diff --git a/tests/devicelibs_test/raid_test.py b/tests/devicelibs_test/raid_test.py
index f32c59e..7d4f22b 100644
--- a/tests/devicelibs_test/raid_test.py
+++ b/tests/devicelibs_test/raid_test.py
@@ -1,7 +1,6 @@
 #!/usr/bin/python
 import unittest
 
-import blivet.devicelibs.mdraid as mdraid
 import blivet.devicelibs.raid as raid
 import blivet.errors as errors
 from blivet.size import Size
@@ -101,7 +100,7 @@ class RaidTestCase(unittest.TestCase):
         ##
         ## size
         ##
-        for r in [l for l in raid.ALL_LEVELS if l is not mdraid.Container]:
+        for r in [l for l in raid.ALL_LEVELS if l is not raid.Container]:
             self.assertEqual(r.get_size([ Size("32MiB"),
                                       Size("128MiB"),
                                       Size("128MiB"),
@@ -111,7 +110,7 @@ class RaidTestCase(unittest.TestCase):
                lambda x: Size(0)),
                r.get_net_array_size(4, Size("32MiB")))
 
-        for r in [l for l in raid.ALL_LEVELS if l is not mdraid.Container]:
+        for r in [l for l in raid.ALL_LEVELS if l is not raid.Container]:
             self.assertEqual(r.get_size([ Size("32MiB"),
                                       Size("128MiB"),
                                       Size("128MiB"),
@@ -121,7 +120,7 @@ class RaidTestCase(unittest.TestCase):
                lambda x: Size(0)),
                r.get_net_array_size(5, Size("32MiB")))
 
-        for r in [l for l in raid.ALL_LEVELS if l is not mdraid.Container]:
+        for r in [l for l in raid.ALL_LEVELS if l is not raid.Container]:
             self.assertEqual(r.get_size([ Size("32MiB"),
                                       Size("128MiB"),
                                       Size("128MiB"),
@@ -131,7 +130,7 @@ class RaidTestCase(unittest.TestCase):
                lambda x: Size("32MiB")),
                0)
 
-        for r in [l for l in raid.ALL_LEVELS if l is not mdraid.Container]:
+        for r in [l for l in raid.ALL_LEVELS if l is not raid.Container]:
             self.assertEqual(r.get_size([ Size("32MiB"),
                                       Size("128MiB"),
                                       Size("128MiB"),
-- 
1.8.3.1



More information about the anaconda-patches mailing list