diff options
author | Jeremy Katz <katzj@redhat.com> | 2001-07-07 04:31:17 +0000 |
---|---|---|
committer | Jeremy Katz <katzj@redhat.com> | 2001-07-07 04:31:17 +0000 |
commit | 86863d96e351dc7582ac51ec4f6f072bf92649ad (patch) | |
tree | 39b3f86089a25462b86a0a4270605fb7271cb59b /partitioning.py | |
parent | e9d19f8ba5156aba50296451b310a34f9c85562a (diff) | |
download | anaconda-86863d96e351dc7582ac51ec4f6f072bf92649ad.tar.gz anaconda-86863d96e351dc7582ac51ec4f6f072bf92649ad.tar.xz anaconda-86863d96e351dc7582ac51ec4f6f072bf92649ad.zip |
kickstart raid is back... added some convenience functions since kickstart
uses integer forms of 0, 1, and 5 for raid level
Diffstat (limited to 'partitioning.py')
-rw-r--r-- | partitioning.py | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/partitioning.py b/partitioning.py index c09783546..11b0c6a29 100644 --- a/partitioning.py +++ b/partitioning.py @@ -243,23 +243,45 @@ def get_available_raid_partitions(diskset, requests, request): rc.append((partname, getPartSizeMB(part), 1)) return rc +# set of functions to determine if the given level is RAIDX or X +def isRaid5(raidlevel): + if raidlevel == "RAID5": + return 1 + elif raidlevel == 5: + return 1 + return 0 + +def isRaid1(raidlevel): + if raidlevel == "RAID1": + return 1 + elif raidlevel == 1: + return 1 + return 0 + +def isRaid0(raidlevel): + if raidlevel == "RAID0": + return 1 + elif raidlevel == 0: + return 1 + return 0 + # return minimum numer of raid members required for a raid level def get_raid_min_members(raidlevel): - if raidlevel == "RAID0": + if isRaid0(raidlevel): return 2 - elif raidlevel == "RAID1": + elif isRaid1(raidlevel): return 2 - elif raidlevel == "RAID5": + elif isRaid5(raidlevel): return 3 else: raise ValueError, "invalid raidlevel in get_raid_min_members" # return max num of spares available for raidlevel and total num of members def get_raid_max_spares(raidlevel, nummembers): - if raidlevel == "RAID0": + if isRaid0(raidlevel): return 0 - elif raidlevel == "RAID1" or raidlevel == "RAID5": + elif isRaid1(raidlevel) or isRaid5(raidlevel): return max(0, nummembers - get_raid_min_members(raidlevel)) else: raise ValueError, "invalid raidlevel in get_raid_max_spares" @@ -278,7 +300,7 @@ def get_raid_device_size(raidrequest, partitions, diskset): part = get_partition_by_name(diskset.disks, device) partsize = part.geom.length * part.geom.disk.dev.sector_size - if raidlevel == "RAID0": + if isRaid0(raidlevel): sum = sum + partsize else: if not smallest: @@ -286,11 +308,11 @@ def get_raid_device_size(raidrequest, partitions, diskset): elif partsize < smallest: smallest = partsize - if raidlevel == "RAID0": + if isRaid0(raidlevel): return sum - elif raidlevel == "RAID1": + elif isRaid1(raidlevel): return smallest - elif raidlevel == "RAID5": + elif isRaid5(raidlevel): return (nummembers-1) * smallest else: raise ValueError, "Invalid raidlevel in get_raid_device_size()" @@ -445,7 +467,7 @@ def sanityCheckRaidRequest(reqpartitions, newraid): # XXX fix this code to look to see if there is a bootable partition bootreq = reqpartitions.getBootableRequest() if not bootreq and newraid.mountpoint: - if (newraid.mountpoint == "/boot" or newraid.mountpoint == "/") and newraid.raidlevel != "RAID1": + if (newraid.mountpoint == "/boot" or newraid.mountpoint == "/") and not isRaid1(newraid.raidlevel): return _("Bootable partitions can only be on RAID1 devices.") minmembers = get_raid_min_members(newraid.raidlevel) |