[pykickstart] Do not set default PE size in pykickstart

Vratislav Podzimek vpodzime at redhat.com
Thu May 15 13:00:24 UTC 2014


It should be left to the users of pykickstart to decide on the default PE size.

Related: rhbz#1098139
Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 pykickstart/commands/volgroup.py | 13 +++++++++++++
 pykickstart/handlers/f21.py      |  4 ++--
 tests/commands/volgroup.py       | 26 ++++++++++++++++++++++++++
 3 files changed, 41 insertions(+), 2 deletions(-)

diff --git a/pykickstart/commands/volgroup.py b/pykickstart/commands/volgroup.py
index 9e52a9c..1b06101 100644
--- a/pykickstart/commands/volgroup.py
+++ b/pykickstart/commands/volgroup.py
@@ -84,6 +84,11 @@ class FC16_VolGroupData(FC3_VolGroupData):
 
         return retval
 
+class F21_VolGroupData(FC16_VolGroupData):
+    def __init__(self, *args, **kwargs):
+        FC16_VolGroupData.__init__(self, *args, **kwargs)
+        self.pesize = kwargs.get("pesize", 0)
+
 class FC3_VolGroup(KickstartCommand):
     removedKeywords = KickstartCommand.removedKeywords
     removedAttrs = KickstartCommand.removedAttrs
@@ -190,3 +195,11 @@ class F20_VolGroup(FC16_VolGroup):
             raise KickstartParseError(formatErrorMsg(self.lineno, msg=errorMsg))
 
         return retval
+
+class F21_VolGroup(F20_VolGroup):
+    def _getParser(self):
+        op = F20_VolGroup._getParser(self)
+        op.add_option("--pesize", dest="pesize", type="int", nargs=1,
+                      default=0)
+
+        return op
diff --git a/pykickstart/handlers/f21.py b/pykickstart/handlers/f21.py
index 177c255..57eeb34 100644
--- a/pykickstart/handlers/f21.py
+++ b/pykickstart/handlers/f21.py
@@ -84,7 +84,7 @@ class F21Handler(BaseHandler):
         "url": commands.url.F18_Url,
         "user": commands.user.F19_User,
         "vnc": commands.vnc.F9_Vnc,
-        "volgroup": commands.volgroup.F20_VolGroup,
+        "volgroup": commands.volgroup.F21_VolGroup,
         "xconfig": commands.xconfig.F14_XConfig,
         "zerombr": commands.zerombr.F9_ZeroMbr,
         "zfcp": commands.zfcp.F14_ZFCP,
@@ -106,6 +106,6 @@ class F21Handler(BaseHandler):
         "RepoData": commands.repo.F15_RepoData,
         "SshPwData": commands.sshpw.F13_SshPwData,
         "UserData": commands.user.F19_UserData,
-        "VolGroupData": commands.volgroup.FC16_VolGroupData,
+        "VolGroupData": commands.volgroup.F21_VolGroupData,
         "ZFCPData": commands.zfcp.F14_ZFCPData,
     }
diff --git a/tests/commands/volgroup.py b/tests/commands/volgroup.py
index 46462a4..1142b9d 100644
--- a/tests/commands/volgroup.py
+++ b/tests/commands/volgroup.py
@@ -57,5 +57,31 @@ class F16_TestCase(FC3_TestCase):
         self.assert_parse_error("volgroup vg.01 pv.01 --reserved-percent=0", KickstartValueError)
         self.assert_parse_error("volgroup vg.01 pv.01 --reserved-percent=100", KickstartValueError)
 
+class F21_TestCase(F16_TestCase):
+    def runTest(self):
+        # cannot run F16_TestCase due to the change of the default PE size
+        self.assert_parse("volgroup vg.01 pv.01",
+                          "volgroup vg.01 pv.01\n")
+
+        # Pass - correct usage.
+        self.assert_parse("volgroup vg.01 pv.01 --reserved-space=1000",
+                          "volgroup vg.01 --reserved-space=1000 pv.01\n")
+        self.assert_parse("volgroup vg.01 pv.01 --reserved-percent=50",
+                          "volgroup vg.01 --reserved-percent=50 pv.01\n")
+
+        # --pesize
+        self.assert_parse("volgroup vg.01 pv.01 --pesize=70000",
+                          "volgroup vg.01 --pesize=70000 pv.01\n")
+
+        # Fail - missing required argument.
+        self.assert_parse_error("volgroup vg.01 pv.01 --reserved-space", KickstartParseError)
+        self.assert_parse_error("volgroup vg.01 pv.01 --reserved-percent", KickstartParseError)
+
+        # Fail - incorrect values.
+        self.assert_parse_error("volgroup vg.01 pv.01 --reserved-space=-1", KickstartValueError)
+        self.assert_parse_error("volgroup vg.01 pv.01 --reserved-percent=0", KickstartValueError)
+        self.assert_parse_error("volgroup vg.01 pv.01 --reserved-percent=100", KickstartValueError)
+
+
 if __name__ == "__main__":
     unittest.main()
-- 
1.9.0



More information about the anaconda-patches mailing list