jobflow_remote.cli.runner module#

jobflow_remote.cli.runner.foreground() None[source]#

Connect to the daemon processes in the foreground.

jobflow_remote.cli.runner.info(verbosity: Annotated[int, <typer.models.OptionInfo object at 0x7fbc792f6f10>]=0, pings: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0dd0>]=False) None[source]#

Fetch the information about the process of the daemon. Contain the supervisord process and the processes running the Runner.

jobflow_remote.cli.runner.kill(wait: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0810>]=False, all_projects: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0850>]=False, json_out: Annotated[str | None, <typer.models.OptionInfo object at 0x7fbc733b0890>]=None, max_wait: Annotated[int, <typer.models.OptionInfo object at 0x7fbc733b09d0>]=120) None[source]#

Send a kill signal to the Runner processes. By default, return immediately and do not wait for processes to be killed.

jobflow_remote.cli.runner.reset(yes_all: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc792f7dd0>]=False, force_deprecated: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc792f7bd0>]=False, break_lock: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc793186d0>]=False) None[source]#

Reset the value of the machine executing the runner from the database. Should be executed only if it is certain that the runner is not active on that machine anymore.

jobflow_remote.cli.runner.restart() None[source]#

Restart the runner. Send a stop signal, wait for the runner to stop and restart it. The options to start the runner (e.g. –single) remain the same.

jobflow_remote.cli.runner.run(log_level: LogLevel, <typer.models.OptionInfo object at 0x7fbc792f7150>]=LogLevel.INFO, set_pid: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f6690>]=False, transfer: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f6d50>]=False, complete: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f6450>]=False, queue: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f72d0>]=False, checkout: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f7590>]=False, connect_interactive: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f7fd0>]=False, daemonized: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f0490>]=False) None[source]#

Execute the Runner in the foreground. Do NOT execute this to start as a daemon. Should be used by the daemon or for testing purposes.

jobflow_remote.cli.runner.shutdown(wait: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0c10>]=False, all_projects: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0c50>]=False, json_out: Annotated[str | None, <typer.models.OptionInfo object at 0x7fbc733b0690>]=None, max_wait: Annotated[int, <typer.models.OptionInfo object at 0x7fbc733b0d10>]=120) None[source]#

Shuts down the supervisord process. Note that the supervisord process will stop after all the runner processes have finished

jobflow_remote.cli.runner.start(transfer: Annotated[int, <typer.models.OptionInfo object at 0x7fbc733f3a50>]=1, complete: Annotated[int, <typer.models.OptionInfo object at 0x7fbc733f3ad0>]=1, single: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f3cd0>]=False, log_level: LogLevel, <typer.models.OptionInfo object at 0x7fbc792f7150>]=LogLevel.INFO, connect_interactive: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733f3b10>]=False) None[source]#

Start the Runner as a daemon.

jobflow_remote.cli.runner.status() None[source]#

Fetch the status of the daemon runner.

jobflow_remote.cli.runner.stop(wait: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0550>]=False, all_projects: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0590>]=False, json_out: Annotated[str | None, <typer.models.OptionInfo object at 0x7fbc733b0650>]=None, max_wait: Annotated[int, <typer.models.OptionInfo object at 0x7fbc733b06d0>]=120) None[source]#

Shuts down the supervisord process. Note that the supervisord process will stop after all the runner processes have finished.

jobflow_remote.cli.runner.stop_processes(wait: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc73425490>]=False, all_projects: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc7339b3d0>]=False, json_out: Annotated[str | None, <typer.models.OptionInfo object at 0x7fbc733b0450>]=None, max_wait: Annotated[int, <typer.models.OptionInfo object at 0x7fbc733b0490>]=120) None[source]#

Send a stop signal to the Runner processes. Each of the Runner processes will stop when finished the task being executed. By default, return immediately.

jobflow_remote.cli.runner.update_status(log_level: LogLevel, <typer.models.OptionInfo object at 0x7fbc792f7150>]=LogLevel.INFO, set_pid: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0f90>]=False, connect_interactive: Annotated[bool, <typer.models.OptionInfo object at 0x7fbc733b0fd0>]=False) None[source]#

Update the “submitted” and “running” states of jobs, flows and batches.

This command updates the “submitted” and “running” states of jobs, flows, and batches. It does not perform submissions, uploads, downloads, or any other side-effecting actions.

  • Only jobs in a SUBMITTED, BATCH_SUBMITTED, RUNNING, or BATCH_RUNNING state are updated.

  • Flows currently do not change state (though this may be extended in the future).

  • Batch jobs in SUBMITTED or RUNNING states are updated.

This command is primarily intended for upgrade scenarios where: - The runner must reflect the latest job statuses. - No new jobs should be submitted. - Actions such as uploads or database insertions are intentionally skipped.

Note that this command should be run only when the runner is stopped to avoid inconsistent states.