[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