[blivet:master 12/12] Adjust the available size on each disk using chunk size.

mulhern amulhern at redhat.com
Fri Apr 11 16:27:36 UTC 2014


Previously the code adjusted the total size across all member devices using
the chunk size, but chunks are not allocated across disks.

Signed-off-by: mulhern <amulhern at redhat.com>
---
 blivet/devicelibs/raid.py          |  5 ++---
 tests/devicelibs_test/raid_test.py | 11 +++++++++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/blivet/devicelibs/raid.py b/blivet/devicelibs/raid.py
index 50c0625..f28c937 100644
--- a/blivet/devicelibs/raid.py
+++ b/blivet/devicelibs/raid.py
@@ -231,9 +231,8 @@ class RAIDLevel(object):
         min_size = min(member_sizes)
         total_space = self.get_net_array_size(num_members, min_size)
         superblock_size = superblock_size_func(total_space)
-        min_data_size = min_size - superblock_size
-        total_data_size = self.get_net_array_size(num_members, min_data_size)
-        return self._trim(total_data_size, chunk_size)
+        min_data_size = self._trim(min_size - superblock_size, chunk_size)
+        return self.get_net_array_size(num_members, min_data_size)
 
     def __str__(self):
         return self.name
diff --git a/tests/devicelibs_test/raid_test.py b/tests/devicelibs_test/raid_test.py
index 34b5ba5..b4f47e2 100644
--- a/tests/devicelibs_test/raid_test.py
+++ b/tests/devicelibs_test/raid_test.py
@@ -128,6 +128,17 @@ class RaidTestCase(unittest.TestCase):
                Size(spec="1MiB"),
                lambda x: Size(spec="32MiB")),
                0)
+
+        for r in raid.RAIDLevels():
+            self.assertEqual(r.size([ Size(spec="32MiB"),
+                                      Size(spec="128MiB"),
+                                      Size(spec="128MiB"),
+                                      Size(spec="64MiB") ],
+               4,
+               Size(spec="2MiB"),
+               lambda x: Size(spec="31MiB")),
+               0 if r not in (raid.RAID1, raid.RAID10) else r.get_net_array_size(4, Size(spec="1MiB")))
+
         ##
         ## names
         ##
-- 
1.8.3.1



More information about the anaconda-patches mailing list