72 lines
2.3 KiB
Python
Raw Normal View History

2024-12-13 15:58:25 +08:00
import inspect
import os
import shutil
2024-12-13 15:58:25 +08:00
import pytest
from src.env_vars import CFGSYNC, NOMOS, NOMOS_EXECUTOR
2024-12-13 15:58:25 +08:00
from src.libs.custom_logger import get_custom_logger
from src.node.nomos_node import NomosNode
logger = get_custom_logger(__name__)
def prepare_cluster_config(node_count):
cwd = os.getcwd()
config_dir = "cluster_config"
src = f"{cwd}/{config_dir}/cfgsync-{node_count}node.yaml"
dst = f"{cwd}/{config_dir}/cfgsync.yaml"
shutil.copyfile(src, dst)
2025-01-22 15:40:38 +08:00
def start_nodes(nodes):
for node in nodes:
node.start()
def ensure_nodes_ready(nodes):
for node in nodes:
node.ensure_ready()
2024-12-13 15:58:25 +08:00
class StepsCommon:
2025-01-17 14:50:10 +08:00
@pytest.fixture(scope="function", autouse=True)
def cluster_setup(self):
logger.debug(f"Running fixture setup: {inspect.currentframe().f_code.co_name}")
self.main_nodes = []
2024-12-13 15:58:25 +08:00
@pytest.fixture(scope="function")
def setup_2_node_cluster(self, request):
2024-12-13 15:58:25 +08:00
logger.debug(f"Running fixture setup: {inspect.currentframe().f_code.co_name}")
prepare_cluster_config(2)
2025-01-16 19:52:36 +08:00
self.node1 = NomosNode(CFGSYNC, "cfgsync")
self.node2 = NomosNode(NOMOS, "nomos_node_0")
self.node3 = NomosNode(NOMOS_EXECUTOR, "nomos_node_1")
self.main_nodes.extend([self.node1, self.node2, self.node3])
2025-01-22 15:40:38 +08:00
start_nodes(self.main_nodes)
2025-01-16 19:52:36 +08:00
try:
2025-01-22 15:40:38 +08:00
ensure_nodes_ready(self.main_nodes[2:])
2025-01-16 19:52:36 +08:00
except Exception as ex:
logger.error(f"REST service did not become ready in time: {ex}")
raise
@pytest.fixture(scope="function")
def setup_5_node_cluster(self, request):
logger.debug(f"Running fixture setup: {inspect.currentframe().f_code.co_name}")
prepare_cluster_config(5)
self.node1 = NomosNode(CFGSYNC, "cfgsync")
self.node2 = NomosNode(NOMOS, "nomos_node_0")
self.node3 = NomosNode(NOMOS, "nomos_node_1")
self.node4 = NomosNode(NOMOS, "nomos_node_2")
self.node5 = NomosNode(NOMOS, "nomos_node_3")
self.node6 = NomosNode(NOMOS_EXECUTOR, "nomos_node_4")
self.main_nodes.extend([self.node1, self.node2, self.node3, self.node4, self.node5, self.node6])
2025-01-22 15:40:38 +08:00
start_nodes(self.main_nodes)
try:
2025-01-22 15:40:38 +08:00
ensure_nodes_ready(self.main_nodes[2:])
except Exception as ex:
logger.error(f"REST service did not become ready in time: {ex}")
raise