From 91405a1a02bab6204498c73697f02219fc91ab16 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 11:14:33 -0500 Subject: [PATCH 1/8] Revert "Add a man page entry for the Metadata field" This reverts commit d29dc7acd4af2db3fa02fa45e851e27a2692747f. --- docs/stratis.txt | 7 ------- 1 file changed, 7 deletions(-) diff --git a/docs/stratis.txt b/docs/stratis.txt index 2f2840a3b..9a4b27af5 100644 --- a/docs/stratis.txt +++ b/docs/stratis.txt @@ -410,13 +410,6 @@ Space Usage: Used:: The space on the devices that is in use. Used space can be reclaimed. For example, destroying a Stratis filesystem will reduce this value. -Space Usage: Metadata:: - The space on the devices that is set aside for metadata use. This - metadata includes Stratis metadata, and other block layer metadata, - such as that used to manage encryption of a pool or device. It does - not include filesystem metadata, which is considered part of user - data. - FIELDS for stratis pool list [(--uuid |--name )] --stopped UUID:: From 6e40a4d99b9b6a17c954b0c80b4b78c55d4c71d5 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 11:14:49 -0500 Subject: [PATCH 2/8] Revert "Add MetadataUsed field to detail listing" This reverts commit fcd07829170ed5a73bcf5a09945cf6cb1e0036ea. --- src/stratis_cli/_actions/_introspect.py | 1 - src/stratis_cli/_actions/_list_pool.py | 8 -------- 2 files changed, 9 deletions(-) diff --git a/src/stratis_cli/_actions/_introspect.py b/src/stratis_cli/_actions/_introspect.py index 4408bb405..6c8e580ab 100644 --- a/src/stratis_cli/_actions/_introspect.py +++ b/src/stratis_cli/_actions/_introspect.py @@ -285,7 +285,6 @@ - diff --git a/src/stratis_cli/_actions/_list_pool.py b/src/stratis_cli/_actions/_list_pool.py index daae775f2..c3117b5fc 100644 --- a/src/stratis_cli/_actions/_list_pool.py +++ b/src/stratis_cli/_actions/_list_pool.py @@ -451,17 +451,9 @@ def size_str(value: Range | None) -> str: allocated_size = Range(mopool.AllocatedSize()) except DbusClientMissingPropertyError: allocated_size = None - print(f" Allocated: {size_str(allocated_size)}") print(f" Used: {size_str(size_triple.used())}") - try: - metadata_used = Range(mopool.MetadataUsed()) - except DbusClientMissingPropertyError: - metadata_used = None - - print(f" Metadata: {size_str(metadata_used)}") - def display(self): """ List a single pool in detail. From 4552a48f9a2d30148800bf2943edfcd75703bb48 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 11:15:18 -0500 Subject: [PATCH 3/8] Revert "Add man pages for pool remove-cache subcommand" This reverts commit a1cd7dddf4c6742b14c393f719a6ddca5d6c6c1b. --- docs/stratis.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/stratis.txt b/docs/stratis.txt index 9a4b27af5..920630ab2 100644 --- a/docs/stratis.txt +++ b/docs/stratis.txt @@ -76,8 +76,6 @@ pool init-cache [..]:: drives, such as SSDs, are used for this purpose. pool add-cache [..]:: Add one or more blockdevs to an existing pool with an initialized cache. -pool remove-cache <(--uuid |--name )>:: - Remove a pool's cache. pool extend-data [--device-uuid ]:: Increase the pool's data capacity with additional storage space offered by its component data devices through, e.g., expansion of a component RAID From e508a050c1d213795caa06162ccd0790938ae9a5 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 11:15:33 -0500 Subject: [PATCH 4/8] Revert "Add pool remove-cache subcommand" This reverts commit 37e4d0c626828afc1aed046bc4e87a1a56c2f5ed. --- src/stratis_cli/_actions/_pool.py | 41 ----------- src/stratis_cli/_parser/_pool.py | 16 ---- tests/integration/pool/test_remove_cache.py | 81 --------------------- 3 files changed, 138 deletions(-) delete mode 100644 tests/integration/pool/test_remove_cache.py diff --git a/src/stratis_cli/_actions/_pool.py b/src/stratis_cli/_actions/_pool.py index 806255f25..e62aaab44 100644 --- a/src/stratis_cli/_actions/_pool.py +++ b/src/stratis_cli/_actions/_pool.py @@ -612,47 +612,6 @@ def add_cache_devices(namespace: Namespace): ) ) - @staticmethod - def remove_cache(namespace: Namespace): - """ - Remove the cache from this pool. - - :raises StratisCliEngineError: - :raises StratisCliIncoherenceError: - :raises StratisCliNoChangeError: - """ - from ._data import MOPool, ObjectManager, Pool, pools # noqa: PLC0415 - - pool_id = PoolId.from_parser_namespace(namespace) - assert pool_id is not None - - proxy = get_object(TOP_OBJECT) - managed_objects = ObjectManager.Methods.GetManagedObjects(proxy, {}) - - (pool_object_path, pool_info) = next( - pools(props=pool_id.managed_objects_key()) - .require_unique_match(True) - .search(managed_objects) - ) - - if not bool(MOPool(pool_info).HasCache()): - raise StratisCliNoChangeError("remove-cache", "cache") - - ((removed, devs_removed), return_code, message) = Pool.Methods.RemoveCache( - get_object(pool_object_path), {} - ) - - if return_code != StratisdErrors.OK: # pragma: no cover - raise StratisCliEngineError(return_code, message) - - if not removed: # pragma: no cover - raise StratisCliIncoherenceError( - ( - f"Expected to remove the cache from {pool_id} but " - "stratisd reports that it did not remove the cache." - ) - ) - @staticmethod def extend_data(namespace: Namespace): """ diff --git a/src/stratis_cli/_parser/_pool.py b/src/stratis_cli/_parser/_pool.py index 67c3af546..0af3ff81c 100644 --- a/src/stratis_cli/_parser/_pool.py +++ b/src/stratis_cli/_parser/_pool.py @@ -426,22 +426,6 @@ def verify(self, namespace: Namespace, parser: ArgumentParser): "func": PoolActions.add_cache_devices, }, ), - ( - "remove-cache", - { - "help": "Remove an active pool's cache", - "func": PoolActions.remove_cache, - "groups": [ - ( - "Pool Identifier", - { - "description": ("Choose one option to specify the pool"), - "mut_ex_args": [(True, UUID_OR_NAME)], - }, - ) - ], - }, - ), ( "extend-data", { diff --git a/tests/integration/pool/test_remove_cache.py b/tests/integration/pool/test_remove_cache.py deleted file mode 100644 index 954f336e0..000000000 --- a/tests/integration/pool/test_remove_cache.py +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright 2026 Red Hat, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -""" -Test 'remove-cache'. -""" - -from uuid import uuid4 - -from dbus_client_gen import DbusClientUniqueResultError -from stratis_cli import StratisCliErrorCodes -from stratis_cli._errors import StratisCliNoChangeError - -from .._misc import RUNNER, TEST_RUNNER, SimTestCase, device_name_list - -_DEVICE_STRATEGY = device_name_list(1, 1) -_DEVICE_STRATEGY_2 = device_name_list(2, 2) -_ERROR = StratisCliErrorCodes.ERROR - - -class RemoveCacheTestCase1(SimTestCase): - """ - Test removing a cache where the cache is non-existent. - """ - - _MENU = ["--propagate", "pool", "remove-cache"] - _POOLNAME = "deadpool" - - def setUp(self): - super().setUp() - command_line = ["pool", "create", self._POOLNAME] + _DEVICE_STRATEGY() - RUNNER(command_line) - - def test_remove(self): - """ - Verify that trying to remove a non-existent cache returns - StratisCliNoChangeError. - """ - command_line = self._MENU + [f"--name={self._POOLNAME}"] - self.check_error(StratisCliNoChangeError, command_line, _ERROR) - - def test_non_existent_pool(self): - """ - Verify that trying to remove a cache from a non-existent pool raises - DbusClientUniqueResultError. - """ - command_line = self._MENU + [f"--uuid={uuid4()}"] - self.check_error(DbusClientUniqueResultError, command_line, _ERROR) - - -class RemoveCacheTestCase2(SimTestCase): - """ - Test removing a cache. - """ - - _MENU = ["--propagate", "pool", "remove-cache"] - _POOLNAME = "deadpool" - - def setUp(self): - super().setUp() - command_line = ["pool", "create", self._POOLNAME] + _DEVICE_STRATEGY() - RUNNER(command_line) - command_line = ["pool", "init-cache", self._POOLNAME] + _DEVICE_STRATEGY_2() - RUNNER(command_line) - - def test_remove(self): - """ - Verify that remove an existing cache succeeds. - """ - command_line = self._MENU + [f"--name={self._POOLNAME}"] - TEST_RUNNER(command_line) From 9fa0e226867d43ef06b4e3f7093134c496ca0634 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 11:15:47 -0500 Subject: [PATCH 5/8] Revert "Update introspect data" This reverts commit a3f3504d693eb57b325f910538548a1eb53f64a2. --- src/stratis_cli/_actions/_introspect.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/stratis_cli/_actions/_introspect.py b/src/stratis_cli/_actions/_introspect.py index 6c8e580ab..ac03f6fd9 100644 --- a/src/stratis_cli/_actions/_introspect.py +++ b/src/stratis_cli/_actions/_introspect.py @@ -246,11 +246,6 @@ - - - - - From 64c83e30f482c1739dceaa911d33e33146ad160a Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 11:16:23 -0500 Subject: [PATCH 6/8] Revert "Require stratisd 3.10.0" This reverts commit 37da2c6fb4d414cc5088c9af493ff869be381bd4. --- src/stratis_cli/_actions/_constants.py | 2 +- src/stratis_cli/_actions/_introspect.py | 20 ++++++++++---------- src/stratis_cli/_version.py | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/stratis_cli/_actions/_constants.py b/src/stratis_cli/_actions/_constants.py index e6e438bf6..2a1131b69 100644 --- a/src/stratis_cli/_actions/_constants.py +++ b/src/stratis_cli/_actions/_constants.py @@ -23,7 +23,7 @@ SECTOR_SIZE = 512 MAXIMUM_STRATISD_VERSION = "4.0.0" -MINIMUM_STRATISD_VERSION = "3.10.0" +MINIMUM_STRATISD_VERSION = "3.9.2" assert Version(MINIMUM_STRATISD_VERSION) < Version(MAXIMUM_STRATISD_VERSION) REVISION = f"r{MINIMUM_STRATISD_VERSION.split('.')[1]}" diff --git a/src/stratis_cli/_actions/_introspect.py b/src/stratis_cli/_actions/_introspect.py index ac03f6fd9..4088c2b39 100644 --- a/src/stratis_cli/_actions/_introspect.py +++ b/src/stratis_cli/_actions/_introspect.py @@ -14,8 +14,8 @@ """, - "org.storage.stratis3.Manager.r10": """ - + "org.storage.stratis3.Manager.r9": """ + @@ -84,8 +84,8 @@ """, - "org.storage.stratis3.Report.r10": """ - + "org.storage.stratis3.Report.r9": """ + @@ -94,8 +94,8 @@ """, - "org.storage.stratis3.blockdev.r10": """ - + "org.storage.stratis3.blockdev.r9": """ + @@ -122,8 +122,8 @@ """, - "org.storage.stratis3.filesystem.r10": """ - + "org.storage.stratis3.filesystem.r9": """ + @@ -150,8 +150,8 @@ """, - "org.storage.stratis3.pool.r10": """ - + "org.storage.stratis3.pool.r9": """ + diff --git a/src/stratis_cli/_version.py b/src/stratis_cli/_version.py index f44b377d3..b4229b35b 100644 --- a/src/stratis_cli/_version.py +++ b/src/stratis_cli/_version.py @@ -17,5 +17,5 @@ .. moduleauthor:: mulhern """ -__version_info__ = (3, 10, 0) +__version_info__ = (3, 9, 1) __version__ = ".".join(str(x) for x in __version_info__) From 3c2cf694f2a4f2fcfc4ae9bbbce0646525b14224 Mon Sep 17 00:00:00 2001 From: mulhern Date: Wed, 4 Nov 2026 21:43:33 -0500 Subject: [PATCH 7/8] Update CI to stratisd-v3.9.3 Signed-off-by: mulhern --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bb4e8c2f1..c2520b1c2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -118,6 +118,7 @@ jobs: - uses: stratis-storage/github-actions/github-modify@HEAD with: repo: stratisd + default_branch: stratisd-v3.9.3 - name: Print head commit run: git log --oneline -1 working-directory: stratisd @@ -184,6 +185,7 @@ jobs: - uses: stratis-storage/github-actions/github-modify@HEAD with: repo: stratisd + default_branch: stratisd-v3.9.3 - name: Print head commit run: git log --oneline -1 working-directory: stratisd From ce0872afeeda9f00145e8f5ee51ce72ab64725df Mon Sep 17 00:00:00 2001 From: mulhern Date: Tue, 8 Sep 2026 20:33:29 -0400 Subject: [PATCH 8/8] version 3.9.2 Signed-off-by: mulhern --- CHANGES.txt | 46 +++++++++++++++++++++++++++++++++++++ src/stratis_cli/_version.py | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 72b766e5f..cd016224d 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,49 @@ +stratis-cli 3.9.0 +================== +Required stratisd version: 3.9.2 + +Recommended development environment: Fedora 44 + +! Indicates a PR that was reverted. + +! Add MetadataUsed field to pool detail listing: + https://github.com/stratis-storage/stratis-cli/pull/1288 + +- Use pyproject.toml exclusively for package metadata: + https://github.com/stratis-storage/stratis-cli/pull/1300 + https://github.com/stratis-storage/stratis-cli/pull/1299 + +! Add pool remove-cache subcommand: + https://github.com/stratis-storage/stratis-cli/pull/1293 + +- Catch missing property exception when checking size change: + https://github.com/stratis-storage/stratis-cli/pull/1298 + +! Require stratisd 3.10.0: + https://github.com/stratis-storage/stratis-cli/pull/1287 + +- Add an error message in case the D-Bus is not present: + https://github.com/stratis-storage/stratis-cli/pull/1304 + +- Use stdlib datetime module to parse D-Bus dates: + https://github.com/stratis-storage/stratis-cli/pull/1297 + https://github.com/stratis-storage/stratis-cli/pull/1291 + +- Sort the list of pool alert codes in parser help: + https://github.com/stratis-storage/stratis-cli/pull/1302 + +- Tidies and Maintenance: + https://github.com/stratis-storage/stratis-cli/pull/1307 + https://github.com/stratis-storage/stratis-cli/pull/1303 + https://github.com/stratis-storage/stratis-cli/pull/1301 + https://github.com/stratis-storage/stratis-cli/pull/1296 + https://github.com/stratis-storage/stratis-cli/pull/1295 + https://github.com/stratis-storage/stratis-cli/pull/1294 + https://github.com/stratis-storage/stratis-cli/pull/1292 + https://github.com/stratis-storage/stratis-cli/pull/1290 + https://github.com/stratis-storage/stratis-cli/pull/1289 + + stratis-cli 3.9.1 ================= Required stratisd version: 3.9.2 diff --git a/src/stratis_cli/_version.py b/src/stratis_cli/_version.py index b4229b35b..28243c2af 100644 --- a/src/stratis_cli/_version.py +++ b/src/stratis_cli/_version.py @@ -17,5 +17,5 @@ .. moduleauthor:: mulhern """ -__version_info__ = (3, 9, 1) +__version_info__ = (3, 9, 2) __version__ = ".".join(str(x) for x in __version_info__)