From b6a657e76c03818bf0f663284a6c5036ab713687 Mon Sep 17 00:00:00 2001
From: Ilyas Niyazov <i.niyazov@yadro.com>
Date: Tue, 9 Jul 2024 14:47:32 +0300
Subject: [PATCH] [#258] add tests for preupgrade

---
 src/frostfs_testlib/cli/frostfs_adm/morph.py              | 2 +-
 .../storage/controllers/cluster_state_controller.py       | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/frostfs_testlib/cli/frostfs_adm/morph.py b/src/frostfs_testlib/cli/frostfs_adm/morph.py
index 1d753d9..d8fd61c 100644
--- a/src/frostfs_testlib/cli/frostfs_adm/morph.py
+++ b/src/frostfs_testlib/cli/frostfs_adm/morph.py
@@ -110,7 +110,7 @@ class FrostfsAdmMorph(CliCommand):
             **{param: param_value for param, param_value in locals().items() if param not in ["self"]},
         )
 
-    def dump_hashes(self, rpc_endpoint: str) -> CommandResult:
+    def dump_hashes(self, rpc_endpoint: str, domain: Optional[str] = None) -> CommandResult:
         """Dump deployed contract hashes.
 
         Args:
diff --git a/src/frostfs_testlib/storage/controllers/cluster_state_controller.py b/src/frostfs_testlib/storage/controllers/cluster_state_controller.py
index 3c6c268..cec5ed3 100644
--- a/src/frostfs_testlib/storage/controllers/cluster_state_controller.py
+++ b/src/frostfs_testlib/storage/controllers/cluster_state_controller.py
@@ -531,3 +531,11 @@ class ClusterStateController:
         except Exception as err:
             logger.warning(f"Host ping fails with error {err}")
             return HostStatus.ONLINE
+        
+    @reporter.step("Get contract by domain - {domain_name}")
+    def get_domain_contracts(self, cluster_node: ClusterNode, domain_name: str):
+        frostfs_adm = FrostfsAdm(
+            shell=cluster_node.host.get_shell(),
+            frostfs_adm_exec_path=FROSTFS_ADM_EXEC,
+        )
+        return frostfs_adm.morph.dump_hashes(cluster_node.morph_chain.get_endpoint(), domain_name).stdout