171 lines
6.3 KiB
Diff
171 lines
6.3 KiB
Diff
From adf4df4605970b07d637475a0d78cfddc4640eb9 Mon Sep 17 00:00:00 2001
|
|
From: Neal Gompa <ngompa@centosproject.org>
|
|
Date: Fri, 24 Oct 2025 09:07:23 -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 +++------
|
|
pykickstart/commands/logvol.py | 2 +-
|
|
pykickstart/commands/partition.py | 2 +-
|
|
pykickstart/commands/raid.py | 6 +++---
|
|
tests/commands/autopart.py | 3 +--
|
|
tests/commands/btrfs.py | 7 ++-----
|
|
7 files changed, 12 insertions(+), 49 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/pykickstart/commands/logvol.py b/pykickstart/commands/logvol.py
|
|
index 3a3b4e4a..8325918a 100644
|
|
--- a/pykickstart/commands/logvol.py
|
|
+++ b/pykickstart/commands/logvol.py
|
|
@@ -933,5 +933,5 @@ class RHEL8_LogVol(F29_LogVol):
|
|
class RHEL9_LogVol(RHEL8_LogVol):
|
|
pass
|
|
|
|
-class RHEL10_LogVol(RHEL8_LogVol):
|
|
+class RHEL10_LogVol(F29_LogVol):
|
|
pass
|
|
diff --git a/pykickstart/commands/partition.py b/pykickstart/commands/partition.py
|
|
index c3ef7ab8..b86fe104 100644
|
|
--- a/pykickstart/commands/partition.py
|
|
+++ b/pykickstart/commands/partition.py
|
|
@@ -777,5 +777,5 @@ class RHEL9_Partition(F34_Partition):
|
|
Btrfs support was removed.""" % versionToLongString(RHEL8)
|
|
return op
|
|
|
|
-class RHEL10_Partition(RHEL9_Partition):
|
|
+class RHEL10_Partition(F34_Partition):
|
|
pass
|
|
diff --git a/pykickstart/commands/raid.py b/pykickstart/commands/raid.py
|
|
index cc922167..9a0091d8 100644
|
|
--- a/pykickstart/commands/raid.py
|
|
+++ b/pykickstart/commands/raid.py
|
|
@@ -792,9 +792,9 @@ class RHEL8_Raid(F29_Raid):
|
|
class RHEL9_Raid(RHEL8_Raid):
|
|
pass
|
|
|
|
-class RHEL10_Raid(RHEL8_Raid):
|
|
- removedKeywords = RHEL8_Raid.removedKeywords
|
|
- removedAttrs = RHEL8_Raid.removedAttrs
|
|
+class RHEL10_Raid(F29_Raid):
|
|
+ removedKeywords = F29_Raid.removedKeywords
|
|
+ removedAttrs = F29_Raid.removedAttrs
|
|
|
|
def _device_cb(self, value):
|
|
# do not remove the "md" prefix from array name in RHEL10 and later
|
|
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.51.0
|
|
|