Skip to content

configuration

drunc.process_manager.configuration

Functions

get_commandline_parameters(config_filename, session_dal, session_name, obj)

Build CLI arguments used to launch a process manager application.

The control endpoint is derived from the first service exposed by obj whose id ends with "_control". If no such service is present, defaults are kept (empty protocol and port -1), matching existing behavior.

Parameters:

Name Type Description Default
config_filename str

OKS configuration filename/path passed to -d.

required
session_dal Session

Session DAL object containing session metadata and log level.

required
session_name str

Runtime session name passed to -s.

required
obj Any

DAL object (application/controller) being launched.

required

Returns:

Type Description
list[str]

Ordered list of command-line arguments for process launch.

Source code in drunc/process_manager/configuration.py
def get_commandline_parameters(
    config_filename: str,
    session_dal: "conffwk.dal.Session",
    session_name: str,
    obj: Any,
) -> list[str]:
    """
    Build CLI arguments used to launch a process manager application.

    The control endpoint is derived from the first service exposed by ``obj`` whose
    id ends with ``"_control"``. If no such service is present, defaults are kept
    (empty protocol and port ``-1``), matching existing behavior.

    Args:
        config_filename: OKS configuration filename/path passed to ``-d``.
        session_dal: Session DAL object containing session metadata and log level.
        session_name: Runtime session name passed to ``-s``.
        obj: DAL object (application/controller) being launched.

    Returns:
        Ordered list of command-line arguments for process launch.
    """
    runs_on = obj.runs_on.runs_on.id
    control_service_port = -1
    control_service_protocol = ""
    for svc in obj.exposes_service:
        if svc.id.endswith("_control"):
            control_service_port = svc.port
            control_service_protocol = svc.protocol
            break

    commandline_parameters = [
        "-s",
        session_name,
        "-k",
        session_dal.id,
        "-n",
        obj.id,
        "-c",
        f"{control_service_protocol}://{runs_on}:{control_service_port}",
        "-d",
        config_filename,
    ]
    if "RCApplication" in obj.oksTypes():
        commandline_parameters += [
            "-l",
            session_dal.controller_log_level,
        ]

    return commandline_parameters