From 50af5dcedd36640569dd14dccee45057e1aa4222 Mon Sep 17 00:00:00 2001 From: badrogger Date: Wed, 11 Sep 2024 12:49:50 +0000 Subject: [PATCH 1/4] Save docker group id --- node_cli/configs/__init__.py | 1 + node_cli/core/docker_config.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/node_cli/configs/__init__.py b/node_cli/configs/__init__.py index 36f89004..a4f046af 100644 --- a/node_cli/configs/__init__.py +++ b/node_cli/configs/__init__.py @@ -161,3 +161,4 @@ def _get_env(): TELEGRAF_TEMPLATE_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'telegraf.conf.j2') TELEGRAF_CONFIG_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'telegraf.conf') +NODE_DOCKER_CONFIG_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'docker.json') diff --git a/node_cli/core/docker_config.py b/node_cli/core/docker_config.py index 5b1470c1..d5241be3 100644 --- a/node_cli/core/docker_config.py +++ b/node_cli/core/docker_config.py @@ -1,3 +1,4 @@ +import grp import enum import json import logging @@ -14,7 +15,8 @@ DOCKER_SERVICE_CONFIG_DIR, DOCKER_SERVICE_CONFIG_PATH, DOCKER_SOCKET_PATH, - SKALE_RUN_DIR + NODE_DOCKER_CONFIG_PATH, + SKALE_RUN_DIR, ) from node_cli.utils.helper import run_cmd from node_cli.utils.docker_utils import docker_client, get_containers @@ -26,6 +28,15 @@ Path = typing.Union[str, pathlib.Path] +def get_docker_group_id() -> int: + return grp.getgrnam('docker').gr_gid + + +def save_docker_group_id(group_id: int, path: Optional[Path] = NODE_DOCKER_CONFIG_PATH) -> None: + with open(path, 'w') as node_docker_config: + json.dump({'docker_group_id': group_id}, node_docker_config) + + def get_content(filename: Path) -> Optional[str]: if not os.path.isfile(filename): return None @@ -189,4 +200,8 @@ def configure_docker() -> None: restart_docker_service() wait_for_socket_initialization() + logger.info('Saving docker group id') + group_id = get_docker_group_id() + save_docker_group_id(group_id) + logger.info('Docker configuration finished') From 254009b67c4c7f12421867edc17c48d94bf481f9 Mon Sep 17 00:00:00 2001 From: badrogger Date: Wed, 11 Sep 2024 17:27:12 +0000 Subject: [PATCH 2/4] Fix docker node config filepath --- node_cli/configs/__init__.py | 2 +- node_cli/operations/base.py | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/node_cli/configs/__init__.py b/node_cli/configs/__init__.py index a4f046af..8c4ebc0c 100644 --- a/node_cli/configs/__init__.py +++ b/node_cli/configs/__init__.py @@ -161,4 +161,4 @@ def _get_env(): TELEGRAF_TEMPLATE_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'telegraf.conf.j2') TELEGRAF_CONFIG_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'telegraf.conf') -NODE_DOCKER_CONFIG_PATH = os.path.join(CONTAINER_CONFIG_PATH, 'docker.json') +NODE_DOCKER_CONFIG_PATH = os.path.join(NODE_DATA_PATH, 'docker.json') diff --git a/node_cli/operations/base.py b/node_cli/operations/base.py index 557d1632..9a5acda0 100644 --- a/node_cli/operations/base.py +++ b/node_cli/operations/base.py @@ -281,6 +281,9 @@ def turn_off(): def turn_on(env): logger.info('Turning on the node...') + if env.get('SKIP_DOCKER_CONFIG') != 'True': + configure_docker() + logger.info('Launching containers on the node...') compose_up(env) From c7655f10ad755d63fd4d49515eee56f67dd828e9 Mon Sep 17 00:00:00 2001 From: badrogger Date: Wed, 11 Sep 2024 19:04:29 +0000 Subject: [PATCH 3/4] Add docker config group id test --- tests/core/host/docker_config_test.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/core/host/docker_config_test.py b/tests/core/host/docker_config_test.py index 3a4d3ce3..5a93331a 100644 --- a/tests/core/host/docker_config_test.py +++ b/tests/core/host/docker_config_test.py @@ -4,6 +4,7 @@ import shutil from contextlib import contextmanager from timeit import default_timer as timer +from node_cli.core.docker_config import get_docker_group_id, save_docker_group_id import pytest @@ -17,7 +18,8 @@ ensure_service_overriden_config, OverridenConfigExsitsError, SocketInitTimeoutError, - wait_for_socket_initialization + wait_for_socket_initialization, + NODE_DOCKER_CONFIG_PATH, ) @@ -151,3 +153,10 @@ def test_wait_for_socket_initialization(tmp_dir): pathlib.Path(socket_path).touch() with in_time(1): wait_for_socket_initialization(socket_path) + + +def test_get_save_group_id(): + gid = get_docker_group_id() + save_docker_group_id(gid) + with open(NODE_DOCKER_CONFIG_PATH) as config_path: + assert json.load(config_path)['docker_group_id'] == gid From ae3313d19d8bc499ceb6829e13724433f6fad99b Mon Sep 17 00:00:00 2001 From: badrogger Date: Thu, 12 Sep 2024 12:01:30 +0000 Subject: [PATCH 4/4] Bump version --- node_cli/cli/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node_cli/cli/__init__.py b/node_cli/cli/__init__.py index a5b99a0f..96368eff 100644 --- a/node_cli/cli/__init__.py +++ b/node_cli/cli/__init__.py @@ -1,4 +1,4 @@ -__version__ = '2.4.0' +__version__ = '2.4.1' if __name__ == "__main__": print(__version__)