[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