aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-09-13 16:01:22 +0300
committerGitHub <noreply@github.com>2024-09-13 16:01:22 +0300
commit4c4a673f4befc86c24acf14bc07c282f6242363c (patch)
tree6d1e509d3f204814c519974d045fc1da10d3effb
parent2313a5ebe827d9d91fc515d80abe29022391b463 (diff)
downloadydb-4c4a673f4befc86c24acf14bc07c282f6242363c.tar.gz
Refactor harness (#9211)
-rw-r--r--ydb/tests/functional/encryption/test_encryption.py2
-rw-r--r--ydb/tests/functional/query_cache/test_query_cache.py2
-rw-r--r--ydb/tests/library/harness/daemon.py12
-rw-r--r--ydb/tests/library/harness/kikimr_config.py24
-rw-r--r--ydb/tests/library/harness/kikimr_runner.py19
5 files changed, 22 insertions, 37 deletions
diff --git a/ydb/tests/functional/encryption/test_encryption.py b/ydb/tests/functional/encryption/test_encryption.py
index d993deeb755..47ae21076af 100644
--- a/ydb/tests/functional/encryption/test_encryption.py
+++ b/ydb/tests/functional/encryption/test_encryption.py
@@ -74,7 +74,7 @@ class TestEncryption(object):
)
)
cls.cluster.start()
- cls.discovery_endpoint = "%s:%s" % (cls.cluster.nodes[1].hostname, cls.cluster.nodes[1].grpc_port)
+ cls.discovery_endpoint = "%s:%s" % (cls.cluster.nodes[1].host, cls.cluster.nodes[1].grpc_port)
def test_simple_encryption(self):
databases = []
diff --git a/ydb/tests/functional/query_cache/test_query_cache.py b/ydb/tests/functional/query_cache/test_query_cache.py
index a0cee3bfc30..c34248d5cbf 100644
--- a/ydb/tests/functional/query_cache/test_query_cache.py
+++ b/ydb/tests/functional/query_cache/test_query_cache.py
@@ -28,7 +28,7 @@ class TestQueryCache(object):
cls.config.yaml_config["table_service_config"] = {"compile_query_cache_size": QUERY_CACHE_SIZE}
cls.cluster = kikimr_cluster_factory(configurator=cls.config)
cls.cluster.start()
- cls.discovery_endpoint = "%s:%s" % (cls.cluster.nodes[1].hostname, cls.cluster.nodes[1].grpc_port)
+ cls.discovery_endpoint = "%s:%s" % (cls.cluster.nodes[1].host, cls.cluster.nodes[1].grpc_port)
cls.driver = ydb.Driver(endpoint=cls.discovery_endpoint, database="/Root", credentials=ydb.AnonymousCredentials())
cls.driver.wait(timeout=5)
cls.pool = ydb.SessionPool(cls.driver)
diff --git a/ydb/tests/library/harness/daemon.py b/ydb/tests/library/harness/daemon.py
index 5cb61b4b537..c1b0e9abd2e 100644
--- a/ydb/tests/library/harness/daemon.py
+++ b/ydb/tests/library/harness/daemon.py
@@ -17,7 +17,7 @@ from . import param_constants
logger = logging.getLogger(__name__)
-def extract_stderr_details(stderr_file, max_lines=0):
+def _extract_stderr_details(stderr_file, max_lines=0):
if max_lines == 0:
return []
@@ -43,7 +43,7 @@ class DaemonError(RuntimeError):
"Stdout file name: \n{}".format(stdout if stdout is not None else "is not present."),
"Stderr file name: \n{}".format(stderr if stderr is not None else "is not present."),
]
- + extract_stderr_details(stderr, max_stderr_lines)
+ + _extract_stderr_details(stderr, max_stderr_lines)
)
)
@@ -54,6 +54,7 @@ class SeveralDaemonErrors(RuntimeError):
class Daemon(object):
+ """Local process executed as process in current host"""
def __init__(
self,
command,
@@ -208,6 +209,7 @@ class Daemon(object):
@six.add_metaclass(abc.ABCMeta)
class ExternalNodeDaemon(object):
+ """External daemon, executed as process in separate host, managed via ssh"""
def __init__(self, host):
self._host = host
self._ssh_username = param_constants.ssh_username
@@ -263,12 +265,6 @@ class ExternalNodeDaemon(object):
'sudo rm -rf {}/* && sudo service rsyslog restart'.format(self.logs_directory), raise_on_error=True
)
- def sky_get_and_move(self, rb_torrent, item_to_move, target_path):
- self.ssh_command(['sky get -d %s %s' % (self._artifacts_path, rb_torrent)], raise_on_error=True)
- self.ssh_command(
- ['sudo mv %s %s' % (os.path.join(self._artifacts_path, item_to_move), target_path)], raise_on_error=True
- )
-
def send_signal(self, signal):
self.ssh_command(
"ps aux | grep %d | grep -v daemon | grep -v grep | awk '{ print $2 }' | xargs sudo kill -%d"
diff --git a/ydb/tests/library/harness/kikimr_config.py b/ydb/tests/library/harness/kikimr_config.py
index f359642eda2..cb5cb0dd1eb 100644
--- a/ydb/tests/library/harness/kikimr_config.py
+++ b/ydb/tests/library/harness/kikimr_config.py
@@ -33,7 +33,7 @@ KNOWN_STATIC_YQL_UDFS = set([
])
-def get_fqdn():
+def _get_fqdn():
hostname = socket.gethostname()
addrinfo = socket.getaddrinfo(hostname, None, socket.AF_UNSPEC, 0, 0, socket.AI_CANONNAME)
for ai in addrinfo:
@@ -44,7 +44,7 @@ def get_fqdn():
# GRPC_SERVER:DEBUG,TICKET_PARSER:WARN,KQP_COMPILE_ACTOR:DEBUG
-def get_additional_log_configs():
+def _get_additional_log_configs():
log_configs = os.getenv('YDB_ADDITIONAL_LOG_CONFIGS', '')
rt = {}
@@ -55,13 +55,13 @@ def get_additional_log_configs():
return rt
-def get_grpc_host():
+def _get_grpc_host():
if sys.platform == "darwin":
return "localhost"
return "[::]"
-def load_default_yaml(default_tablet_node_ids, ydb_domain_name, static_erasure, log_configs):
+def _load_default_yaml(default_tablet_node_ids, ydb_domain_name, static_erasure, log_configs):
data = read_binary(__name__, "resources/default_yaml.yml")
if isinstance(data, bytes):
data = data.decode('utf-8')
@@ -73,7 +73,7 @@ def load_default_yaml(default_tablet_node_ids, ydb_domain_name, static_erasure,
ydb_default_log_level=int(LogLevels.from_string(os.getenv("YDB_DEFAULT_LOG_LEVEL", "NOTICE"))),
ydb_domain_name=ydb_domain_name,
ydb_static_erasure=static_erasure,
- ydb_grpc_host=get_grpc_host(),
+ ydb_grpc_host=_get_grpc_host(),
ydb_pq_topics_are_first_class_citizen=bool(os.getenv("YDB_PQ_TOPICS_ARE_FIRST_CLASS_CITIZEN", "true")),
ydb_pq_cluster_table_path=str(os.getenv("YDB_PQ_CLUSTER_TABLE_PATH", "")),
ydb_pq_version_table_path=str(os.getenv("YDB_PQ_VERSION_TABLE_PATH", "")),
@@ -97,7 +97,7 @@ def _load_yaml_config(filename):
return yaml.safe_load(_read_file(filename))
-def use_in_memory_pdisks_var(pdisk_store_path, use_in_memory_pdisks):
+def _use_in_memory_pdisks_var(pdisk_store_path, use_in_memory_pdisks):
if os.getenv('YDB_USE_IN_MEMORY_PDISKS') is not None:
return os.getenv('YDB_USE_IN_MEMORY_PDISKS') == "true"
@@ -120,9 +120,7 @@ class KikimrConfigGenerator(object):
output_path=None,
enable_pq=True,
pq_client_service_types=None,
- slot_count=0,
pdisk_store_path=None,
- version=None,
enable_sqs=False,
domain_name='Root',
suppress_version_check=True,
@@ -168,7 +166,6 @@ class KikimrConfigGenerator(object):
if extra_grpc_services is None:
extra_grpc_services = []
- self._version = version
self.use_log_files = use_log_files
self.suppress_version_check = suppress_version_check
self._pdisk_store_path = pdisk_store_path
@@ -184,7 +181,7 @@ class KikimrConfigGenerator(object):
self._pdisks_info = []
if self.__grpc_ssl_enable:
self.__grpc_tls_data_path = grpc_tls_data_path or yatest_common.output_path()
- cert_pem, key_pem = tls_tools.generate_selfsigned_cert(get_fqdn())
+ cert_pem, key_pem = tls_tools.generate_selfsigned_cert(_get_fqdn())
self.__grpc_tls_ca = cert_pem
self.__grpc_tls_key = key_pem
self.__grpc_tls_cert = cert_pem
@@ -204,20 +201,19 @@ class KikimrConfigGenerator(object):
self.state_storage_rings = state_storage_rings
if self.state_storage_rings is None:
self.state_storage_rings = copy.deepcopy(self.__node_ids[: 9 if erasure == Erasure.MIRROR_3_DC else 8])
- self.__use_in_memory_pdisks = use_in_memory_pdisks_var(pdisk_store_path, use_in_memory_pdisks)
+ self.__use_in_memory_pdisks = _use_in_memory_pdisks_var(pdisk_store_path, use_in_memory_pdisks)
self.__pdisks_directory = os.getenv('YDB_PDISKS_DIRECTORY')
self.static_erasure = erasure
self.domain_name = domain_name
self.__number_of_pdisks_per_node = 1 + len(dynamic_pdisks)
self.__load_udfs = load_udfs
self.__udfs_path = udfs_path
- self.__slot_count = slot_count
self._dcs = [1]
if erasure == Erasure.MIRROR_3_DC:
self._dcs = [1, 2, 3]
self.__additional_log_configs = {} if additional_log_configs is None else additional_log_configs
- self.__additional_log_configs.update(get_additional_log_configs())
+ self.__additional_log_configs.update(_get_additional_log_configs())
if pg_compatible_expirement:
self.__additional_log_configs.update({
'PGWIRE': LogLevels.from_string('DEBUG'),
@@ -236,7 +232,7 @@ class KikimrConfigGenerator(object):
self.__bs_cache_file_path = bs_cache_file_path
- self.yaml_config = load_default_yaml(self.__node_ids, self.domain_name, self.static_erasure, self.__additional_log_configs)
+ self.yaml_config = _load_default_yaml(self.__node_ids, self.domain_name, self.static_erasure, self.__additional_log_configs)
if overrided_actor_system_config:
self.yaml_config["actor_system_config"] = overrided_actor_system_config
diff --git a/ydb/tests/library/harness/kikimr_runner.py b/ydb/tests/library/harness/kikimr_runner.py
index 875f505f7a8..ed7a8fb80da 100644
--- a/ydb/tests/library/harness/kikimr_runner.py
+++ b/ydb/tests/library/harness/kikimr_runner.py
@@ -216,10 +216,6 @@ class KiKiMRNode(daemon.Daemon, kikimr_node_interface.NodeInterface):
return 'localhost'
@property
- def hostname(self):
- return kikimr_config.get_fqdn()
-
- @property
def port(self):
return self.grpc_port
@@ -380,19 +376,16 @@ class KiKiMR(kikimr_cluster_interface.KiKiMRClusterInterface):
)
return self._nodes[node_index]
- def register_slots(self, database, count=1, encryption_key=None):
- return [self.register_slot(database, encryption_key) for _ in range(count)]
+ def __register_slots(self, database, count=1, encryption_key=None):
+ return [self.__register_slot(database, encryption_key) for _ in range(count)]
def register_and_start_slots(self, database, count=1, encryption_key=None):
- slots = self.register_slots(database, count, encryption_key)
+ slots = self.__register_slots(database, count, encryption_key)
for slot in slots:
slot.start()
return slots
- def register_slot(self, tenant_affiliation=None, encryption_key=None):
- return self._register_slot(tenant_affiliation, encryption_key)
-
- def _register_slot(self, tenant_affiliation=None, encryption_key=None):
+ def __register_slot(self, tenant_affiliation=None, encryption_key=None):
slot_index = next(self._slot_index_allocator)
node_broker_port = (
self.nodes[1].grpc_ssl_port if self.__configurator.grpc_ssl_enable
@@ -412,12 +405,12 @@ class KiKiMR(kikimr_cluster_interface.KiKiMRClusterInterface):
)
return self._slots[slot_index]
- def unregister_slots(self, slots):
+ def __unregister_slots(self, slots):
for i in slots:
del self._slots[i.node_id]
def unregister_and_stop_slots(self, slots):
- self.unregister_slots(slots)
+ self.__unregister_slots(slots)
for i in slots:
i.stop()