[blivet:master 09/11] Use raid.size method to get size of device (#1085474)
Vratislav Podzimek
vpodzime at redhat.com
Mon Apr 14 09:12:50 UTC 2014
On Fri, 2014-04-11 at 11:23 -0400, mulhern wrote:
> Resolves: fed#1085474
>
> Requires modifying superBlockSize() so it can be passed as an argument to
> size().
>
> Signed-off-by: mulhern <amulhern at redhat.com>
> ---
> blivet/devices.py | 25 ++++++++++++++-----------
> tests/devices_test.py | 1 -
> 2 files changed, 14 insertions(+), 12 deletions(-)
>
> diff --git a/blivet/devices.py b/blivet/devices.py
> index f6ed975..7bceb87 100644
> --- a/blivet/devices.py
> +++ b/blivet/devices.py
> @@ -3269,9 +3269,16 @@ class MDRaidArrayDevice(ContainerDevice):
> log.debug("raw RAID %s size == %s", self.level, size)
> return size
>
> - @property
> - def superBlockSize(self):
> - return mdraid.get_raid_superblock_size(self.rawArraySize,
> + def superBlockSize(self, raw_array_size):
> + """Estimate the superblock size for a member of an array,
> + given the total available memory for this array and raid level.
> +
> + :param raw_array_size: total available for this array and level
> + :type raw_array_size: :class:`~.size.Size`
> + :returns: estimated superblock size
> + :rtype: :class:`~.size.Size`
> + """
> + return mdraid.get_raid_superblock_size(raw_array_size,
> version=self.metadataVersion)
>
> @property
> @@ -3291,16 +3298,12 @@ class MDRaidArrayDevice(ContainerDevice):
> if self.type == "mdbiosraidarray":
> return self._size
>
> - smallestMember = self.smallestMember
> - if smallestMember is None:
> - return 0
> -
> if not self.exists or not self.partedDevice:
> try:
> - smallestMemberSize = smallestMember.size - self.superBlockSize
> - size = self.level.get_size(self.memberDevices,
> - smallestMemberSize,
> - self.chunkSize)
> + size = self.level.size([ d.size for d in self.devices ],
Please drop the extra space in the square brackets.
> + self.memberDevices,
> + self.chunkSize,
> + self.superBlockSize)
> except (errors.MDRaidError, errors.RaidError) as e:
> log.info("could not calculate size of device %s for raid level %s: %s", self, self.level, e)
> size = 0
> diff --git a/tests/devices_test.py b/tests/devices_test.py
> index 885f958..5d07f65 100644
> --- a/tests/devices_test.py
> +++ b/tests/devices_test.py
> @@ -87,7 +87,6 @@ class MDRaidArrayDeviceTestCase(DeviceStateTestCase):
> "smallestMember" : self.assertIsNone,
> "spares" : lambda x, m: self.assertEqual(x, 0, m),
> "status" : self.assertFalse,
> - "superBlockSize" : lambda x, m: self.assertEqual(x, Size(spec="1 MiB"), m),
> "sysfsPath" : lambda x, m: self.assertEqual(x, "", m),
> "targetSize" : lambda x, m: self.assertEqual(x, Size(bytes=0), m),
> "uuid" : self.assertIsNone,
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic
More information about the anaconda-patches
mailing list