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 /kickstart.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 'kickstart.py')
-rw-r--r-- | kickstart.py | 52 |
1 files changed, 41 insertions, 11 deletions
diff --git a/kickstart.py b/kickstart.py index eb9434d87..c19a643dc 100644 --- a/kickstart.py +++ b/kickstart.py @@ -589,8 +589,13 @@ class KickstartBase(BaseInstallClass): self.setClearParts(id, type, None) - def defineRaid(self, args): - (args, extra) = isys.getopt(args, '', [ 'level=', 'device=' ] ) + def defineRaid(self, id, args): + (args, extra) = isys.getopt(args, '', [ 'level=', 'device=', 'spares=' ] ) + + level = None + raidDev = None + spares = 0 + fstype = None for n in args: (str, arg) = n @@ -598,12 +603,30 @@ class KickstartBase(BaseInstallClass): level = int(arg) elif str == "--device": raidDev = arg + elif str == "--spares": + spares = arg - mntPoint = extra[0] - extra = extra[1:] + if extra[0] == 'swap': + filesystem = fileSystemTypeGet('swap') + mountpoint = None + else: + if fstype: + filesystem = fileSystemTypeGet(fstype) + else: + filesystem = fileSystemTypeGetDefault() + + mountpoint = extra[0] + + raidmems = extra[1:] + + if not level: + raise ValueError, _("RAID Partition defined without RAID level") + if len(raidmems) == 0: + raise ValueError, _("RAID Partition defined without any RAID members") + + request = PartitionSpec(filesystem, REQUEST_RAID, mountpoint = mountpoint, raidmembers = raidmems, raidlevel = level, raidspares = spares) + id.partitions.autoPartitionRequests.append(request) - # XXX reimplement - # self.addRaidEntry(mntPoint, raidDev, level, extra) def definePartition(self, id, args): # we set up partition requests (whee!) @@ -620,6 +643,7 @@ class KickstartBase(BaseInstallClass): format = 1 fstype = None mountpoint = None + uniqueID = None (args, extra) = isys.getopt(args, '', [ 'size=', 'maxsize=', 'grow', 'onpart=', 'ondisk=', @@ -660,12 +684,16 @@ class KickstartBase(BaseInstallClass): if extra[0] == 'swap': filesystem = fileSystemTypeGet('swap') mountpoint = None - elif not fstype: - filesystem = fileSystemTypeGetDefault() - mountpoint = extra[0] else: - filesystem = fileSystemTypeGet(fstype) - mountpoint = extra[0] + if fstype: + filesystem = fileSystemTypeGet(fstype) + mountpoint = extra[0] + elif extra[0][:5] == "raid.": + filesystem = fileSystemTypeGet("software RAID") + uniqueID = extra[0] + else: + filesystem = fileSystemTypeGetDefault() + mountpoint = extra[0] if not size: raise ValueError, "temporarily requiring a size to be specified" @@ -681,6 +709,8 @@ class KickstartBase(BaseInstallClass): request.primary = 1 if not format: request.format = 0 + if id: + request.uniqueID = uniqueID id.partitions.autoPartitionRequests.append(request) |