From 51f248d1ab0012241b7dcea28a59ca86d3760ba8 Mon Sep 17 00:00:00 2001 From: Sylvain LE GAL Date: Wed, 27 Apr 2022 16:41:34 +0200 Subject: [PATCH] [FIX] allow to write on log folder inside containers --- README.md | 3 +++ ROADMAP.md | 4 ++++ odoo_openupgrade_wizard/cli.py | 10 +++++----- odoo_openupgrade_wizard/cli_init.py | 2 +- odoo_openupgrade_wizard/cli_run.py | 2 ++ odoo_openupgrade_wizard/templates.py | 3 --- odoo_openupgrade_wizard/tools_odoo.py | 7 ++++--- tests/cli_B_03_run_test.py | 14 +++++++------- 8 files changed, 26 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index dce4a69..e3fb016 100644 --- a/README.md +++ b/README.md @@ -142,3 +142,6 @@ if you want to build an image for some given releases, you can provide an extra ``` odoo-openupgrade-wizard docker-build --releases 10.0,12.0 ``` + + +## ``odoo-openupgrade-wizard run`` diff --git a/ROADMAP.md b/ROADMAP.md index 0b6395b..9c44505 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -4,3 +4,7 @@ - short_help of group decorator ? seems useless... * add constrains on ``--step`` option. + + +* revert : set 777 to log and filestore to be able to write on this folder + inside the containers. TODO, ask to coop it easy or commown for better alternative. diff --git a/odoo_openupgrade_wizard/cli.py b/odoo_openupgrade_wizard/cli.py index e55749d..ad027c2 100644 --- a/odoo_openupgrade_wizard/cli.py +++ b/odoo_openupgrade_wizard/cli.py @@ -59,14 +59,13 @@ def main(ctx, env_folder, filestore_folder): filestore_folder_path = Path(filestore_folder) # ensure log folder exists - ensure_folder_exists(log_folder_path, git_ignore_content=True) + ensure_folder_exists(log_folder_path, mode="777", git_ignore_content=True) # Create log file - log_file_path = log_folder_path / Path( - "{}__{}.log".format( - date_begin.strftime("%Y_%m_%d__%H_%M_%S"), ctx.invoked_subcommand - ) + log_prefix = "{}__{}".format( + date_begin.strftime("%Y_%m_%d__%H_%M_%S"), ctx.invoked_subcommand ) + log_file_path = log_folder_path / Path(log_prefix + ".log") logger.add(log_file_path) config_file_path = env_folder_path / Path("config.yml") @@ -76,6 +75,7 @@ def main(ctx, env_folder, filestore_folder): ctx.obj["src_folder_path"] = src_folder_path ctx.obj["script_folder_path"] = script_folder_path ctx.obj["log_folder_path"] = log_folder_path + ctx.obj["log_prefix"] = log_prefix ctx.obj["filestore_folder_path"] = filestore_folder_path ctx.obj["config_file_path"] = config_file_path diff --git a/odoo_openupgrade_wizard/cli_init.py b/odoo_openupgrade_wizard/cli_init.py index 1bec550..b88ead3 100644 --- a/odoo_openupgrade_wizard/cli_init.py +++ b/odoo_openupgrade_wizard/cli_init.py @@ -112,7 +112,7 @@ def init( # 4. ensure filestore folder exists ensure_folder_exists( - ctx.obj["filestore_folder_path"], git_ignore_content=True + ctx.obj["filestore_folder_path"], mode="777", git_ignore_content=True ) # 5. ensure main configuration file exists diff --git a/odoo_openupgrade_wizard/cli_run.py b/odoo_openupgrade_wizard/cli_run.py index f3778a4..965889e 100644 --- a/odoo_openupgrade_wizard/cli_run.py +++ b/odoo_openupgrade_wizard/cli_run.py @@ -39,6 +39,8 @@ def run(ctx, step, database, stop_after_init, init_modules): stop_after_init=stop_after_init, ) if not stop_after_init: + # todo, WRITE A TEXT TO SAY : the service is available on + # http://localhost:xxxx input("Press 'Enter' to kill the odoo container and exit ...") except (KeyboardInterrupt, SystemExit): logger.info("Received Keyboard Interrupt or System Exiting...") diff --git a/odoo_openupgrade_wizard/templates.py b/odoo_openupgrade_wizard/templates.py index 9549cda..9dc4dc0 100644 --- a/odoo_openupgrade_wizard/templates.py +++ b/odoo_openupgrade_wizard/templates.py @@ -98,9 +98,6 @@ RUN apt-get update || true &&\ RUN {{ odoo_version["python_major_version"] }}\ -m pip install -r python_requirements.txt - -# VOLUME ["/var/lib/odoo2"] - # Reset to odoo user to run the container USER odoo """ diff --git a/odoo_openupgrade_wizard/tools_odoo.py b/odoo_openupgrade_wizard/tools_odoo.py index b5c1dd4..b24b701 100644 --- a/odoo_openupgrade_wizard/tools_odoo.py +++ b/odoo_openupgrade_wizard/tools_odoo.py @@ -83,8 +83,9 @@ def generate_odoo_command( stop_after_init_cmd = stop_after_init and "--stop-after-init" or "" shell_cmd = shell and "shell" or "" demo_cmd = not demo and "--without-demo all" or "" - # TODO, FIXME - # log_file = "/env/log/%s" % "log.log" + log_file = "/env/log/{}____{}.log".format( + ctx.obj["log_prefix"], migration_step["complete_name"] + ) result = ( f"/odoo_env/src/odoo/odoo-bin" f" --db_host db" @@ -94,7 +95,7 @@ def generate_odoo_command( f" --workers 0" f" --config /odoo_env/odoo.cfg" # f" --data-dir /env/filestore/" - # f" --logfile {log_file}" + f" --logfile {log_file}" f" --addons-path {addons_path}" f" {database_cmd}" f" {update_cmd}" diff --git a/tests/cli_B_03_run_test.py b/tests/cli_B_03_run_test.py index a356509..38ecaaa 100644 --- a/tests/cli_B_03_run_test.py +++ b/tests/cli_B_03_run_test.py @@ -1,8 +1,8 @@ from pathlib import Path -from . import cli_runner_invoke +from odoo_openupgrade_wizard.tools_docker import get_docker_client -# from odoo_openupgrade_wizard.tools_docker import get_docker_client +from . import cli_runner_invoke def test_cli_run(): @@ -27,8 +27,8 @@ def test_cli_run(): # assert db_filestore_path.exists() - # # Ensure that all the containers are removed - # docker_client = get_docker_client() - # assert not docker_client.containers.list( - # all=True, filters={"name": "odoo-openupgrade-wizard"} - # ) + # Ensure that all the containers are removed + docker_client = get_docker_client() + assert not docker_client.containers.list( + all=True, filters={"name": "odoo-openupgrade-wizard"} + )