Skip to content
This repository was archived by the owner on Dec 16, 2025. It is now read-only.

Commit f0bd0fd

Browse files
committed
Add logic to handle Rook flag for MDS metadata pool names support
Signed-off-by: Tobias Wolf <[email protected]>
1 parent f445510 commit f0bd0fd

File tree

1 file changed

+26
-16
lines changed
  • src/rookify/modules/migrate_mds_pools

1 file changed

+26
-16
lines changed

src/rookify/modules/migrate_mds_pools/main.py

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,29 +20,22 @@ def preflight(self) -> None:
2020
state_data["report"]["osdmap"]
2121
)
2222

23+
are_custom_metadata_pool_names_supported = self.k8s.get_rook_flag(
24+
"mds_support_metadata_name", True
25+
)
26+
2327
for mds_fs_data in state_data["fs"]["ls"]:
24-
if not mds_fs_data["metadata_pool"].endswith("-metadata"):
28+
if not (
29+
are_custom_metadata_pool_names_supported
30+
and mds_fs_data["metadata_pool"].endswith("-metadata")
31+
):
2532
self.logger.warn(
2633
"ceph-mds filesystem '{0}' uses an incompatible pool metadata name '{1}' and can not be migrated to Rook automatically".format(
2734
mds_fs_data["name"], mds_fs_data["metadata_pool"]
2835
)
2936
)
3037

31-
# Store pools for incompatible MDS filesystem as migrated ones
32-
migrated_pools = self.machine.get_execution_state_data(
33-
"MigrateMdsPoolsHandler", "migrated_pools", default_value=[]
34-
)
35-
36-
if mds_fs_data["metadata_pool"] not in migrated_pools:
37-
migrated_pools.append(mds_fs_data["metadata_pool"])
38-
39-
for pool_data_osd_name in mds_fs_data["data_pools"]:
40-
if pool_data_osd_name not in migrated_pools:
41-
migrated_pools.append(pool_data_osd_name)
42-
43-
state = self.machine.get_execution_state("MigrateMdsPoolsHandler")
44-
if state is not None:
45-
state.migrated_pools = migrated_pools
38+
self._handle_mds_metadata_pool_not_supported(mds_fs_data)
4639

4740
continue
4841

@@ -92,6 +85,23 @@ def get_readable_key_value_state(self) -> Dict[str, str]:
9285

9386
return kv_state_data
9487

88+
def _handle_mds_metadata_pool_not_supported(self, mds_fs_data: Any) -> None:
89+
# Store pools for incompatible MDS filesystem as migrated ones
90+
migrated_pools = self.machine.get_execution_state_data(
91+
"MigrateMdsPoolsHandler", "migrated_pools", default_value=[]
92+
)
93+
94+
if mds_fs_data["metadata_pool"] not in migrated_pools:
95+
migrated_pools.append(mds_fs_data["metadata_pool"])
96+
97+
for pool_data_osd_name in mds_fs_data["data_pools"]:
98+
if pool_data_osd_name not in migrated_pools:
99+
migrated_pools.append(pool_data_osd_name)
100+
101+
state = self.machine.get_execution_state("MigrateMdsPoolsHandler")
102+
if state is not None:
103+
state.migrated_pools = migrated_pools
104+
95105
def _migrate_pool(self, pool: Dict[str, Any]) -> None:
96106
migrated_mds_pools = self.machine.get_execution_state_data(
97107
"MigrateMdsPoolsHandler", "migrated_mds_pools", default_value=[]

0 commit comments

Comments
 (0)