[#277] Updates related to testing platform
Some checks reported warnings
DCO check / Commits Check (pull_request) Has been cancelled
Some checks reported warnings
DCO check / Commits Check (pull_request) Has been cancelled
Signed-off-by: a.berezin <a.berezin@yadro.com>
This commit is contained in:
parent
8702c9dc88
commit
89891b306b
5 changed files with 2 additions and 144 deletions
|
@ -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
|
|
|
@ -3,4 +3,3 @@ import os
|
||||||
TEST_CYCLES_COUNT = int(os.getenv("TEST_CYCLES_COUNT", "1"))
|
TEST_CYCLES_COUNT = int(os.getenv("TEST_CYCLES_COUNT", "1"))
|
||||||
|
|
||||||
DEVENV_PATH = os.getenv("DEVENV_PATH", os.path.join("..", "frostfs-dev-env"))
|
DEVENV_PATH = os.getenv("DEVENV_PATH", os.path.join("..", "frostfs-dev-env"))
|
||||||
HOSTING_CONFIG_FILE = os.getenv("HOSTING_CONFIG_FILE", ".devenv.hosting.yaml")
|
|
||||||
|
|
|
@ -3,26 +3,22 @@ import os
|
||||||
import random
|
import random
|
||||||
import shutil
|
import shutil
|
||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from importlib.metadata import entry_points
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
import allure
|
import allure
|
||||||
import pytest
|
import pytest
|
||||||
import yaml
|
|
||||||
from dateutil import parser
|
from dateutil import parser
|
||||||
from frostfs_testlib import plugins, reporter
|
from frostfs_testlib import plugins, reporter
|
||||||
from frostfs_testlib.cli import FrostfsCli
|
from frostfs_testlib.cli import FrostfsCli
|
||||||
from frostfs_testlib.credentials.interfaces import CredentialsProvider, User
|
from frostfs_testlib.credentials.interfaces import CredentialsProvider, User
|
||||||
from frostfs_testlib.healthcheck.interfaces import Healthcheck
|
from frostfs_testlib.healthcheck.interfaces import Healthcheck
|
||||||
from frostfs_testlib.hosting import Hosting
|
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.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.s3 import AwsCliClient, Boto3ClientWrapper, S3ClientWrapper, VersioningStatus
|
||||||
from frostfs_testlib.shell import LocalShell, Shell
|
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.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.cli.object import get_netmap_netinfo
|
||||||
from frostfs_testlib.steps.s3 import s3_helper
|
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.cluster import Cluster, ClusterNode
|
||||||
from frostfs_testlib.storage.controllers.cluster_state_controller import ClusterStateController
|
from frostfs_testlib.storage.controllers.cluster_state_controller import ClusterStateController
|
||||||
from frostfs_testlib.storage.dataclasses.frostfs_services import StorageNode
|
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 import env_utils, string_utils, version_utils
|
||||||
from frostfs_testlib.utils.file_utils import TestFile, generate_file
|
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")
|
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")
|
@pytest.fixture(scope="session")
|
||||||
def client_shell(configure_testlib) -> Shell:
|
def client_shell(configure_testlib) -> Shell:
|
||||||
yield LocalShell()
|
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")
|
@pytest.fixture(scope="session")
|
||||||
def require_multiple_hosts(hosting: Hosting):
|
def require_multiple_hosts(hosting: Hosting):
|
||||||
"""Designates tests that require environment with multiple hosts.
|
"""Designates tests that require environment with multiple hosts.
|
||||||
|
|
|
@ -9,6 +9,7 @@ from frostfs_testlib.cli import FrostfsAdm, FrostfsCli
|
||||||
from frostfs_testlib.cli.netmap_parser import NetmapParser
|
from frostfs_testlib.cli.netmap_parser import NetmapParser
|
||||||
from frostfs_testlib.credentials.interfaces import User
|
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.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.shell import Shell
|
||||||
from frostfs_testlib.steps.cli.object import get_object, put_object
|
from frostfs_testlib.steps.cli.object import get_object, put_object
|
||||||
from frostfs_testlib.storage.cluster import Cluster, ClusterNode, StorageNode
|
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.cli_utils import parse_netmap_output
|
||||||
from frostfs_testlib.utils.file_utils import generate_file, get_file_hash
|
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:
|
def pytest_generate_tests(metafunc: pytest.Metafunc) -> None:
|
||||||
if "ec_policy" not in metafunc.fixturenames:
|
if "ec_policy" not in metafunc.fixturenames:
|
||||||
|
|
|
@ -4,7 +4,6 @@ base58==2.1.0
|
||||||
boto3==1.16.33
|
boto3==1.16.33
|
||||||
botocore==1.19.33
|
botocore==1.19.33
|
||||||
configobj==5.0.6
|
configobj==5.0.6
|
||||||
frostfs-testlib>=2.0.1
|
|
||||||
neo-mamba==1.0.0
|
neo-mamba==1.0.0
|
||||||
pexpect==4.8.0
|
pexpect==4.8.0
|
||||||
pyyaml==6.0.1
|
pyyaml==6.0.1
|
||||||
|
|
Loading…
Reference in a new issue