11# -*- coding: utf-8 -*-
22
3- from typing import Any , Dict
3+ from collections import OrderedDict
4+ from typing import Any , Dict , List
45from ..machine import Machine
56from ..module import ModuleHandler
67
@@ -14,8 +15,12 @@ class MigrateOSDPoolsHandler(ModuleHandler):
1415 ]
1516
1617 def execute (self ) -> None :
17- state_data = self .machine .get_preflight_state ("AnalyzeCephHandler" ).data
18+ pools = self ._get_filtered_osd_pools_list ()
19+
20+ for pool in pools :
21+ self ._migrate_pool (pool )
1822
23+ def _get_filtered_osd_pools_list (self ) -> List [Dict [str , Any ]]:
1924 migrated_mds_pools = self .machine .get_execution_state_data (
2025 name = "MigrateMdsPoolsHandler" , tag = "migrated_pools" , default_value = []
2126 )
@@ -25,6 +30,8 @@ def execute(self) -> None:
2530
2631 migrated_pools = migrated_mds_pools + migrated_rgw_pools
2732
33+ state_data = self .machine .get_preflight_state ("AnalyzeCephHandler" ).data
34+
2835 osd_pool_configurations = self .ceph .get_osd_pool_configurations_from_osd_dump (
2936 state_data ["osd" ]["dump" ]
3037 )
@@ -38,8 +45,25 @@ def execute(self) -> None:
3845 ):
3946 pools .append (pool )
4047
48+ return pools
49+
50+ def get_readable_key_value_state (self ) -> Dict [str , str ]:
51+ migrated_pools = self .machine .get_execution_state_data (
52+ "MigrateOSDPoolsHandler" , "migrated_pools" , default_value = []
53+ )
54+
55+ pools = self ._get_filtered_osd_pools_list ()
56+
57+ kv_state_data = OrderedDict ()
58+
4159 for pool in pools :
42- self ._migrate_pool (pool )
60+ key_name = "ceph OSD pool {0}" .format (pool ["pool_name" ])
61+ kv_state_data [key_name ] = self ._get_readable_json_dump (pool )
62+
63+ key_name = "ceph OSD pool {0} is created" .format (pool ["pool_name" ])
64+ kv_state_data [key_name ] = pool ["pool_name" ] in migrated_pools
65+
66+ return kv_state_data
4367
4468 def _migrate_pool (self , pool : Dict [str , Any ]) -> None :
4569 migrated_pools = self .machine .get_execution_state_data (
0 commit comments