[1/3 pykickstart] Add support for --disklabel to clearpart (#1078537)

Brian C. Lane bcl at redhat.com
Wed Jun 18 23:27:03 UTC 2014


--disklabel=<disklabel> allows the user to force creation of a
non-default disklabel when relabeling disks.
---
 pykickstart/commands/clearpart.py | 18 ++++++++++++++++++
 pykickstart/handlers/f21.py       |  2 +-
 tests/commands/clearpart.py       |  7 +++++++
 3 files changed, 26 insertions(+), 1 deletion(-)

diff --git a/pykickstart/commands/clearpart.py b/pykickstart/commands/clearpart.py
index f6af6fb..0164215 100644
--- a/pykickstart/commands/clearpart.py
+++ b/pykickstart/commands/clearpart.py
@@ -108,3 +108,21 @@ class F17_ClearPart(FC3_ClearPart):
         op.add_option("--list", dest="devices", action="callback",
                       callback=list_cb, nargs=1, type="string")
         return op
+
+class F21_ClearPart(F17_ClearPart):
+    def __init__(self, *args, **kwargs):
+        super(F21_ClearPart, self).__init__(*args, **kwargs)
+        self.disklabel = kwargs.get("disklabel", "")
+
+    def __str__(self):
+        s = super(F21_ClearPart, self).__str__()
+        if s and self.disklabel:
+            s = s.rstrip()
+            s += " --disklabel=%s\n" % self.disklabel
+        return s
+
+    def _getParser(self):
+        op = F17_ClearPart._getParser(self)
+
+        op.add_option("--disklabel", dest="disklabel", default="")
+        return op
diff --git a/pykickstart/handlers/f21.py b/pykickstart/handlers/f21.py
index 57eeb34..23220ca 100644
--- a/pykickstart/handlers/f21.py
+++ b/pykickstart/handlers/f21.py
@@ -34,7 +34,7 @@ class F21Handler(BaseHandler):
         "bootloader": commands.bootloader.F21_Bootloader,
         "btrfs": commands.btrfs.F17_BTRFS,
         "cdrom": commands.cdrom.FC3_Cdrom,
-        "clearpart": commands.clearpart.F17_ClearPart,
+        "clearpart": commands.clearpart.F21_ClearPart,
         "cmdline": commands.displaymode.FC3_DisplayMode,
         "device": commands.device.F8_Device,
         "deviceprobe": commands.deviceprobe.FC3_DeviceProbe,
diff --git a/tests/commands/clearpart.py b/tests/commands/clearpart.py
index 0a63e83..e044085 100644
--- a/tests/commands/clearpart.py
+++ b/tests/commands/clearpart.py
@@ -36,5 +36,12 @@ class F17_TestCase(FC3_TestCase):
         self.assert_parse("clearpart --list=sda2,sda3,disk/by-label/foo",
                           "clearpart --list=sda2,sda3,disk/by-label/foo\n")
 
+class F21_TestCase(F17_TestCase):
+    def runTest(self):
+        F17_TestCase.runTest(self)
+        self.assert_parse("clearpart --all --initlabel --disklabel=gpt",
+                          "clearpart --all --initlabel --disklabel=gpt\n")
+        self.assert_parse_error("clearpart --all --disklabel")
+
 if __name__ == "__main__":
     unittest.main()
-- 
1.9.3



More information about the anaconda-patches mailing list