From 450b70f1492df6c5070f6a30f17ef280b072dbdd Mon Sep 17 00:00:00 2001 From: Chris Lumens Date: Mon, 1 Oct 2007 19:25:36 +0000 Subject: [PATCH] Multiple device commands can be specified in a kickstart file. --- ChangeLog | 3 +++ pykickstart/commands/device.py | 47 +++++++++++++++++++++++++++++------------ pykickstart/handlers/control.py | 1 + 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0575301..4dc7b41 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,10 @@ * pykickstart/commands/device.py (F8_Device): Add a new version of the device command that does not take a type argument. + (F8_DeviceData): Multiple device commands can be specified in a + single kickstart file. * pykickstart/handlers/control.py: Use F8_Device for Fedora 8. + Add F8_DeviceData for Fedora 8. 2007-09-28 Chris Lumens diff --git a/pykickstart/commands/device.py b/pykickstart/commands/device.py index aec0960..f4a9d89 100644 --- a/pykickstart/commands/device.py +++ b/pykickstart/commands/device.py @@ -25,6 +25,23 @@ import rhpl.translate as translate translate.textdomain("pykickstart") +class F8_DeviceData(BaseData): + def __init__(self, moduleName="", moduleOpts=""): + BaseData.__init__(self) + self.moduleName = moduleName + self.moduleOpts = moduleOpts + + def __str__(self): + if self.moduleName != "": + if self.moduleOpts != "": + retval = "--opts=%s" % self.moduleOpts + else: + retval = "" + + return "device %s %s\n" % (self.moduleName, retval) + else: + return "" + class FC3_Device(KickstartCommand): def __init__(self, writePriority=0, type="", moduleName="", moduleOpts=""): KickstartCommand.__init__(self, writePriority) @@ -57,21 +74,20 @@ class FC3_Device(KickstartCommand): self.moduleName = extra[1] class F8_Device(KickstartCommand): - def __init__(self, writePriority=0, moduleName="", moduleOpts=""): + def __init__(self, writePriority=0, deviceList=None): KickstartCommand.__init__(self, writePriority) - self.moduleName = moduleName - self.moduleOpts = moduleOpts + + if deviceList == None: + deviceList = [] + + self.deviceList = deviceList def __str__(self): - if self.moduleName != "": - if self.moduleOpts != "": - retval = "--opts=%s" % self.moduleOpts - else: - retval = "" + retval = "" + for device in self.deviceList: + retval += device.__str__() - return "device %s %s\n" % (self.moduleName, retval) - else: - return "" + return retval def parse(self, args): op = KSOptionParser(lineno=self.lineno) @@ -82,5 +98,10 @@ class F8_Device(KickstartCommand): if len(extra) != 1: raise KickstartValueError, formatErrorMsg(self.lineno, msg=_("%s command requires a single argument: %s") % ("device", "module name")) - self.opts = opts.moduleOpts - self.moduleName = extra[1] + dd = F8_DeviceData() + self._setToObj(op, opts, dd) + dd.moduleName = extra[1] + self.add(dd) + + def add(self, newObj): + self.deviceList.append(newObj) diff --git a/pykickstart/handlers/control.py b/pykickstart/handlers/control.py index 994bf29..f40ea09 100644 --- a/pykickstart/handlers/control.py +++ b/pykickstart/handlers/control.py @@ -569,6 +569,7 @@ dataMap = { "ZFCPData": zfcp.FC3_ZFCPData, }, F8: { + "DeviceData": device.F8_DeviceData, "DmRaidData": dmraid.FC6_DmRaidData, "IscsiData": iscsi.FC6_IscsiData, "LogVolData": logvol.FC4_LogVolData, -- 2.11.4.GIT