From d935c2cafa64dde683dcdc847455f71ed488e378 Mon Sep 17 00:00:00 2001 From: Vladimir Domnich Date: Thu, 18 Aug 2022 11:10:40 +0300 Subject: [PATCH] Remove step for iptables installation Installation of iptables was implemented in environment preparation pipeline and tests do not need to worry about it. Removed conditions that were checking pytest mode vs robot mode, because we got rid of robot tests in this branch of codebase. Signed-off-by: Vladimir Domnich --- .../failovers/test_failover_network.py | 21 +---------- .../lib/python_keywords/cli_helpers.py | 36 +++++++++---------- robot/resources/lib/python_keywords/epoch.py | 13 +++---- .../lib/python_keywords/http_gate.py | 13 ++++--- 4 files changed, 29 insertions(+), 54 deletions(-) diff --git a/pytest_tests/testsuites/failovers/test_failover_network.py b/pytest_tests/testsuites/failovers/test_failover_network.py index 784663f..4f8abcf 100644 --- a/pytest_tests/testsuites/failovers/test_failover_network.py +++ b/pytest_tests/testsuites/failovers/test_failover_network.py @@ -6,7 +6,7 @@ import allure import pytest from common import (STORAGE_NODE_SSH_PRIVATE_KEY_PATH, STORAGE_NODE_SSH_USER, - STORAGE_NODE_SSH_PASSWORD, NEOFS_NETMAP_DICT) + STORAGE_NODE_SSH_PASSWORD) from failover_utils import wait_all_storage_node_returned, wait_object_replication_on_nodes from iptables_helper import IpTablesHelper from python_keywords.container import create_container @@ -22,25 +22,6 @@ PORTS_TO_BLOCK = [STORAGE_NODE_COMMUNICATION_PORT, STORAGE_NODE_COMMUNICATION_PO blocked_hosts = [] -@pytest.fixture(autouse=True) -@allure.step('Install iptables if needed') -def install_iptables_if_needed(): - check_command = 'sudo iptables --version' - install_command = 'sudo apt-get --yes install iptables' - for node_config in NEOFS_NETMAP_DICT.values(): - host = node_config.get('rpc').split(':')[0] - client = HostClient(ip=host, login=STORAGE_NODE_SSH_USER, - password=STORAGE_NODE_SSH_PASSWORD, - private_key_path=STORAGE_NODE_SSH_PRIVATE_KEY_PATH) - with client.create_ssh_connection(): - try: - client.exec(check_command) - except AssertionError as err: - logger.info(f'Command {check_command} fails with error {err}') - client.exec(install_command) - client.exec(check_command) - - @pytest.fixture(autouse=True) @allure.step('Restore network') def restore_network(): diff --git a/robot/resources/lib/python_keywords/cli_helpers.py b/robot/resources/lib/python_keywords/cli_helpers.py index f44d9af..919e251 100644 --- a/robot/resources/lib/python_keywords/cli_helpers.py +++ b/robot/resources/lib/python_keywords/cli_helpers.py @@ -100,26 +100,24 @@ def _configure_aws_cli(cmd: str, key_id: str, access_key: str, out_format: str = def _attach_allure_log(cmd: str, output: str, return_code: int, start_time: datetime, end_time: datetime) -> None: - if 'robot' not in sys.modules: - command_attachment = ( - f"COMMAND: '{cmd}'\n" - f'OUTPUT:\n {output}\n' - f'RC: {return_code}\n' - f'Start / End / Elapsed\t {start_time.time()} / {end_time.time()} / {end_time - start_time}' - ) - with allure.step(f'COMMAND: {shorten(cmd, width=60, placeholder="...")}'): - allure.attach(command_attachment, 'Command execution', allure.attachment_type.TEXT) + command_attachment = ( + f"COMMAND: '{cmd}'\n" + f'OUTPUT:\n {output}\n' + f'RC: {return_code}\n' + f'Start / End / Elapsed\t {start_time.time()} / {end_time.time()} / {end_time - start_time}' + ) + with allure.step(f'COMMAND: {shorten(cmd, width=60, placeholder="...")}'): + allure.attach(command_attachment, 'Command execution', allure.attachment_type.TEXT) def log_command_execution(cmd: str, output: Union[str, dict]) -> None: logger.info(f'{cmd}: {output}') - if 'robot' not in sys.modules: - with suppress(Exception): - json_output = json.dumps(output, indent=4, sort_keys=True) - output = json_output - command_attachment = ( - f"COMMAND: '{cmd}'\n" - f'OUTPUT:\n {output}\n' - ) - with allure.step(f'COMMAND: {shorten(cmd, width=60, placeholder="...")}'): - allure.attach(command_attachment, 'Command execution', allure.attachment_type.TEXT) + with suppress(Exception): + json_output = json.dumps(output, indent=4, sort_keys=True) + output = json_output + command_attachment = ( + f"COMMAND: '{cmd}'\n" + f'OUTPUT:\n {output}\n' + ) + with allure.step(f'COMMAND: {shorten(cmd, width=60, placeholder="...")}'): + allure.attach(command_attachment, 'Command execution', allure.attachment_type.TEXT) diff --git a/robot/resources/lib/python_keywords/epoch.py b/robot/resources/lib/python_keywords/epoch.py index 26f3522..3c948d0 100644 --- a/robot/resources/lib/python_keywords/epoch.py +++ b/robot/resources/lib/python_keywords/epoch.py @@ -1,6 +1,4 @@ #!/usr/bin/python3.9 -import sys - import allure from robot.api import logger from robot.api.deco import keyword @@ -40,12 +38,11 @@ def tick_epoch(): err = str(exc) raise RuntimeError("Failed to tick epoch") from exc finally: - if 'allure' in sys.modules: - allure.attach(( - f'COMMAND: {cmd}\n' - f'OUTPUT:\n {out}\n' - f'ERROR: {err}\n' - ), 'Tick Epoch', allure.attachment_type.TEXT) + allure.attach(( + f'COMMAND: {cmd}\n' + f'OUTPUT:\n {out}\n' + f'ERROR: {err}\n' + ), 'Tick Epoch', allure.attachment_type.TEXT) return # Otherwise we tick epoch using transaction diff --git a/robot/resources/lib/python_keywords/http_gate.py b/robot/resources/lib/python_keywords/http_gate.py index ded0470..2f70ff1 100644 --- a/robot/resources/lib/python_keywords/http_gate.py +++ b/robot/resources/lib/python_keywords/http_gate.py @@ -173,10 +173,9 @@ def get_via_http_curl(cid: str, oid: str) -> str: def _attach_allure_step(request: str, status_code: int, req_type='GET'): - if 'allure' in sys.modules: - command_attachment = ( - f"REQUEST: '{request}'\n" - f'RESPONSE:\n {status_code}\n' - ) - with allure.step(f'{req_type} Request'): - allure.attach(command_attachment, f'{req_type} Request', allure.attachment_type.TEXT) + command_attachment = ( + f"REQUEST: '{request}'\n" + f'RESPONSE:\n {status_code}\n' + ) + with allure.step(f'{req_type} Request'): + allure.attach(command_attachment, f'{req_type} Request', allure.attachment_type.TEXT)