mirror of
https://framagit.org/framasoft/framaspace/argos.git
synced 2025-04-28 18:02:41 +02:00
🔀 Merge branch 'luc/server-config-options' into 'main'
✨ — Config file option on almost all server commands
See merge request framasoft/framaspace/argos!44
This commit is contained in:
commit
358f6dcd70
2 changed files with 47 additions and 11 deletions
|
@ -87,7 +87,13 @@ def agent(server_url, auth, max_tasks, wait_time, log_level):
|
||||||
@server.command()
|
@server.command()
|
||||||
@click.option("--host", default="127.0.0.1", help="Host to bind")
|
@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("--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 of the configuration file. "
|
||||||
|
"If ARGOS_YAML_FILE environment variable is set, its value will be used instead.",
|
||||||
|
envvar="ARGOS_YAML_FILE",
|
||||||
|
)
|
||||||
@click.option("--reload", is_flag=True, help="Enable hot reloading")
|
@click.option("--reload", is_flag=True, help="Enable hot reloading")
|
||||||
def start(host, port, config, reload):
|
def start(host, port, config, reload):
|
||||||
"""Starts the server (use only for testing or development!)
|
"""Starts the server (use only for testing or development!)
|
||||||
|
@ -128,8 +134,15 @@ def validate_max_results(ctx, param, value):
|
||||||
),
|
),
|
||||||
callback=validate_max_lock_seconds,
|
callback=validate_max_lock_seconds,
|
||||||
)
|
)
|
||||||
|
@click.option(
|
||||||
|
"--config",
|
||||||
|
default="config.yaml",
|
||||||
|
help="Path of the configuration file. "
|
||||||
|
"If ARGOS_YAML_FILE environment variable is set, its value will be used instead.",
|
||||||
|
envvar="ARGOS_YAML_FILE",
|
||||||
|
)
|
||||||
@coroutine
|
@coroutine
|
||||||
async def cleandb(max_results, max_lock_seconds):
|
async def cleandb(max_results, max_lock_seconds, config):
|
||||||
"""Clean the database (to run routinely)
|
"""Clean the database (to run routinely)
|
||||||
|
|
||||||
\b
|
\b
|
||||||
|
@ -139,6 +152,8 @@ async def cleandb(max_results, max_lock_seconds):
|
||||||
# The imports are made here otherwise the agent will need server configuration files.
|
# The imports are made here otherwise the agent will need server configuration files.
|
||||||
from argos.server import queries
|
from argos.server import queries
|
||||||
|
|
||||||
|
os.environ["ARGOS_YAML_FILE"] = config
|
||||||
|
|
||||||
db = await get_db()
|
db = await get_db()
|
||||||
removed = await queries.remove_old_results(db, max_results)
|
removed = await queries.remove_old_results(db, max_results)
|
||||||
updated = await queries.release_old_locks(db, max_lock_seconds)
|
updated = await queries.release_old_locks(db, max_lock_seconds)
|
||||||
|
@ -147,15 +162,24 @@ async def cleandb(max_results, max_lock_seconds):
|
||||||
click.echo(f"{updated} locks released")
|
click.echo(f"{updated} locks released")
|
||||||
|
|
||||||
|
|
||||||
@server.command()
|
@server.command(short_help="Load or reload tasks’ configuration")
|
||||||
|
@click.option(
|
||||||
|
"--config",
|
||||||
|
default="config.yaml",
|
||||||
|
help="Path of the configuration file. "
|
||||||
|
"If ARGOS_YAML_FILE environment variable is set, its value will be used instead.",
|
||||||
|
envvar="ARGOS_YAML_FILE",
|
||||||
|
)
|
||||||
@coroutine
|
@coroutine
|
||||||
async def reload_config():
|
async def reload_config(config):
|
||||||
"""Read tasks configuration and add/delete tasks in database if needed"""
|
"""Read tasks’ configuration and add/delete tasks in database if needed"""
|
||||||
# The imports are made here otherwise the agent will need server configuration files.
|
# The imports are made here otherwise the agent will need server configuration files.
|
||||||
from argos.server import queries
|
from argos.server import queries
|
||||||
from argos.server.main import get_application, read_config
|
from argos.server.main import get_application, read_config
|
||||||
from argos.server.settings import get_app_settings
|
from argos.server.settings import get_app_settings
|
||||||
|
|
||||||
|
os.environ["ARGOS_YAML_FILE"] = config
|
||||||
|
|
||||||
appli = get_application()
|
appli = get_application()
|
||||||
settings = get_app_settings()
|
settings = get_app_settings()
|
||||||
config = read_config(appli, settings)
|
config = read_config(appli, settings)
|
||||||
|
@ -168,12 +192,21 @@ async def reload_config():
|
||||||
|
|
||||||
|
|
||||||
@server.command()
|
@server.command()
|
||||||
|
@click.option(
|
||||||
|
"--config",
|
||||||
|
default="config.yaml",
|
||||||
|
help="Path of the configuration file. "
|
||||||
|
"If ARGOS_YAML_FILE environment variable is set, its value will be used instead.",
|
||||||
|
envvar="ARGOS_YAML_FILE",
|
||||||
|
)
|
||||||
@coroutine
|
@coroutine
|
||||||
async def migrate():
|
async def migrate(config):
|
||||||
"""Run database migrations"""
|
"""Run database migrations"""
|
||||||
# The imports are made here otherwise the agent will need server configuration files.
|
# The imports are made here otherwise the agent will need server configuration files.
|
||||||
from argos.server.settings import get_app_settings
|
from argos.server.settings import get_app_settings
|
||||||
|
|
||||||
|
os.environ["ARGOS_YAML_FILE"] = config
|
||||||
|
|
||||||
settings = get_app_settings()
|
settings = get_app_settings()
|
||||||
|
|
||||||
alembic_cfg = Config("alembic.ini")
|
alembic_cfg = Config("alembic.ini")
|
||||||
|
@ -181,7 +214,7 @@ async def migrate():
|
||||||
command.upgrade(alembic_cfg, "head")
|
command.upgrade(alembic_cfg, "head")
|
||||||
|
|
||||||
|
|
||||||
@server.command()
|
@server.command(short_help="Generate a token for agents")
|
||||||
@coroutine
|
@coroutine
|
||||||
async def generate_token():
|
async def generate_token():
|
||||||
"""Generate a token, which can be used as an agent’s authentication token.
|
"""Generate a token, which can be used as an agent’s authentication token.
|
||||||
|
|
|
@ -105,7 +105,7 @@ Usage: argos server start [OPTIONS]
|
||||||
Options:
|
Options:
|
||||||
--host TEXT Host to bind
|
--host TEXT Host to bind
|
||||||
--port INTEGER Port to bind
|
--port INTEGER Port to bind
|
||||||
--config TEXT Path the the configuration file
|
--config TEXT Path of the configuration file
|
||||||
--reload Enable hot reloading
|
--reload Enable hot reloading
|
||||||
--help Show this message and exit.
|
--help Show this message and exit.
|
||||||
```
|
```
|
||||||
|
@ -126,6 +126,7 @@ Usage: argos server migrate [OPTIONS]
|
||||||
Run database migrations
|
Run database migrations
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
--config TEXT Path of the configuration file
|
||||||
--help Show this message and exit.
|
--help Show this message and exit.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -133,7 +134,7 @@ Options:
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
||||||
### Server clean
|
### Server cleandb
|
||||||
<!--
|
<!--
|
||||||
.. [[[cog
|
.. [[[cog
|
||||||
help(["server", "cleandb", "--help"])
|
help(["server", "cleandb", "--help"])
|
||||||
|
@ -152,6 +153,7 @@ Options:
|
||||||
--max-lock-seconds INTEGER The number of seconds after which a lock is
|
--max-lock-seconds INTEGER The number of seconds after which a lock is
|
||||||
considered stale, must be higher than 60 (the
|
considered stale, must be higher than 60 (the
|
||||||
checks have a timeout value of 60 seconds)
|
checks have a timeout value of 60 seconds)
|
||||||
|
--config TEXT Path of the configuration file
|
||||||
--help Show this message and exit.
|
--help Show this message and exit.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -171,6 +173,7 @@ Usage: argos server reload-config [OPTIONS]
|
||||||
Read tasks configuration and add/delete tasks in database if needed
|
Read tasks configuration and add/delete tasks in database if needed
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
|
--config TEXT Path of the configuration file
|
||||||
--help Show this message and exit.
|
--help Show this message and exit.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue