diff options
author | Hans de Goede <hdegoede@redhat.com> | 2010-02-15 16:15:25 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2010-02-16 13:12:43 +0100 |
commit | 2cb900c168a536336b89a3b5312d6e7991236721 (patch) | |
tree | 058611d72185672afe4baa88e830119a40dc113d /installinterfacebase.py | |
parent | 0b65338b0bb6a83a31fd0121cee6d7a699a47b29 (diff) | |
download | anaconda-2cb900c168a536336b89a3b5312d6e7991236721.tar.gz anaconda-2cb900c168a536336b89a3b5312d6e7991236721.tar.xz anaconda-2cb900c168a536336b89a3b5312d6e7991236721.zip |
Warn when ignoring BIOS RAID members (#560932)
This patch adds a warning when ignoring BIOS RAID members because no complete
set using them could be found.
This patch also introduces a much needed InstallInterfaceBase class, as I
didn't feel like adding the exact same code to all of cmdline.py, gui.py and
text.py .
Note that the ignoring of BIOS RAID members is checked in 2 places, as
the filter UI can be skipped under certain circumstances (kickstart). The
interface code checks for disks it has already warned about.
Diffstat (limited to 'installinterfacebase.py')
-rw-r--r-- | installinterfacebase.py | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/installinterfacebase.py b/installinterfacebase.py new file mode 100644 index 000000000..6269a762b --- /dev/null +++ b/installinterfacebase.py @@ -0,0 +1,51 @@ +# +# installinterfacebase.py: a baseclass for anaconda interface classes +# +# Copyright (C) 2010 Red Hat, Inc. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty 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, see <http://www.gnu.org/licenses/>. +# +# Author(s): Hans de Goede <hdegoede@redhat.com> + +import gettext +_ = lambda x: gettext.ldgettext("anaconda", x) +P_ = lambda x, y, z: gettext.ldngettext("anaconda", x, y, z) + +class InstallInterfaceBase(object): + def __init__(self): + self._warnedUnusedRaidMembers = [] + + def messageWindow(self, title, text, type="ok", default = None, + custom_buttons=None, custom_icon=None): + raise NotImplementedError + + def unusedRaidMembersWarning(self, unusedRaidMembers): + """Warn about unused BIOS RAID members""" + unusedRaidMembers = \ + filter(lambda m: m not in self._warnedUnusedRaidMembers, + unusedRaidMembers) + if unusedRaidMembers: + self._warnedUnusedRaidMembers.extend(unusedRaidMembers) + unusedRaidMembers.sort() + self.messageWindow(_("Warning"), + P_("Disk %s contains BIOS RAID metadata, but is not part of " + "any recognized BIOS RAID sets. Ignoring disk %s." % + (", ".join(unusedRaidMembers), + ", ".join(unusedRaidMembers)), + "Disks %s contain BIOS RAID metadata, but are not part of " + "any recognized BIOS RAID sets. Ignoring disks %s." % + (", ".join(unusedRaidMembers), + ", ".join(unusedRaidMembers)), + len(unusedRaidMembers)), + custom_icon="warning") |