From 9cce119c569e40876793daa53a2798c9c6bb0439 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Thu, 26 Jun 2025 23:51:33 -0400 Subject: [PATCH] btrfs: Restore support for Btrfs on RHEL10 Red Hat Enterprise Linux and baseline CentOS Stream have removed support for Btrfs, but we need it back for CentOS Hyperscale. --- pykickstart/commands/autopart.py | 32 +------------------------------- pykickstart/commands/btrfs.py | 9 +++------ tests/commands/autopart.py | 3 +-- tests/commands/btrfs.py | 7 ++----- 4 files changed, 7 insertions(+), 44 deletions(-) diff --git a/pykickstart/commands/autopart.py b/pykickstart/commands/autopart.py index d7b5c072..3e77e4f6 100644 --- a/pykickstart/commands/autopart.py +++ b/pykickstart/commands/autopart.py @@ -599,34 +599,4 @@ class F38_AutoPart(F29_AutoPart): return retval class RHEL10_AutoPart(F38_AutoPart): - removedKeywords = F38_AutoPart.removedKeywords - removedAttrs = F38_AutoPart.removedAttrs - - def parse(self, args): - # call the overriden command to do it's job first - retval = F38_AutoPart.parse(self, args) - - # btrfs is no more supported - if self._typeAsStr() == "btrfs": - raise KickstartParseError(_("autopart --type=btrfs is not supported"), - lineno=self.lineno) - - return retval - - def _getParser(self): - "Only necessary for the type change documentation" - op = F38_AutoPart._getParser(self) - for action in op._actions: - if "--type" in action.option_strings: - action.help += """ - - .. versionchanged:: %s - - Partitioning scheme 'btrfs' was removed.""" % versionToLongString(RHEL8) - if "--fstype" in action.option_strings: - action.help += """ - - .. versionchanged:: %s - - Partitioning scheme 'btrfs' was removed.""" % versionToLongString(RHEL8) - return op + pass diff --git a/pykickstart/commands/btrfs.py b/pykickstart/commands/btrfs.py index ac22c71f..a2825bf6 100644 --- a/pykickstart/commands/btrfs.py +++ b/pykickstart/commands/btrfs.py @@ -19,7 +19,7 @@ # with the express permission of Red Hat, Inc. # from pykickstart.version import F17, F23, RHEL8, RHEL10, versionToLongString -from pykickstart.base import BaseData, KickstartCommand, DeprecatedCommand, RemovedCommand +from pykickstart.base import BaseData, KickstartCommand, DeprecatedCommand from pykickstart.errors import KickstartParseError, KickstartParseWarning from pykickstart.options import KSOptionParser, mountpoint @@ -280,8 +280,5 @@ class RHEL8_BTRFS(DeprecatedCommand, F23_BTRFS): class RHEL9_BTRFS(RHEL8_BTRFS): pass -class RHEL10_BTRFS(RemovedCommand, RHEL8_BTRFS): - def _getParser(self): - op = RHEL8_BTRFS._getParser(self) - op.description += "\n\n.. versionremoved:: %s" % versionToLongString(RHEL10) - return op +class RHEL10_BTRFS(F23_BTRFS): + pass diff --git a/tests/commands/autopart.py b/tests/commands/autopart.py index e7e8b220..81d459ee 100644 --- a/tests/commands/autopart.py +++ b/tests/commands/autopart.py @@ -165,7 +165,7 @@ class F17_TestCase(F16_TestCase): self.assert_parse("autopart --type=lvm", "autopart --type=lvm\n") - if self.__class__.__name__ not in ["RHEL8_TestCase", "RHEL10_TestCase"]: + if self.__class__.__name__ not in ["RHEL8_TestCase"]: self.assert_parse("autopart --type=btrfs", "autopart --type=btrfs\n") @@ -358,7 +358,6 @@ class F38_TestCase(F29_TestCase): class RHEL10_TestCase(F38_TestCase): def runTest(self): F38_TestCase.runTest(self) - self.assert_parse_error("autopart --type=btrfs") if __name__ == "__main__": unittest.main() diff --git a/tests/commands/btrfs.py b/tests/commands/btrfs.py index 8fee1f11..7e9043aa 100644 --- a/tests/commands/btrfs.py +++ b/tests/commands/btrfs.py @@ -20,7 +20,6 @@ import unittest from tests.baseclass import CommandTest, CommandSequenceTest -from pykickstart.base import RemovedCommand from pykickstart.commands.btrfs import F17_BTRFSData, F23_BTRFSData from pykickstart.errors import KickstartParseError, KickstartParseWarning from pykickstart.version import F17 @@ -199,11 +198,9 @@ class RHEL7_TestCase(F23_TestCase): def runTest(self): F23_TestCase.runTest(self) -class RHEL10_TestCase(RHEL7_TestCase): +class RHEL10_TestCase(F23_TestCase): def runTest(self): - # make sure we've been removed - parser = self.getParser("btrfs") - self.assertEqual(issubclass(parser.__class__, RemovedCommand), True) + F23_TestCase.runTest(self) if __name__ == "__main__": unittest.main() -- 2.49.0