On Thu, 2013-12-12 at 13:09 -0500, mulhern wrote:
Also added some tests and some comments to the affected methods.
Signed-off-by: mulhern <amulhern(a)redhat.com>
---
blivet/devicelibs/raid.py | 10 ++++++++--
tests/devicelibs_test/raid_test.py | 3 +++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/blivet/devicelibs/raid.py b/blivet/devicelibs/raid.py
index 37f9755..b55804c 100644
--- a/blivet/devicelibs/raid.py
+++ b/blivet/devicelibs/raid.py
@@ -99,6 +99,8 @@ class RAIDLevel(object):
:param member_count: number of members in this array
:param member_count: int
+
+ The return value has the same units as the size parameter.
"""
if member_count < self.min_members:
raise RaidError("%s requires at least %d disks" % (self.name,
self.min_members))
@@ -113,11 +115,15 @@ class RAIDLevel(object):
def get_raw_array_size(self, member_count, smallest_member_size):
"""Calculate the raw arraysize, i.e., the number of MB
available.
+
:param member_count: the number of members in the array
:param type: int
:param smallest_member_size: the size (MB) of the smallest
member of this array
:param type: int
+
+ The return value has the same units as the smallest_member_size
+ parameter.
"""
if member_count < self.min_members:
raise RaidError("%s requires at least %d disks" % (self.name,
self.min_members))
@@ -372,10 +378,10 @@ class RAID10(RAIDLevel):
return member_count - self.min_members
def _get_base_member_size(self, size, member_count):
- return div_up(size, (member_count / 2))
+ return div_up(size, (member_count // 2))
def _get_raw_array_size(self, member_count, smallest_member_size):
- return (member_count / 2) * smallest_member_size
+ return (member_count // 2) * smallest_member_size
def _get_size(self, size, chunk_size):
return size
diff --git a/tests/devicelibs_test/raid_test.py b/tests/devicelibs_test/raid_test.py
index a25672d..84bf94a 100644
--- a/tests/devicelibs_test/raid_test.py
+++ b/tests/devicelibs_test/raid_test.py
@@ -63,6 +63,8 @@ class RaidTestCase(unittest.TestCase):
self.assertEqual(raid.RAID5.get_base_member_size(4,4), 2)
self.assertEqual(raid.RAID6.get_base_member_size(4,4), 2)
self.assertEqual(raid.RAID10.get_base_member_size(4,4), 2)
+ self.assertEqual(raid.RAID10.get_base_member_size(4,5), 2)
+ self.assertEqual(raid.RAID10.get_base_member_size(5,5), 3)
self.assertRaises(errors.RaidError, raid.RAID10.get_base_member_size,
4, 3)
@@ -78,6 +80,7 @@ class RaidTestCase(unittest.TestCase):
self.assertEqual(raid.RAID5.get_raw_array_size(4, 2), 6)
self.assertEqual(raid.RAID6.get_raw_array_size(4, 2), 4)
self.assertEqual(raid.RAID10.get_raw_array_size(4, 2), 4)
+ self.assertEqual(raid.RAID10.get_raw_array_size(5, 2), 4)
##
## get_recommended_stride
ACK.
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic