From b456ce167ef0d103ff387bf01d01ca3f65d1ce42 Mon Sep 17 00:00:00 2001 From: "a.berezin" Date: Fri, 26 Jul 2024 16:20:20 +0300 Subject: [PATCH] [#277] Updates related to testing platform Signed-off-by: a.berezin --- .devenv.hosting.yaml | 108 ------------------ pytest_tests/resources/common.py | 1 - pytest_tests/testsuites/conftest.py | 33 +----- .../replication/test_ec_replication.py | 3 +- requirements.txt | 1 - 5 files changed, 2 insertions(+), 144 deletions(-) delete mode 100644 .devenv.hosting.yaml diff --git a/.devenv.hosting.yaml b/.devenv.hosting.yaml deleted file mode 100644 index d096625c..00000000 --- a/.devenv.hosting.yaml +++ /dev/null @@ -1,108 +0,0 @@ -hosts: -- address: localhost - attributes: - sudo_shell: false - plugin_name: docker - healthcheck_plugin_name: basic - attributes: - skip_readiness_check: True - force_transactions: True - services: - - name: frostfs-storage_01 - attributes: - container_name: s01 - config_path: /etc/frostfs/storage/config.yml - wallet_path: ../frostfs-dev-env/services/storage/wallet01.json - local_wallet_config_path: ./TemporaryDir/empty-password.yml - local_wallet_path: ../frostfs-dev-env/services/storage/wallet01.json - wallet_password: "" - volume_name: storage_storage_s01 - endpoint_data0: s01.frostfs.devenv:8080 - control_endpoint: s01.frostfs.devenv:8081 - un_locode: "RU MOW" - - name: frostfs-storage_02 - attributes: - container_name: s02 - config_path: /etc/frostfs/storage/config.yml - wallet_path: ../frostfs-dev-env/services/storage/wallet02.json - local_wallet_config_path: ./TemporaryDir/empty-password.yml - local_wallet_path: ../frostfs-dev-env/services/storage/wallet02.json - wallet_password: "" - volume_name: storage_storage_s02 - endpoint_data0: s02.frostfs.devenv:8080 - control_endpoint: s02.frostfs.devenv:8081 - un_locode: "RU LED" - - name: frostfs-storage_03 - attributes: - container_name: s03 - config_path: /etc/frostfs/storage/config.yml - wallet_path: ../frostfs-dev-env/services/storage/wallet03.json - local_wallet_config_path: ./TemporaryDir/empty-password.yml - local_wallet_path: ../frostfs-dev-env/services/storage/wallet03.json - wallet_password: "" - volume_name: storage_storage_s03 - endpoint_data0: s03.frostfs.devenv:8080 - control_endpoint: s03.frostfs.devenv:8081 - un_locode: "SE STO" - - name: frostfs-storage_04 - attributes: - container_name: s04 - config_path: /etc/frostfs/storage/config.yml - wallet_path: ../frostfs-dev-env/services/storage/wallet04.json - local_wallet_config_path: ./TemporaryDir/empty-password.yml - local_wallet_path: ../frostfs-dev-env/services/storage/wallet04.json - wallet_password: "" - volume_name: storage_storage_s04 - endpoint_data0: s04.frostfs.devenv:8080 - control_endpoint: s04.frostfs.devenv:8081 - un_locode: "FI HEL" - - name: frostfs-s3_01 - attributes: - container_name: s3_gate - config_path: ../frostfs-dev-env/services/s3_gate/.s3.env - wallet_path: ../frostfs-dev-env/services/s3_gate/wallet.json - local_wallet_config_path: ./TemporaryDir/password-s3.yml - local_wallet_path: ../frostfs-dev-env/services/s3_gate/wallet.json - wallet_password: "s3" - endpoint_data0: https://s3.frostfs.devenv:8080 - - name: frostfs-http_01 - attributes: - container_name: http_gate - config_path: ../frostfs-dev-env/services/http_gate/.http.env - wallet_path: ../frostfs-dev-env/services/http_gate/wallet.json - local_wallet_config_path: ./TemporaryDir/password-other.yml - local_wallet_path: ../frostfs-dev-env/services/http_gate/wallet.json - wallet_password: "one" - endpoint_data0: http://http.frostfs.devenv - - name: frostfs-ir_01 - attributes: - container_name: ir01 - config_path: ../frostfs-dev-env/services/ir/.ir.env - wallet_path: ../frostfs-dev-env/services/ir/az.json - local_wallet_config_path: ./TemporaryDir/password-other.yml - local_wallet_path: ../frostfs-dev-env/services/ir/az.json - wallet_password: "one" - - name: neo-go_01 - attributes: - container_name: morph_chain - config_path: ../frostfs-dev-env/services/morph_chain/protocol.privnet.yml - wallet_path: ../frostfs-dev-env/services/morph_chain/node-wallet.json - local_wallet_config_path: ./TemporaryDir/password-other.yml - local_wallet_path: ../frostfs-dev-env/services/morph_chain/node-wallet.json - wallet_password: "one" - endpoint_internal0: http://morph-chain.frostfs.devenv:30333 - - name: main-chain_01 - attributes: - container_name: main_chain - config_path: ../frostfs-dev-env/services/chain/protocol.privnet.yml - wallet_path: ../frostfs-dev-env/services/chain/node-wallet.json - local_wallet_config_path: ./TemporaryDir/password-other.yml - local_wallet_path: ../frostfs-dev-env/services/chain/node-wallet.json - wallet_password: "one" - endpoint_internal0: http://main-chain.frostfs.devenv:30333 - - name: coredns_01 - attributes: - container_name: coredns - clis: - - name: frostfs-cli - exec_path: frostfs-cli diff --git a/pytest_tests/resources/common.py b/pytest_tests/resources/common.py index 40fe682f..ebede363 100644 --- a/pytest_tests/resources/common.py +++ b/pytest_tests/resources/common.py @@ -3,4 +3,3 @@ import os TEST_CYCLES_COUNT = int(os.getenv("TEST_CYCLES_COUNT", "1")) DEVENV_PATH = os.getenv("DEVENV_PATH", os.path.join("..", "frostfs-dev-env")) -HOSTING_CONFIG_FILE = os.getenv("HOSTING_CONFIG_FILE", ".devenv.hosting.yaml") diff --git a/pytest_tests/testsuites/conftest.py b/pytest_tests/testsuites/conftest.py index 16f3c29f..696f06ec 100644 --- a/pytest_tests/testsuites/conftest.py +++ b/pytest_tests/testsuites/conftest.py @@ -3,26 +3,22 @@ import os import random import shutil from datetime import datetime, timedelta, timezone -from importlib.metadata import entry_points from typing import Optional import allure import pytest -import yaml from dateutil import parser from frostfs_testlib import plugins, reporter from frostfs_testlib.cli import FrostfsCli from frostfs_testlib.credentials.interfaces import CredentialsProvider, User from frostfs_testlib.healthcheck.interfaces import Healthcheck from frostfs_testlib.hosting import Hosting -from frostfs_testlib.reporter import AllureHandler, StepsLogger from frostfs_testlib.resources.common import ASSETS_DIR, COMPLEX_OBJECT_CHUNKS_COUNT, COMPLEX_OBJECT_TAIL_SIZE, SIMPLE_OBJECT_SIZE from frostfs_testlib.s3 import AwsCliClient, Boto3ClientWrapper, S3ClientWrapper, VersioningStatus from frostfs_testlib.shell import LocalShell, Shell from frostfs_testlib.steps.cli.container import DEFAULT_EC_PLACEMENT_RULE, DEFAULT_PLACEMENT_RULE, FROSTFS_CLI_EXEC from frostfs_testlib.steps.cli.object import get_netmap_netinfo from frostfs_testlib.steps.s3 import s3_helper -from frostfs_testlib.storage import get_service_registry from frostfs_testlib.storage.cluster import Cluster, ClusterNode from frostfs_testlib.storage.controllers.cluster_state_controller import ClusterStateController from frostfs_testlib.storage.dataclasses.frostfs_services import StorageNode @@ -35,7 +31,7 @@ from frostfs_testlib.testing.test_control import wait_for_success from frostfs_testlib.utils import env_utils, string_utils, version_utils from frostfs_testlib.utils.file_utils import TestFile, generate_file -from pytest_tests.resources.common import HOSTING_CONFIG_FILE, TEST_CYCLES_COUNT +from pytest_tests.resources.common import TEST_CYCLES_COUNT logger = logging.getLogger("NeoLogger") @@ -116,38 +112,11 @@ def pytest_generate_tests(metafunc: pytest.Metafunc): ) -@pytest.fixture(scope="session") -def configure_testlib(): - reporter.get_reporter().register_handler(AllureHandler()) - reporter.get_reporter().register_handler(StepsLogger()) - - logging.getLogger("paramiko").setLevel(logging.INFO) - - # Register Services for cluster - registry = get_service_registry() - services = entry_points(group="frostfs.testlib.services") - for svc in services: - registry.register_service(svc.name, svc.load()) - - yield - - @pytest.fixture(scope="session") def client_shell(configure_testlib) -> Shell: yield LocalShell() -@pytest.fixture(scope="session") -def hosting(configure_testlib) -> Hosting: - with open(HOSTING_CONFIG_FILE, "r") as file: - hosting_config = yaml.full_load(file) - - hosting_instance = Hosting() - hosting_instance.configure(hosting_config) - - yield hosting_instance - - @pytest.fixture(scope="session") def require_multiple_hosts(hosting: Hosting): """Designates tests that require environment with multiple hosts. diff --git a/pytest_tests/testsuites/replication/test_ec_replication.py b/pytest_tests/testsuites/replication/test_ec_replication.py index 852ceb53..dfa8d785 100644 --- a/pytest_tests/testsuites/replication/test_ec_replication.py +++ b/pytest_tests/testsuites/replication/test_ec_replication.py @@ -9,6 +9,7 @@ from frostfs_testlib.cli import FrostfsAdm, FrostfsCli from frostfs_testlib.cli.netmap_parser import NetmapParser from frostfs_testlib.credentials.interfaces import User from frostfs_testlib.resources.cli import FROSTFS_ADM_CONFIG_PATH, FROSTFS_ADM_EXEC, FROSTFS_CLI_EXEC +from frostfs_testlib.resources.common import HOSTING_CONFIG_FILE from frostfs_testlib.shell import Shell from frostfs_testlib.steps.cli.object import get_object, put_object from frostfs_testlib.storage.cluster import Cluster, ClusterNode, StorageNode @@ -20,8 +21,6 @@ from frostfs_testlib.testing.cluster_test_base import ClusterTestBase from frostfs_testlib.utils.cli_utils import parse_netmap_output from frostfs_testlib.utils.file_utils import generate_file, get_file_hash -from pytest_tests.resources.common import HOSTING_CONFIG_FILE - def pytest_generate_tests(metafunc: pytest.Metafunc) -> None: if "ec_policy" not in metafunc.fixturenames: diff --git a/requirements.txt b/requirements.txt index 2f28a1ad..97e6d78d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,6 @@ base58==2.1.0 boto3==1.16.33 botocore==1.19.33 configobj==5.0.6 -frostfs-testlib>=2.0.1 neo-mamba==1.0.0 pexpect==4.8.0 pyyaml==6.0.1