From 805e5e6c22243d98077b08899bdd61627476b304 Mon Sep 17 00:00:00 2001 From: Shreya Date: Mon, 17 May 2021 17:42:25 +0530 Subject: [PATCH] Restructure code for creating default data directory and server config --- monkey/monkey_island.py | 5 +++-- .../cc/environment/data_dir_generator.py | 13 +++++++++++++ .../cc/environment/server_config_generator.py | 16 ++++++++++++++-- monkey/monkey_island/cc/setup.py | 6 ------ monkey/monkey_island/config_loader.py | 11 +---------- 5 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 monkey/monkey_island/cc/environment/data_dir_generator.py diff --git a/monkey/monkey_island.py b/monkey/monkey_island.py index 4f28bc606..55a6d0475 100644 --- a/monkey/monkey_island.py +++ b/monkey/monkey_island.py @@ -7,9 +7,10 @@ gevent_monkey.patch_all() import json # noqa: E402 import os # noqa: E402 +import monkey_island.cc.environment.server_config_generator as server_config_generator # noqa: E402 from monkey_island import config_loader # noqa: E402 +from monkey_island.cc.environment.data_dir_generator import create_data_dir # noqa: E402 from monkey_island.cc.server_utils.island_logger import setup_logging # noqa: E402 -from monkey_island.cc.setup import create_data_dir # noqa: E402 if "__main__" == __name__: island_args = parse_cli_args() @@ -20,7 +21,7 @@ if "__main__" == __name__: if island_args.server_config: server_config_path = os.path.expanduser(island_args.server_config) else: - server_config_path = config_loader.create_default_server_config_path() + server_config_path = server_config_generator.create_default_server_config_file() config = config_loader.load_server_config_from_file(server_config_path) diff --git a/monkey/monkey_island/cc/environment/data_dir_generator.py b/monkey/monkey_island/cc/environment/data_dir_generator.py new file mode 100644 index 000000000..efbec857f --- /dev/null +++ b/monkey/monkey_island/cc/environment/data_dir_generator.py @@ -0,0 +1,13 @@ +import os + +from monkey_island.cc.server_utils.consts import DEFAULT_DATA_DIR + + +def create_data_dir(data_dir: str) -> None: + if not os.path.isdir(data_dir): + os.makedirs(data_dir, mode=0o700) + + +def create_default_data_dir() -> None: + if not os.path.isdir(DEFAULT_DATA_DIR): + os.mkdir(DEFAULT_DATA_DIR, mode=0o700) diff --git a/monkey/monkey_island/cc/environment/server_config_generator.py b/monkey/monkey_island/cc/environment/server_config_generator.py index 211b745c5..45dde6f78 100644 --- a/monkey/monkey_island/cc/environment/server_config_generator.py +++ b/monkey/monkey_island/cc/environment/server_config_generator.py @@ -1,8 +1,20 @@ +import os from pathlib import Path -from monkey_island.cc.server_utils.consts import DEFAULT_DEVELOP_SERVER_CONFIG_PATH +from monkey_island.cc.environment.data_dir_generator import create_default_data_dir +from monkey_island.cc.server_utils.consts import ( + DEFAULT_DEVELOP_SERVER_CONFIG_PATH, + DEFAULT_SERVER_CONFIG_PATH, +) -def create_default_config_file(path): +def create_default_server_config_file() -> str: + if not os.path.isfile(DEFAULT_SERVER_CONFIG_PATH): + create_default_data_dir() + write_default_server_config_to_file(DEFAULT_SERVER_CONFIG_PATH) + return DEFAULT_SERVER_CONFIG_PATH + + +def write_default_server_config_to_file(path: str) -> None: default_config = Path(DEFAULT_DEVELOP_SERVER_CONFIG_PATH).read_text() Path(path).write_text(default_config) diff --git a/monkey/monkey_island/cc/setup.py b/monkey/monkey_island/cc/setup.py index fbe709dec..a03c554be 100644 --- a/monkey/monkey_island/cc/setup.py +++ b/monkey/monkey_island/cc/setup.py @@ -1,5 +1,4 @@ import logging -import os from pymongo import errors @@ -50,8 +49,3 @@ def store_mitigations_on_mongo(): ) for key, mongo_object in mongo_mitigations.items(): mongo_object.save() - - -def create_data_dir(data_dir): - if not os.path.isdir(data_dir): - os.makedirs(data_dir, mode=0o700) diff --git a/monkey/monkey_island/config_loader.py b/monkey/monkey_island/config_loader.py index 036be2c69..aaa9185d7 100644 --- a/monkey/monkey_island/config_loader.py +++ b/monkey/monkey_island/config_loader.py @@ -1,20 +1,11 @@ import json import os -import monkey_island.cc.environment.server_config_generator as server_config_generator -from monkey_island.cc.server_utils.consts import DEFAULT_DATA_DIR, DEFAULT_SERVER_CONFIG_PATH +from monkey_island.cc.server_utils.consts import DEFAULT_DATA_DIR DEFAULT_LOG_LEVEL = "INFO" -def create_default_server_config_path(): - if not os.path.isfile(DEFAULT_SERVER_CONFIG_PATH): - if not os.path.isdir(DEFAULT_DATA_DIR): - os.mkdir(DEFAULT_DATA_DIR, mode=0o700) - server_config_generator.create_default_config_file(DEFAULT_SERVER_CONFIG_PATH) - return DEFAULT_SERVER_CONFIG_PATH - - def load_server_config_from_file(server_config_path): with open(server_config_path, "r") as f: config_content = f.read()