def __init__(self, anaconda):
"""Creates a new Platform object. This is basically an abstract class.
@@ -121,6 +122,11 @@ class Platform(object):
"""Return the default platform-specific partitioning information."""
return [("/boot", self.bootFSType, 200, None, 0, 0)]
+ @property
+ def supportsMdRaidBoot(self):
+ """Does the platform support /boot on MD RAID?"""
+ return self._supportsMdRaidBoot
+
class EFI(Platform):
_diskType = parted.diskType["gpt"]
@@ -214,6 +220,7 @@ class IA64(EFI):
class PPC(Platform):
_bootloaderPackage = "yaboot"
_ppcMachine = iutil.getPPCMachine()
+ _supportsMdRaidBoot = True
def __init__(self, anaconda):
EFI.__init__(self, anaconda)
diff --git a/storage/__init__.py b/storage/__init__.py
index 8dda2a4..51a892d 100644
--- a/storage/__init__.py
+++ b/storage/__init__.py
@@ -42,7 +42,6 @@ from formats import getFormat
from formats import get_device_format_class
from formats import get_default_filesystem_type
from devicelibs.lvm import safeLvmName
-from devicelibs.mdraid import mdRaidBootArches
from udev import udev_trigger
import iscsi
import zfcp
@@ -746,8 +745,7 @@ class Storage(object):
"logical volume."))
# most arches can't have boot on RAID
- if (boot and boot.type == "mdarray" and
- iutil.getArch() not in mdRaidBootArches):
+ if boot and boot.type == "mdarray" and not self.anaconda.platform.supportsMdRaidBoot:
errors.append(_("Bootable partitions cannot be on a RAID "
"device."))