[blivet:master 09/11] Use raid.size method to get size of device (#1085474)

Anne Mulhern amulhern at redhat.com
Mon Apr 14 11:55:46 UTC 2014





----- Original Message -----
> From: "Vratislav Podzimek" <vpodzime at redhat.com>
> To: "anaconda patch review" <anaconda-patches at lists.fedorahosted.org>
> Sent: Monday, April 14, 2014 5:12:50 AM
> Subject: Re: [blivet:master 09/11] Use raid.size method to get size of	device (#1085474)
> 
> 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
> 
> _______________________________________________
> anaconda-patches mailing list
> anaconda-patches at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/anaconda-patches
> 

Done.

- mulhern


More information about the anaconda-patches mailing list