summaryrefslogtreecommitdiffstats
path: root/kickstart.py
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2001-07-07 04:31:17 +0000
committerJeremy Katz <katzj@redhat.com>2001-07-07 04:31:17 +0000
commit86863d96e351dc7582ac51ec4f6f072bf92649ad (patch)
tree39b3f86089a25462b86a0a4270605fb7271cb59b /kickstart.py
parente9d19f8ba5156aba50296451b310a34f9c85562a (diff)
downloadanaconda-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.py52
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)