diff --git a/src/frostfs_testlib/cli/frostfs_cli/cli.py b/src/frostfs_testlib/cli/frostfs_cli/cli.py index 7874f18..d83b7ae 100644 --- a/src/frostfs_testlib/cli/frostfs_cli/cli.py +++ b/src/frostfs_testlib/cli/frostfs_cli/cli.py @@ -29,7 +29,6 @@ class FrostfsCli: util: FrostfsCliUtil version: FrostfsCliVersion control: FrostfsCliControl - ape_manager: FrostfsCliApeManager def __init__(self, shell: Shell, frostfs_cli_exec_path: str, config_file: Optional[str] = None): self.accounting = FrostfsCliAccounting(shell, frostfs_cli_exec_path, config=config_file) diff --git a/src/frostfs_testlib/resources/error_patterns.py b/src/frostfs_testlib/resources/error_patterns.py index 15e2977..6c0cb14 100644 --- a/src/frostfs_testlib/resources/error_patterns.py +++ b/src/frostfs_testlib/resources/error_patterns.py @@ -1,6 +1,6 @@ # Regex patterns of status codes of Container service CONTAINER_NOT_FOUND = "code = 3072.*message = container not found" -SUBJECT_NOT_FOUND = "code = 1024.*message =.*chain/client.*subject not found.*" +SUBJECT_NOT_FOUND = "code = 1024.*message = frostfs error: chain/client.*subject not found.*" # Regex patterns of status codes of Object service MALFORMED_REQUEST = "code = 1024.*message = malformed request" diff --git a/src/frostfs_testlib/storage/grpc_operations/client_wrappers.py b/src/frostfs_testlib/storage/grpc_operations/client_wrappers.py index d9f94b2..c1e3a31 100644 --- a/src/frostfs_testlib/storage/grpc_operations/client_wrappers.py +++ b/src/frostfs_testlib/storage/grpc_operations/client_wrappers.py @@ -8,7 +8,6 @@ class CliClientWrapper(interfaces_wrapper.GrpcClientWrapper): self.object: interfaces.ObjectInterface = implementations.ObjectOperations(self.cli) self.container: interfaces.ContainerInterface = implementations.ContainerOperations(self.cli) self.netmap: interfaces.NetmapInterface = implementations.NetmapOperations(self.cli) - self.ape_manager: interfaces.ApeManagerInterface = implementations.ApeManagerOperations(self.cli) class RpcClientWrapper(interfaces_wrapper.GrpcClientWrapper): diff --git a/src/frostfs_testlib/storage/grpc_operations/implementations/__init__.py b/src/frostfs_testlib/storage/grpc_operations/implementations/__init__.py index df820fa..18e8ae5 100644 --- a/src/frostfs_testlib/storage/grpc_operations/implementations/__init__.py +++ b/src/frostfs_testlib/storage/grpc_operations/implementations/__init__.py @@ -1,4 +1,3 @@ -from .ape_manager import ApeManagerOperations from .chunks import ChunksOperations from .container import ContainerOperations from .netmap import NetmapOperations diff --git a/src/frostfs_testlib/storage/grpc_operations/implementations/ape_manager.py b/src/frostfs_testlib/storage/grpc_operations/implementations/ape_manager.py deleted file mode 100644 index 070d8a6..0000000 --- a/src/frostfs_testlib/storage/grpc_operations/implementations/ape_manager.py +++ /dev/null @@ -1,79 +0,0 @@ -from typing import Optional - -from frostfs_testlib import reporter -from frostfs_testlib.cli.frostfs_cli.cli import FrostfsCli -from frostfs_testlib.resources.cli import CLI_DEFAULT_TIMEOUT - - -class ApeManagerOperations: - def __init__(self, cli: FrostfsCli): - self.cli = cli - - @reporter.step("Add ape rule") - def add( - self, - rpc_endpoint: str, - chain_id: Optional[str] = None, - chain_id_hex: Optional[str] = None, - path: Optional[str] = None, - rule: Optional[str] | Optional[list[str]] = None, - target_name: Optional[str] = None, - target_type: Optional[str] = None, - wallet: Optional[str] = None, - address: Optional[str] = None, - timeout: Optional[str] = CLI_DEFAULT_TIMEOUT, - ): - return self.cli.ape_manager.add( - rpc_endpoint=rpc_endpoint, - chain_id=chain_id, - chain_id_hex=chain_id_hex, - path=path, - rule=rule, - target_name=target_name, - target_type=target_type, - wallet=wallet, - address=address, - timeout=timeout, - ) - - @reporter.step("Get list APE rules") - def list( - self, - rpc_endpoint: str, - target_name: Optional[str] = None, - target_type: Optional[str] = None, - wallet: Optional[str] = None, - address: Optional[str] = None, - timeout: Optional[str] = CLI_DEFAULT_TIMEOUT, - ): - return self.cli.ape_manager.list( - rpc_endpoint=rpc_endpoint, - target_name=target_name, - target_type=target_type, - wallet=wallet, - address=address, - timeout=timeout, - ) - - @reporter.step("Remove APE rule") - def remove( - self, - rpc_endpoint: str, - chain_id: Optional[str] = None, - chain_id_hex: Optional[str] = None, - target_name: Optional[str] = None, - target_type: Optional[str] = None, - wallet: Optional[str] = None, - address: Optional[str] = None, - timeout: Optional[str] = CLI_DEFAULT_TIMEOUT, - ): - return self.cli.ape_manager.remove( - rpc_endpoint=rpc_endpoint, - chain_id=chain_id, - chain_id_hex=chain_id_hex, - target_name=target_name, - target_type=target_type, - wallet=wallet, - address=address, - timeout=timeout, - ) diff --git a/src/frostfs_testlib/storage/grpc_operations/implementations/container.py b/src/frostfs_testlib/storage/grpc_operations/implementations/container.py index afdf6cb..75af00c 100644 --- a/src/frostfs_testlib/storage/grpc_operations/implementations/container.py +++ b/src/frostfs_testlib/storage/grpc_operations/implementations/container.py @@ -1,7 +1,6 @@ import json import logging import re -from time import sleep from typing import List, Optional, Union from frostfs_testlib import reporter @@ -302,16 +301,6 @@ class ContainerOperations(interfaces.ContainerInterface): resolver: BucketContainerResolver = resolver_cls() return resolver.resolve(node, name) - @reporter.step("Wait create container, with list") - def wait_creation(self, cid: str, endpoint: str, attempts: int = 15, sleep_interval: int = 1): - for _ in range(attempts): - containers = self.list(endpoint) - if cid in containers: - return - logger.info(f"There is no {cid} in {containers} yet; sleep {sleep_interval} and continue") - sleep(sleep_interval) - raise RuntimeError(f"After {attempts * sleep_interval} seconds container {cid} hasn't been persisted; exiting") - def _parse_cid(self, output: str) -> str: """ Parses container ID from a given CLI output. The input string we expect: diff --git a/src/frostfs_testlib/storage/grpc_operations/interfaces/__init__.py b/src/frostfs_testlib/storage/grpc_operations/interfaces/__init__.py index 379bbe0..17b3e9c 100644 --- a/src/frostfs_testlib/storage/grpc_operations/interfaces/__init__.py +++ b/src/frostfs_testlib/storage/grpc_operations/interfaces/__init__.py @@ -1,4 +1,3 @@ -from .ape_manager import ApeManagerInterface from .chunks import ChunksInterface from .container import ContainerInterface from .netmap import NetmapInterface diff --git a/src/frostfs_testlib/storage/grpc_operations/interfaces/ape_manager.py b/src/frostfs_testlib/storage/grpc_operations/interfaces/ape_manager.py deleted file mode 100644 index 5b198bc..0000000 --- a/src/frostfs_testlib/storage/grpc_operations/interfaces/ape_manager.py +++ /dev/null @@ -1,48 +0,0 @@ -from abc import ABC, abstractmethod -from typing import Optional - -from frostfs_testlib.shell.interfaces import CommandResult - - -class ApeManagerInterface(ABC): - @abstractmethod - def add( - self, - rpc_endpoint: str, - chain_id: Optional[str] = None, - chain_id_hex: Optional[str] = None, - path: Optional[str] = None, - rule: Optional[str] | Optional[list[str]] = None, - target_name: Optional[str] = None, - target_type: Optional[str] = None, - wallet: Optional[str] = None, - address: Optional[str] = None, - timeout: Optional[str] = None, - ) -> CommandResult: - pass - - @abstractmethod - def list( - self, - rpc_endpoint: str, - target_name: Optional[str] = None, - target_type: Optional[str] = None, - wallet: Optional[str] = None, - address: Optional[str] = None, - timeout: Optional[str] = None, - ) -> CommandResult: - pass - - @abstractmethod - def remove( - self, - rpc_endpoint: str, - chain_id: Optional[str] = None, - chain_id_hex: Optional[str] = None, - target_name: Optional[str] = None, - target_type: Optional[str] = None, - wallet: Optional[str] = None, - address: Optional[str] = None, - timeout: Optional[str] = None, - ) -> CommandResult: - pass diff --git a/src/frostfs_testlib/storage/grpc_operations/interfaces/container.py b/src/frostfs_testlib/storage/grpc_operations/interfaces/container.py index 397f7b2..d5e3eeb 100644 --- a/src/frostfs_testlib/storage/grpc_operations/interfaces/container.py +++ b/src/frostfs_testlib/storage/grpc_operations/interfaces/container.py @@ -123,7 +123,3 @@ class ContainerInterface(ABC): ) -> List[ClusterNode]: """Show the nodes participating in the container in the current epoch.""" raise NotImplementedError("No implemethed method nodes") - - @abstractmethod - def wait_creation(self, cid: str, endpoint: str, attempts: Optional[str], sleep_interval: Optional[int]) -> None: - raise NotImplementedError("No implemented method wait_creation") diff --git a/src/frostfs_testlib/storage/grpc_operations/interfaces_wrapper.py b/src/frostfs_testlib/storage/grpc_operations/interfaces_wrapper.py index 5edc99f..6574012 100644 --- a/src/frostfs_testlib/storage/grpc_operations/interfaces_wrapper.py +++ b/src/frostfs_testlib/storage/grpc_operations/interfaces_wrapper.py @@ -1,14 +1,10 @@ from abc import ABC -from frostfs_testlib.cli.frostfs_cli.cli import FrostfsCli - from . import interfaces class GrpcClientWrapper(ABC): def __init__(self) -> None: - self.cli: FrostfsCli self.object: interfaces.ObjectInterface self.container: interfaces.ContainerInterface self.netmap: interfaces.NetmapInterface - self.ape_manager: interfaces.ApeManagerInterface