[PATCH 2/3] add execute methods for partition related ks classes

Brian C. Lane bcl at redhat.com
Thu Jul 19 00:25:28 UTC 2012


From: "Brian C. Lane" <bcl at redhat.com>

Iterate over the kickstart filesystem and partition data.
---
 pyanaconda/kickstart.py |   44 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/pyanaconda/kickstart.py b/pyanaconda/kickstart.py
index d0ddf50..2fe0729 100644
--- a/pyanaconda/kickstart.py
+++ b/pyanaconda/kickstart.py
@@ -289,6 +289,11 @@ class Bootloader(commands.bootloader.F18_Bootloader):
         if self.leavebootorder:
             flags.leavebootorder = True
 
+class BTRFS(commands.btrfs.F17_BTRFS):
+    def execute(self, storage, ksdata, instClass):
+        for b in self.btrfsList:
+            b.execute(storage, ksdata, instClass)
+
 class BTRFSData(commands.btrfs.F17_BTRFSData):
     def execute(self, storage, ksdata, instClass):
         devicetree = storage.devicetree
@@ -497,6 +502,11 @@ class IscsiName(commands.iscsiname.FC6_IscsiName):
         storage.iscsi.iscsi().initiator = self.iscsiname
         return retval
 
+class LogVol(commands.logvol.F17_LogVol):
+    def execute(self, storage, ksdata, instClass):
+        for l in self.lvList:
+            l.execute(storage, ksdata, instClass)
+
 class LogVolData(commands.logvol.F17_LogVolData):
     def execute(self, storage, ksdata, instClass):
         devicetree = storage.devicetree
@@ -790,6 +800,11 @@ class DmRaid(commands.dmraid.FC6_DmRaid):
     def parse(self, args):
         raise NotImplementedError("The dmraid kickstart command is not currently supported")
 
+class Partition(commands.partition.F17_Partition):
+    def execute(self, storage, ksdata, instClass):
+        for p in self.partitions:
+            p.execute(storage, ksdata, instClass)
+
 class PartitionData(commands.partition.F17_PartData):
     def execute(self, storage, ksdata, instClass):
         devicetree = storage.devicetree
@@ -1011,6 +1026,11 @@ class PartitionData(commands.partition.F17_PartData):
                                      parents=request)
             storage.createDevice(luksdev)
 
+class Raid(commands.raid.F15_Raid):
+    def execute(self, storage, ksdata, instClass):
+        for r in self.raidList:
+            r.execute(storage, ksdata, instClass)
+
 class RaidData(commands.raid.F15_RaidData):
     def execute(self, storage, ksdata, instClass):
         raidmems = []
@@ -1182,6 +1202,11 @@ class Timezone(commands.timezone.F18_Timezone):
         ntp.save_servers_to_config(self.ntpservers,
                                    conf_file_path=chronyd_conf_path)
 
+class VolGroup(commands.volgroup.FC16_VolGroup):
+    def execute(self, storage, ksdata, instClass):
+        for v in self.vgList:
+            v.execute(storage, ksdata, instClass)
+
 class VolGroupData(commands.volgroup.FC16_VolGroupData):
     def execute(self, storage, ksdata, instClass):
         pvs = []
@@ -1263,6 +1288,7 @@ class Keyboard(commands.keyboard.F18_Keyboard):
 # classes we're overriding in place of the defaults.
 commandMap = {
         "autopart": AutoPart,
+        "btrfs": BTRFS,
         "bootloader": Bootloader,
         "clearpart": ClearPart,
         "dmraid": DmRaid,
@@ -1273,9 +1299,14 @@ commandMap = {
         "iscsiname": IscsiName,
         "keyboard": Keyboard,
         "logging": Logging,
+        "logvol": LogVol,
         "multipath": MultiPath,
+        "part": Partition,
+        "partition": Partition,
+        "raid": Raid,
         "services": Services,
         "timezone": Timezone,
+        "volgroup": VolGroup,
         "xconfig": XConfig,
         "zfcp": ZFCP,
 }
@@ -1479,9 +1510,14 @@ def selectPackages(ksdata, payload):
         except NoSuchGroup:
             continue
 
-def doKickstartStorage(storage, ksdata, instclass):
+def doKickstartStorage(storage, ksdata, instClass):
     """ Setup storage state from the kickstart data """
-    ksdata.clearpart.execute(storage, ksdata, instclass)
-    ksdata.bootloader.execute(storage, ksdata, instclass)
-    ksdata.autopart.execute(storage, ksdata, instclass)
+    ksdata.clearpart.execute(storage, ksdata, instClass)
+    ksdata.bootloader.execute(storage, ksdata, instClass)
+    ksdata.autopart.execute(storage, ksdata, instClass)
+    ksdata.btrfs.execute(storage, ksdata, instClass)
+    ksdata.raid.execute(storage, ksdata, instClass)
+    ksdata.volgroup.execute(storage, ksdata, instClass)
+    ksdata.logvol.execute(storage, ksdata, instClass)
+    ksdata.partition.execute(storage, ksdata, instClass)
 
-- 
1.7.7.6



More information about the anaconda-patches mailing list