From 7c4e0a64ec5346e3d105251a0468002a811b146c Mon Sep 17 00:00:00 2001 From: Roman Date: Thu, 6 Mar 2025 01:57:21 +0000 Subject: [PATCH] fix: dispersal to remote host --- src/cli/nomos_cli.py | 6 ++++++ src/node/nomos_node.py | 6 ++++++ src/steps/da.py | 6 +++--- tests/dos_robustness/test_high_load_dos.py | 5 ++++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/cli/nomos_cli.py b/src/cli/nomos_cli.py index d051ded..420fd6e 100644 --- a/src/cli/nomos_cli.py +++ b/src/cli/nomos_cli.py @@ -122,3 +122,9 @@ class NomosCli: def name(self): return self._container_name + + def send_dispersal_request(self, data): + return self._api.send_dispersal_request(data) + + def send_get_data_range_request(self, data): + return self._api.send_get_range(data) diff --git a/src/node/nomos_node.py b/src/node/nomos_node.py index 2c867ae..4921a13 100644 --- a/src/node/nomos_node.py +++ b/src/node/nomos_node.py @@ -129,6 +129,12 @@ class NomosNode: def api_port(self): return self._tcp_port + def api_port_internal(self): + for internal_port, external_port in self._port_map.items(): + if str(external_port).replace("/tcp", "") == self._tcp_port: + return internal_port.replace("/tcp", "") + return None + def check_nomos_log_errors(self, whitelist=None): keywords = LOG_ERROR_KEYWORDS diff --git a/src/steps/da.py b/src/steps/da.py index 41575e6..72941e5 100644 --- a/src/steps/da.py +++ b/src/steps/da.py @@ -47,7 +47,7 @@ class StepsDataAvailability(StepsCommon): @allure.step def disperse_data(self, data, app_id, index, client_node=None, timeout_duration=65, utf8=True, padding=True): - @retry(stop=stop_after_delay(timeout_duration), wait=wait_fixed(1), reraise=True) + @retry(stop=stop_after_delay(timeout_duration), wait=wait_fixed(0.1), reraise=True) def disperse(my_self=self): response = [] request = prepare_dispersal_request(data, app_id, index, utf8=utf8, padding=padding) @@ -57,7 +57,7 @@ class StepsDataAvailability(StepsCommon): if client_node is None: response = executor.send_dispersal_request(request) else: - response = client_node.set_rest_api(executor.name(), executor.api_port()) + client_node.set_rest_api(executor.name(), executor.api_port_internal()) response = client_node.send_dispersal_request(request) except Exception as ex: assert "Bad Request" in str(ex) or "Internal Server Error" in str(ex) @@ -71,7 +71,7 @@ class StepsDataAvailability(StepsCommon): @allure.step def get_data_range(self, node, app_id, start, end, timeout_duration=45): - @retry(stop=stop_after_delay(timeout_duration), wait=wait_fixed(1), reraise=True) + @retry(stop=stop_after_delay(timeout_duration), wait=wait_fixed(0.1), reraise=True) def get_range(): response = [] query = prepare_get_range_request(app_id, start, end) diff --git a/tests/dos_robustness/test_high_load_dos.py b/tests/dos_robustness/test_high_load_dos.py index 858f847..dc27648 100644 --- a/tests/dos_robustness/test_high_load_dos.py +++ b/tests/dos_robustness/test_high_load_dos.py @@ -128,13 +128,16 @@ class TestHighLoadDos(StepsDataAvailability): delay(0.01) try: response = self.disperse_data(DATA_TO_DISPERSE[6], to_app_id(1), to_index(0), client_node=self.client_nodes[0], timeout_duration=0) + logger.debug(f"RESPONSE {response}") if response.status_code == 200: successful_dispersals += 1 else: unsuccessful_dispersals += 1 - except Exception: + except Exception as ex: + logger.debug(f"EXCEPTION {ex}") unsuccessful_dispersals += 1 + delay(3600) # try: # self.get_data_range(self.node2, to_app_id(1), to_index(0), to_index(5), timeout_duration=0) # successful_downloads += 1