[blivet:f21-branch/master 2/3] Don't check for mdmember format when parent is container (#1150147)
David Lehman
dlehman at redhat.com
Fri Oct 10 15:31:44 UTC 2014
On 10/10/2014 10:25 AM, mulhern wrote:
> Related: fed#1150147
>
> Set the required member device format to device format in this case,
> which should cover everything.
>
> Signed-off-by: mulhern <amulhern at redhat.com>
> ---
> blivet/devices.py | 24 ++++++++++++++++++++++--
> 1 file changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/blivet/devices.py b/blivet/devices.py
> index 6ee5bfe..2afce57 100644
> --- a/blivet/devices.py
> +++ b/blivet/devices.py
> @@ -2327,9 +2327,29 @@ class ContainerDevice(StorageDevice):
> doc="The container UUID attribute in the member format class")
>
> def __init__(self, *args, **kwargs):
> - self.formatClass = get_device_format_class(self._formatClassName)
> + formatClassName = self._formatClassName
> +
> + parents = kwargs["parents"]
> + # Override MDRaidArrayDevice's format class restriction if the
> + # member is an mdcontainer.
> + # Note that self.formatClass must be set before superclass
> + # constructor is called since superclass constructor requires that
> + # self._addParent() method have a defined self.formatClass.
> + if parents and isinstance(self, MDRaidArrayDevice):
> + if isinstance(parents, list):
> + parent = parents[0]
> + else:
> + parent = parents
> +
> + try:
> + if parent.type == "mdcontainer":
> + formatClassName = None
> + except AttributeError:
> + pass
> +
> + self.formatClass = get_device_format_class(formatClassName)
> if not self.formatClass:
> - raise errors.StorageError("cannot find '%s' class" % self._formatClassName)
> + raise errors.StorageError("cannot find '%s' class" % formatClassName)
>
> super(ContainerDevice, self).__init__(*args, **kwargs)
>
I'm curious why you opted to put this in ContainerDevice instead of
doing it in MDRaidArrayDevice. It would be less code and it would keep
the ContainerDevice class free of type-specific code.
David
More information about the anaconda-patches
mailing list