summaryrefslogtreecommitdiffstats
path: root/installinterfacebase.py
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2010-02-15 16:15:25 +0100
committerHans de Goede <hdegoede@redhat.com>2010-02-16 13:12:43 +0100
commit2cb900c168a536336b89a3b5312d6e7991236721 (patch)
tree058611d72185672afe4baa88e830119a40dc113d /installinterfacebase.py
parent0b65338b0bb6a83a31fd0121cee6d7a699a47b29 (diff)
downloadanaconda-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.py51
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")