From 8b3a8dd153191d6aa818b1da5167abf520d97887 Mon Sep 17 00:00:00 2001 From: Luc Didry Date: Thu, 11 Apr 2024 09:12:01 +0200 Subject: [PATCH 1/3] =?UTF-8?q?=E2=9C=A8=20=E2=80=94=20Config=20file=20opt?= =?UTF-8?q?ion=20on=20almost=20all=20server=20commands?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- argos/commands.py | 37 +++++++++++++++++++++++++++++++++---- docs/cli.md | 5 ++++- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/argos/commands.py b/argos/commands.py index ca87647..691edde 100644 --- a/argos/commands.py +++ b/argos/commands.py @@ -87,7 +87,12 @@ def agent(server_url, auth, max_tasks, wait_time, log_level): @server.command() @click.option("--host", default="127.0.0.1", help="Host to bind") @click.option("--port", default=8000, type=int, help="Port to bind") -@click.option("--config", default="config.yaml", help="Path the the configuration file") +@click.option( + "--config", + default="config.yaml", + help="Path the the configuration file", + envvar="ARGOS_YAML_FILE", +) @click.option("--reload", is_flag=True, help="Enable hot reloading") def start(host, port, config, reload): """Starts the server""" @@ -124,8 +129,14 @@ def validate_max_results(ctx, param, value): ), callback=validate_max_lock_seconds, ) +@click.option( + "--config", + default="config.yaml", + help="Path the the configuration file", + envvar="ARGOS_YAML_FILE", +) @coroutine -async def cleandb(max_results, max_lock_seconds): +async def cleandb(max_results, max_lock_seconds, config): """Clean the database (to run routinely) \b @@ -135,6 +146,8 @@ async def cleandb(max_results, max_lock_seconds): # The imports are made here otherwise the agent will need server configuration files. from argos.server import queries + os.environ["ARGOS_YAML_FILE"] = config + db = await get_db() removed = await queries.remove_old_results(db, max_results) updated = await queries.release_old_locks(db, max_lock_seconds) @@ -144,14 +157,22 @@ async def cleandb(max_results, max_lock_seconds): @server.command() +@click.option( + "--config", + default="config.yaml", + help="Path the the configuration file", + envvar="ARGOS_YAML_FILE", +) @coroutine -async def reload_config(): +async def reload_config(config): """Read tasks configuration and add/delete tasks in database if needed""" # The imports are made here otherwise the agent will need server configuration files. from argos.server import queries from argos.server.main import get_application, read_config from argos.server.settings import get_app_settings + os.environ["ARGOS_YAML_FILE"] = config + appli = get_application() settings = get_app_settings() config = read_config(appli, settings) @@ -164,12 +185,20 @@ async def reload_config(): @server.command() +@click.option( + "--config", + default="config.yaml", + help="Path the the configuration file", + envvar="ARGOS_YAML_FILE", +) @coroutine -async def migrate(): +async def migrate(config): """Run database migrations""" # The imports are made here otherwise the agent will need server configuration files. from argos.server.settings import get_app_settings + os.environ["ARGOS_YAML_FILE"] = config + settings = get_app_settings() alembic_cfg = Config("alembic.ini") diff --git a/docs/cli.md b/docs/cli.md index 472f8d6..92f3dc2 100644 --- a/docs/cli.md +++ b/docs/cli.md @@ -122,6 +122,7 @@ Usage: argos server migrate [OPTIONS] Run database migrations Options: + --config TEXT Path the the configuration file --help Show this message and exit. ``` @@ -129,7 +130,7 @@ Options: --> -### Server clean +### Server cleandb