[blivet:master 2/5] Add new RaidDevice class for handling RAID aspects of devices.

Anne Mulhern amulhern at redhat.com
Tue Oct 7 13:04:13 UTC 2014





----- Original Message -----
> From: "Vratislav Podzimek" <vpodzime at redhat.com>
> To: "anaconda patch review" <anaconda-patches at lists.fedorahosted.org>
> Sent: Tuesday, October 7, 2014 2:26:03 AM
> Subject: Re: [blivet:master 2/5] Add new RaidDevice class for handling RAID	aspects of devices.
> 
> On Mon, 2014-10-06 at 09:14 -0400, mulhern wrote:
> > Signed-off-by: mulhern <amulhern at redhat.com>
> > ---
> >  blivet/devices/raid.py | 106
> >  +++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 106 insertions(+)
> >  create mode 100644 blivet/devices/raid.py
> > 
> > diff --git a/blivet/devices/raid.py b/blivet/devices/raid.py
> > new file mode 100644
> > index 0000000..0f064f9
> > --- /dev/null
> > +++ b/blivet/devices/raid.py
> > @@ -0,0 +1,106 @@
> > +# devices/raid.py
> > +#
> > +# Copyright (C) 2014  Red Hat, Inc.
> > +#
> > +# This copyrighted material is made available to anyone wishing to use,
> > +# modify, copy, or redistribute it subject to the terms and conditions of
> > +# the GNU General Public License v.2, or (at your option) any later
> > version.
> > +# This program is distributed in the hope that it will be useful, but
> > WITHOUT
> > +# ANY WARRANTY expressed or implied, including the implied warranties of
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> > General
> > +# Public License for more details.  You should have received a copy of the
> > +# GNU General Public License along with this program; if not, write to the
> > +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
> > MA
> > +# 02110-1301, USA.  Any Red Hat trademarks that are incorporated in the
> > +# source code or documentation are not subject to the GNU General Public
> > +# License and may only be used or replicated with the express permission
> > of
> > +# Red Hat, Inc.
> > +#
> > +# Red Hat Author(s): Anne Mulhern <amulhern at redhat.com>
> > +#
> > +
> > +import abc
> > +
> > +from six import add_metaclass
> > +
> > +from .. import errors
> > +from ..i18n import N_, P_
> > +
> > +from .storage import StorageDevice
> > +
> > + at add_metaclass(abc.ABCMeta)
> > +class RaidDevice(StorageDevice):
> > +    """ Metaclass for devices that support RAID in some form. """
> > +
> > +    def _validateRaidLevel(self, level, parent_diff=0):
> > +        """ Returns an error message if the RAID level is invalid for this
> > +            device, otherwise None.
> > +
> > +            :param level: a RAID level
> > +            :type level: :class:`~.devicelibs.raid.RAIDLevel`
> > +            :param int parent_diff: number of parents being removed or
> > added
> > +            :returns: an error message if the RAID level is invalid, else
> > None
> > +            :rtype: str or NoneType
> > +
> > +            The default number of parents being removed or added is 0,
> > +            indicating that the level is to be checked against the current
> > +            number of parents. The number is positive for added parents,
> > +            negative for removed parents.
> > +        """
> > +        num_parents = len(self.parents) + parent_diff
> > +        if not self.exists and num_parents < level.min_members:
> > +            message = P_(
> > +               "RAID level %(raidLevel)s requires that device have at
> > least %(minMembers)d member.",
> > +               "RAID level %(raidLevel)s requires that device have at
> > least %(minMembers)d members.",
> > +               level.min_members
> > +            )
> > +            return message % {"raidLevel": level, "minMembers" :
> > level.min_members}
> > +        return None
> > +
> > +    def _getLevel(self, value, levels):
> > +        """ Obtains a valid level for the allowed set of levels.
> > +
> > +            :param value: a RAID level
> > +            :type value: a valid RAID level descriptor
> > +            :param levels: a list of valid levels
> > +            :type levels: :class:`~.devicelibs.raid.RAIDLevels`
> > +            :returns: a valid RAID level
> > +            :rtype: :class:`~.devicelibs.raid.RAIDLevel`
> > +            :raises: ValueError if invalid RAID level
> The syntax for the :raises: field [1] is
> :raises EXCEPT_TYPE: condition description
> 
> [1] http://sphinx-doc.org/domains.html#info-field-lists
> 
> --
> 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
>
 
Fixed.

- mulhern


More information about the anaconda-patches mailing list