Перейти к содержанию

Кластеры и серверы

Cluster

Cluster

Кластеры 1С: создание, настройка, администраторы.

Admin

Администраторы кластера.

list staticmethod

list(session: Session, cluster: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> list[RacRecord]

Возвращает список администраторов кластера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
list[RacRecord]

list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def list(
    session: Session,
    cluster: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> list[RacRecord]:
    """Возвращает список администраторов кластера.

    Args:
        cluster: Идентификатор (UUID) кластера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("cluster"),
            Arg("admin"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("list"),
        )
    ).to_list()

register staticmethod

register(session: Session, cluster: str, name: str, pwd: str | None = None, auth: str = 'pwd', descr: str | None = None, os_user: str | None = None, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Регистрирует администратора кластера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
name str

Имя администратора.

required
pwd str | None

Пароль администратора.

None
auth str

Способ аутентификации: pwd (пароль) или os (пользователь ОС).

'pwd'
descr str | None

Произвольное описание.

None
os_user str | None

Имя пользователя операционной системы при auth="os".

None
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def register(
    session: Session,
    cluster: str,
    name: str,
    pwd: str | None = None,
    auth: str = "pwd",
    descr: str | None = None,
    os_user: str | None = None,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Регистрирует администратора кластера.

    Args:
        cluster: Идентификатор (UUID) кластера.
        name: Имя администратора.
        pwd: Пароль администратора.
        auth: Способ аутентификации: ``pwd`` (пароль) или ``os`` (пользователь ОС).
        descr: Произвольное описание.
        os_user: Имя пользователя операционной системы при ``auth="os"``.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("cluster"),
            Arg("admin"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("register"),
            Arg(name, "--name={}"),
            Arg(pwd, "--pwd={}"),
            Arg(descr, "--descr={}"),
            Arg(auth, "--auth={}"),
            Arg(os_user, "--os-user={}"),
        )
    )

remove staticmethod

remove(session: Session, cluster: str, name: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Удаляет администратора кластера.

RAC не позволит удалить последнего администратора с разрешённой аутентификацией по паролю — такой случай приводит к :class:raclib.errors.AgentAdminCreateError.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
name str

Имя администратора.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def remove(
    session: Session,
    cluster: str,
    name: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Удаляет администратора кластера.

    RAC не позволит удалить последнего администратора с разрешённой аутентификацией по паролю — такой случай приводит к :class:`raclib.errors.AgentAdminCreateError`.

    Args:
        cluster: Идентификатор (UUID) кластера.
        name: Имя администратора.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("cluster"),
            Arg("admin"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("remove"),
            Arg(name, "--name={}"),
        ),
    )

info staticmethod

info(session: Session, cluster: str) -> RacRecord

Возвращает параметры кластера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required

Returns:

Type Description
RacRecord

dict[str, str | int]: одна запись RAC. Ключи соответствуют полям вывода, дефисы заменены на подчёркивания, числовые значения приведены к int.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def info(session: Session, cluster: str) -> RacRecord:
    """Возвращает параметры кластера.

    Args:
        cluster: Идентификатор (UUID) кластера.

    Returns:
        dict[str, str | int]: одна запись RAC. Ключи соответствуют полям вывода, дефисы заменены на подчёркивания, числовые значения приведены к ``int``.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("cluster"),
            Arg("info"),
            Arg(cluster, "--cluster={}"),
        )
    ).to_dict()

list staticmethod

list(session: Session) -> list[RacRecord]

Возвращает список кластеров, зарегистрированных у агента.

Returns:

Type Description
list[RacRecord]

list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def list(session: Session) -> list[RacRecord]:
    """Возвращает список кластеров, зарегистрированных у агента.

    Returns:
        list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("cluster"),
            Arg("list"),
        )
    ).to_list()

insert staticmethod

insert(session: Session, host: str, port: int, name: str | None = None, expiration_timeout: int = 60, lifetime_limit: int = 0, max_memory_size: int | None = None, max_memory_time_limit: int | None = None, security_level: str = 'disabled', session_fault_tolerance_level: int = 0, load_balancing_mode: str = 'performance', errors_count_threshold: int | None = None, kill_problem_processes: bool = True, kill_by_memory_with_dump: bool = False, allow_access_right_audit_events_recording: bool = False, ping_period: int = 0, ping_timeout: int = 0, agent_user: str | None = None, agent_pwd: str | None = None) -> str

Создаёт кластер и возвращает его идентификатор.

Для создания кластера нужны права администратора агента кластера, поэтому обычно передают agent_user и agent_pwd.

Parameters:

Name Type Description Default
host str

Имя хоста, на котором работает агент кластера.

required
port int

Порт агента кластера (по умолчанию 1540).

required
name str | None

Отображаемое имя кластера.

None
expiration_timeout int

Таймаут завершения сеансов, потерявших связь, в секундах.

60
lifetime_limit int

Максимальное время жизни сеанса в секундах; 0 — без ограничения.

0
max_memory_size int | None

Максимальный объём памяти рабочего процесса в КБ.

None
max_memory_time_limit int | None

Интервал проверки превышения памяти рабочим процессом в секундах.

None
security_level str

Уровень безопасности кластера: disabled, basic или integrity.

'disabled'
session_fault_tolerance_level int

Уровень отказоустойчивости сеансов: 0, 1 или 2.

0
load_balancing_mode str

Режим распределения нагрузки: performance или memory.

'performance'
errors_count_threshold int | None

Число ошибок, после которого рабочий процесс считается проблемным.

None
kill_problem_processes bool

Завершать проблемные рабочие процессы автоматически.

True
kill_by_memory_with_dump bool

Завершать процессы при превышении памяти, снимая дамп.

False
allow_access_right_audit_events_recording bool

Разрешить запись событий аудита доступа к данным.

False
ping_period int

Период проверки связи с рабочими процессами в секундах; 0 — автоматически.

0
ping_timeout int

Таймаут проверки связи с рабочими процессами в секундах; 0 — автоматически.

0
agent_user str | None

Имя администратора агента кластера.

None
agent_pwd str | None

Пароль администратора агента кластера.

None

Returns:

Name Type Description
str str

идентификатор (UUID) созданного кластера.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def insert(
    session: Session,
    host: str,
    port: int,
    name: str | None = None,
    expiration_timeout: int = 60,
    lifetime_limit: int = 0,
    max_memory_size: int | None = None,
    max_memory_time_limit: int | None = None,
    security_level: str = "disabled",
    session_fault_tolerance_level: int = 0,
    load_balancing_mode: str = "performance",
    errors_count_threshold: int | None = None,
    kill_problem_processes: bool = True,
    kill_by_memory_with_dump: bool = False,
    allow_access_right_audit_events_recording: bool = False,
    ping_period: int = 0,
    ping_timeout: int = 0,
    agent_user: str | None = None,
    agent_pwd: str | None = None,
) -> str:
    """Создаёт кластер и возвращает его идентификатор.

    Для создания кластера нужны права администратора агента кластера, поэтому обычно передают ``agent_user`` и ``agent_pwd``.

    Args:
        host: Имя хоста, на котором работает агент кластера.
        port: Порт агента кластера (по умолчанию 1540).
        name: Отображаемое имя кластера.
        expiration_timeout: Таймаут завершения сеансов, потерявших связь, в секундах.
        lifetime_limit: Максимальное время жизни сеанса в секундах; 0 — без ограничения.
        max_memory_size: Максимальный объём памяти рабочего процесса в КБ.
        max_memory_time_limit: Интервал проверки превышения памяти рабочим процессом в секундах.
        security_level: Уровень безопасности кластера: ``disabled``, ``basic`` или ``integrity``.
        session_fault_tolerance_level: Уровень отказоустойчивости сеансов: 0, 1 или 2.
        load_balancing_mode: Режим распределения нагрузки: ``performance`` или ``memory``.
        errors_count_threshold: Число ошибок, после которого рабочий процесс считается проблемным.
        kill_problem_processes: Завершать проблемные рабочие процессы автоматически.
        kill_by_memory_with_dump: Завершать процессы при превышении памяти, снимая дамп.
        allow_access_right_audit_events_recording: Разрешить запись событий аудита доступа к данным.
        ping_period: Период проверки связи с рабочими процессами в секундах; 0 — автоматически.
        ping_timeout: Таймаут проверки связи с рабочими процессами в секундах; 0 — автоматически.
        agent_user: Имя администратора агента кластера.
        agent_pwd: Пароль администратора агента кластера.

    Returns:
        str: идентификатор (UUID) созданного кластера.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    cluster = session.exec(
        Command(
            Arg("cluster"),
            Arg("insert"),
            Arg(host, "--host={}"),
            Arg(port, "--port={}"),
            Arg(name, "--name={}"),
            Arg(expiration_timeout, "--expiration-timeout={}"),
            Arg(lifetime_limit, "--lifetime-limit={}"),
            Arg(max_memory_size, "--max-memory-size={}"),
            Arg(max_memory_time_limit, "--max-memory-time-limit={}"),
            Arg(security_level, "--security-level={}"),
            Arg(
                session_fault_tolerance_level, "--session-fault-tolerance-level={}"
            ),
            Arg(load_balancing_mode, "--load-balancing-mode={}"),
            Arg(errors_count_threshold, "--errors-count-threshold={}"),
            Arg(b2yn(kill_problem_processes), "--kill-problem-processes={}"),
            Arg(b2yn(kill_by_memory_with_dump), "--kill-by-memory-with-dump={}"),
            Arg(
                b2yn(allow_access_right_audit_events_recording),
                "--allow-access-right-audit-events-recording={}",
            ),
            Arg(ping_period, "--ping-period={}"),
            Arg(ping_timeout, "--ping-timeout={}"),
            Arg(agent_user, "--agent-user={}"),
            Arg(agent_pwd, "--agent-pwd={}"),
        )
    ).to_dict()
    return str(cluster["cluster"])

update staticmethod

update(session: Session, cluster: str, name: str | None = None, expiration_timeout: int | None = None, lifetime_limit: int | None = None, max_memory_size: int | None = None, max_memory_time_limit: int | None = None, security_level: str | None = None, session_fault_tolerance_level: int | None = None, load_balancing_mode: str | None = None, errors_count_threshold: int | None = None, kill_problem_processes: bool | None = None, kill_by_memory_with_dump: bool | None = None, allow_access_right_audit_events_recording: bool | None = None, ping_period: int | None = None, ping_timeout: int | None = None, agent_user: str | None = None, agent_pwd: str | None = None) -> None

Изменяет параметры кластера.

Меняются только явно переданные параметры: значение None означает «оставить как есть». Сбросить параметр в значение по умолчанию через этот метод нельзя.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
name str | None

Новое отображаемое имя кластера.

None
expiration_timeout int | None

Таймаут завершения сеансов, потерявших связь, в секундах.

None
lifetime_limit int | None

Максимальное время жизни сеанса в секундах.

None
max_memory_size int | None

Максимальный объём памяти рабочего процесса в КБ.

None
max_memory_time_limit int | None

Интервал проверки превышения памяти в секундах.

None
security_level str | None

Уровень безопасности: disabled, basic или integrity.

None
session_fault_tolerance_level int | None

Уровень отказоустойчивости сеансов: 0, 1 или 2.

None
load_balancing_mode str | None

Режим распределения нагрузки: performance или memory.

None
errors_count_threshold int | None

Порог числа ошибок рабочего процесса.

None
kill_problem_processes bool | None

Завершать проблемные рабочие процессы автоматически.

None
kill_by_memory_with_dump bool | None

Завершать процессы при превышении памяти, снимая дамп.

None
allow_access_right_audit_events_recording bool | None

Разрешить запись событий аудита доступа к данным.

None
ping_period int | None

Период проверки связи с рабочими процессами в секундах.

None
ping_timeout int | None

Таймаут проверки связи с рабочими процессами в секундах.

None
agent_user str | None

Имя администратора агента кластера.

None
agent_pwd str | None

Пароль администратора агента кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def update(
    session: Session,
    cluster: str,
    name: str | None = None,
    expiration_timeout: int | None = None,
    lifetime_limit: int | None = None,
    max_memory_size: int | None = None,
    max_memory_time_limit: int | None = None,
    security_level: str | None = None,
    session_fault_tolerance_level: int | None = None,
    load_balancing_mode: str | None = None,
    errors_count_threshold: int | None = None,
    kill_problem_processes: bool | None = None,
    kill_by_memory_with_dump: bool | None = None,
    allow_access_right_audit_events_recording: bool | None = None,
    ping_period: int | None = None,
    ping_timeout: int | None = None,
    agent_user: str | None = None,
    agent_pwd: str | None = None,
) -> None:
    """Изменяет параметры кластера.

    Меняются только явно переданные параметры: значение ``None`` означает «оставить как есть». Сбросить параметр в значение по умолчанию через этот метод нельзя.

    Args:
        cluster: Идентификатор (UUID) кластера.
        name: Новое отображаемое имя кластера.
        expiration_timeout: Таймаут завершения сеансов, потерявших связь, в секундах.
        lifetime_limit: Максимальное время жизни сеанса в секундах.
        max_memory_size: Максимальный объём памяти рабочего процесса в КБ.
        max_memory_time_limit: Интервал проверки превышения памяти в секундах.
        security_level: Уровень безопасности: ``disabled``, ``basic`` или ``integrity``.
        session_fault_tolerance_level: Уровень отказоустойчивости сеансов: 0, 1 или 2.
        load_balancing_mode: Режим распределения нагрузки: ``performance`` или ``memory``.
        errors_count_threshold: Порог числа ошибок рабочего процесса.
        kill_problem_processes: Завершать проблемные рабочие процессы автоматически.
        kill_by_memory_with_dump: Завершать процессы при превышении памяти, снимая дамп.
        allow_access_right_audit_events_recording: Разрешить запись событий аудита доступа к данным.
        ping_period: Период проверки связи с рабочими процессами в секундах.
        ping_timeout: Таймаут проверки связи с рабочими процессами в секундах.
        agent_user: Имя администратора агента кластера.
        agent_pwd: Пароль администратора агента кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("cluster"),
            Arg("update"),
            Arg(cluster, "--cluster={}"),
            Arg(name, "--name={}"),
            Arg(expiration_timeout, "--expiration-timeout={}"),
            Arg(lifetime_limit, "--lifetime-limit={}"),
            Arg(max_memory_size, "--max-memory-size={}"),
            Arg(max_memory_time_limit, "--max-memory-time-limit={}"),
            Arg(security_level, "--security-level={}"),
            Arg(
                session_fault_tolerance_level, "--session-fault-tolerance-level={}"
            ),
            Arg(load_balancing_mode, "--load-balancing-mode={}"),
            Arg(errors_count_threshold, "--errors-count-threshold={}"),
            Arg(b2yn(kill_problem_processes), "--kill-problem-processes={}"),
            Arg(b2yn(kill_by_memory_with_dump), "--kill-by-memory-with-dump={}"),
            Arg(
                b2yn(allow_access_right_audit_events_recording),
                "--allow-access-right-audit-events-recording={}",
            ),
            Arg(ping_period, "--ping-period={}"),
            Arg(ping_timeout, "--ping-timeout={}"),
            Arg(agent_user, "--agent-user={}"),
            Arg(agent_pwd, "--agent-pwd={}"),
        )
    )

remove staticmethod

remove(session: Session, cluster: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Удаляет кластер со всеми рабочими серверами и информационными базами.

Операция необратима: вместе с кластером удаляются его настройки, но не сами базы данных на сервере СУБД.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def remove(
    session: Session,
    cluster: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Удаляет кластер со всеми рабочими серверами и информационными базами.

    Операция необратима: вместе с кластером удаляются его настройки, но не сами базы данных на сервере СУБД.

    Args:
        cluster: Идентификатор (UUID) кластера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("cluster"),
            Arg("remove"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
        )
    )

Cluster.Admin

Admin

Администраторы кластера.

list staticmethod

list(session: Session, cluster: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> list[RacRecord]

Возвращает список администраторов кластера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
list[RacRecord]

list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def list(
    session: Session,
    cluster: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> list[RacRecord]:
    """Возвращает список администраторов кластера.

    Args:
        cluster: Идентификатор (UUID) кластера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("cluster"),
            Arg("admin"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("list"),
        )
    ).to_list()

register staticmethod

register(session: Session, cluster: str, name: str, pwd: str | None = None, auth: str = 'pwd', descr: str | None = None, os_user: str | None = None, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Регистрирует администратора кластера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
name str

Имя администратора.

required
pwd str | None

Пароль администратора.

None
auth str

Способ аутентификации: pwd (пароль) или os (пользователь ОС).

'pwd'
descr str | None

Произвольное описание.

None
os_user str | None

Имя пользователя операционной системы при auth="os".

None
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def register(
    session: Session,
    cluster: str,
    name: str,
    pwd: str | None = None,
    auth: str = "pwd",
    descr: str | None = None,
    os_user: str | None = None,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Регистрирует администратора кластера.

    Args:
        cluster: Идентификатор (UUID) кластера.
        name: Имя администратора.
        pwd: Пароль администратора.
        auth: Способ аутентификации: ``pwd`` (пароль) или ``os`` (пользователь ОС).
        descr: Произвольное описание.
        os_user: Имя пользователя операционной системы при ``auth="os"``.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("cluster"),
            Arg("admin"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("register"),
            Arg(name, "--name={}"),
            Arg(pwd, "--pwd={}"),
            Arg(descr, "--descr={}"),
            Arg(auth, "--auth={}"),
            Arg(os_user, "--os-user={}"),
        )
    )

remove staticmethod

remove(session: Session, cluster: str, name: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Удаляет администратора кластера.

RAC не позволит удалить последнего администратора с разрешённой аутентификацией по паролю — такой случай приводит к :class:raclib.errors.AgentAdminCreateError.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
name str

Имя администратора.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/cluster.py
@staticmethod
def remove(
    session: Session,
    cluster: str,
    name: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Удаляет администратора кластера.

    RAC не позволит удалить последнего администратора с разрешённой аутентификацией по паролю — такой случай приводит к :class:`raclib.errors.AgentAdminCreateError`.

    Args:
        cluster: Идентификатор (UUID) кластера.
        name: Имя администратора.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("cluster"),
            Arg("admin"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("remove"),
            Arg(name, "--name={}"),
        ),
    )

Server

Server

Рабочие серверы кластера.

info staticmethod

info(session: Session, cluster: str, server: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> RacRecord

Возвращает параметры рабочего сервера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
RacRecord

dict[str, str | int]: одна запись RAC. Ключи соответствуют полям вывода, дефисы заменены на подчёркивания, числовые значения приведены к int.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/server.py
@staticmethod
def info(
    session: Session,
    cluster: str,
    server: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> RacRecord:
    """Возвращает параметры рабочего сервера.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        dict[str, str | int]: одна запись RAC. Ключи соответствуют полям вывода, дефисы заменены на подчёркивания, числовые значения приведены к ``int``.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("server"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("info"),
            Arg(server, "--server={}"),
        )
    ).to_dict()

list staticmethod

list(session: Session, cluster: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> list[RacRecord]

Возвращает список рабочих серверов кластера.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
list[RacRecord]

list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/server.py
@staticmethod
def list(
    session: Session,
    cluster: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> list[RacRecord]:
    """Возвращает список рабочих серверов кластера.

    Args:
        cluster: Идентификатор (UUID) кластера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("server"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("list"),
        )
    ).to_list()

insert staticmethod

insert(session: Session, cluster: str, agent_host: str, agent_port: int, port_range: str, name: str | None = None, using: str = 'main', infobases_limit: int = 8, memory_limit: int | None = None, connections_limit: int = 256, cluster_port: int | None = None, dedicate_managers: str = 'all', safe_working_processes_memory_limit: int | None = None, safe_call_memory_limit: int | None = None, critical_total_memory: int | None = None, temporary_allowed_total_memory: int | None = None, temporary_allowed_total_memory_time_limit: int = 300, service_principal_name: str | None = None, restart_schedule: str | None = None, add_prohibiting_assignment_rule: bool | None = None, cluster_user: str | None = None, cluster_pwd: str | None = None) -> str

Регистрирует рабочий сервер в кластере и возвращает его идентификатор.

Сервер должен быть доступен по сети: RAC обращается к его агенту.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
agent_host str

Имя хоста, на котором работает агент сервера.

required
agent_port int

Порт агента сервера.

required
port_range str

Диапазон IP-портов рабочих процессов, например 1560:1591.

required
name str | None

Отображаемое имя рабочего сервера.

None
using str

Назначение сервера: main, normal или job.

'main'
infobases_limit int

Максимальное число информационных баз на сервере.

8
memory_limit int | None

Максимальный объём памяти рабочих процессов в КБ.

None
connections_limit int

Максимальное число соединений на процесс.

256
cluster_port int | None

Порт, на котором сервер слушает кластер.

None
dedicate_managers str

Выделять менеджеры: all, none или isolated.

'all'
safe_working_processes_memory_limit int | None

Порог памяти рабочего процесса для безопасного режима.

None
safe_call_memory_limit int | None

Порог памяти вызова для безопасного режима.

None
critical_total_memory int | None

Критический общий объём памяти.

None
temporary_allowed_total_memory int | None

Временно разрешённый общий объём памяти.

None
temporary_allowed_total_memory_time_limit int

Время действия временного лимита памяти в секундах.

300
service_principal_name str | None

Имя субъекта-службы (SPN) для аутентификации.

None
restart_schedule str | None

Расписание перезапуска сервера.

None
add_prohibiting_assignment_rule bool | None

Добавить запрещающее требование размещения.

None
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Name Type Description
str str

идентификатор (UUID) зарегистрированного рабочего сервера.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/server.py
@staticmethod
def insert(
    session: Session,
    cluster: str,
    agent_host: str,
    agent_port: int,
    port_range: str,
    name: str | None = None,
    using: str = "main",
    infobases_limit: int = 8,
    memory_limit: int | None = None,
    connections_limit: int = 256,
    cluster_port: int | None = None,
    dedicate_managers: str = "all",
    safe_working_processes_memory_limit: int | None = None,
    safe_call_memory_limit: int | None = None,
    critical_total_memory: int | None = None,
    temporary_allowed_total_memory: int | None = None,
    temporary_allowed_total_memory_time_limit: int = 300,
    service_principal_name: str | None = None,
    restart_schedule: str | None = None,
    add_prohibiting_assignment_rule: bool | None = None,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> str:
    """Регистрирует рабочий сервер в кластере и возвращает его идентификатор.

    Сервер должен быть доступен по сети: RAC обращается к его агенту.

    Args:
        cluster: Идентификатор (UUID) кластера.
        agent_host: Имя хоста, на котором работает агент сервера.
        agent_port: Порт агента сервера.
        port_range: Диапазон IP-портов рабочих процессов, например ``1560:1591``.
        name: Отображаемое имя рабочего сервера.
        using: Назначение сервера: ``main``, ``normal`` или ``job``.
        infobases_limit: Максимальное число информационных баз на сервере.
        memory_limit: Максимальный объём памяти рабочих процессов в КБ.
        connections_limit: Максимальное число соединений на процесс.
        cluster_port: Порт, на котором сервер слушает кластер.
        dedicate_managers: Выделять менеджеры: ``all``, ``none`` или ``isolated``.
        safe_working_processes_memory_limit: Порог памяти рабочего процесса для безопасного режима.
        safe_call_memory_limit: Порог памяти вызова для безопасного режима.
        critical_total_memory: Критический общий объём памяти.
        temporary_allowed_total_memory: Временно разрешённый общий объём памяти.
        temporary_allowed_total_memory_time_limit: Время действия временного лимита памяти в секундах.
        service_principal_name: Имя субъекта-службы (SPN) для аутентификации.
        restart_schedule: Расписание перезапуска сервера.
        add_prohibiting_assignment_rule: Добавить запрещающее требование размещения.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        str: идентификатор (UUID) зарегистрированного рабочего сервера.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    server = session.exec(
        Command(
            Arg("server"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("insert"),
            Arg(agent_host, "--agent-host={}"),
            Arg(agent_port, "--agent-port={}"),
            Arg(str(port_range), "--port-range={}"),
            Arg(name, "--name={}"),
            Arg(using, "--using={}"),
            Arg(infobases_limit, "--infobases-limit={}"),
            Arg(memory_limit, "--memory-limit={}"),
            Arg(connections_limit, "--connections-limit={}"),
            Arg(cluster_port, "--cluster-port={}"),
            Arg(dedicate_managers, "--dedicate-managers={}"),
            Arg(
                safe_working_processes_memory_limit,
                "--safe-working-processes-memory-limit={}",
            ),
            Arg(safe_call_memory_limit, "--safe-call-memory-limit={}"),
            Arg(critical_total_memory, "--critical-total-memory={}"),
            Arg(
                temporary_allowed_total_memory,
                "--temporary-allowed-total-memory={}",
            ),
            Arg(
                temporary_allowed_total_memory_time_limit,
                "--temporary-allowed-total-memory-time-limit={}",
            ),
            Arg(service_principal_name, "--service-principal-name={}"),
            Arg(
                restart_schedule,
                "--restart-schedule={}",
            ),
            Arg(
                b2yn(add_prohibiting_assignment_rule),
                "--add-prohibiting-assignment-rule={}",
            ),
        )
    ).to_dict()
    return str(server["server"])

update staticmethod

update(session: Session, cluster: str, server: str, port_range: str | None = None, using: str | None = None, infobases_limit: int | None = None, memory_limit: int | None = None, connections_limit: int | None = None, dedicate_managers: str | None = None, safe_working_processes_memory_limit: int | None = None, safe_call_memory_limit: int | None = None, critical_total_memory: int | None = None, temporary_allowed_total_memory: int | None = None, temporary_allowed_total_memory_time_limit: int | None = None, service_principal_name: str | None = None, restart_schedule: str | None = None, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Изменяет параметры рабочего сервера.

Меняются только явно переданные параметры: None означает «оставить как есть».

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
port_range str | None

Диапазон IP-портов рабочих процессов.

None
using str | None

Назначение сервера: main, normal или job.

None
infobases_limit int | None

Максимальное число информационных баз.

None
memory_limit int | None

Максимальный объём памяти рабочих процессов в КБ.

None
connections_limit int | None

Максимальное число соединений на процесс.

None
dedicate_managers str | None

Выделять менеджеры: all, none или isolated.

None
safe_working_processes_memory_limit int | None

Порог памяти рабочего процесса для безопасного режима.

None
safe_call_memory_limit int | None

Порог памяти вызова для безопасного режима.

None
critical_total_memory int | None

Критический общий объём памяти.

None
temporary_allowed_total_memory int | None

Временно разрешённый общий объём памяти.

None
temporary_allowed_total_memory_time_limit int | None

Время действия временного лимита памяти в секундах.

None
service_principal_name str | None

Имя субъекта-службы (SPN) для аутентификации.

None
restart_schedule str | None

Расписание перезапуска сервера.

None
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/server.py
@staticmethod
def update(
    session: Session,
    cluster: str,
    server: str,
    port_range: str | None = None,
    using: str | None = None,
    infobases_limit: int | None = None,
    memory_limit: int | None = None,
    connections_limit: int | None = None,
    dedicate_managers: str | None = None,
    safe_working_processes_memory_limit: int | None = None,
    safe_call_memory_limit: int | None = None,
    critical_total_memory: int | None = None,
    temporary_allowed_total_memory: int | None = None,
    temporary_allowed_total_memory_time_limit: int | None = None,
    service_principal_name: str | None = None,
    restart_schedule: str | None = None,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Изменяет параметры рабочего сервера.

    Меняются только явно переданные параметры: ``None`` означает «оставить как есть».

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        port_range: Диапазон IP-портов рабочих процессов.
        using: Назначение сервера: ``main``, ``normal`` или ``job``.
        infobases_limit: Максимальное число информационных баз.
        memory_limit: Максимальный объём памяти рабочих процессов в КБ.
        connections_limit: Максимальное число соединений на процесс.
        dedicate_managers: Выделять менеджеры: ``all``, ``none`` или ``isolated``.
        safe_working_processes_memory_limit: Порог памяти рабочего процесса для безопасного режима.
        safe_call_memory_limit: Порог памяти вызова для безопасного режима.
        critical_total_memory: Критический общий объём памяти.
        temporary_allowed_total_memory: Временно разрешённый общий объём памяти.
        temporary_allowed_total_memory_time_limit: Время действия временного лимита памяти в секундах.
        service_principal_name: Имя субъекта-службы (SPN) для аутентификации.
        restart_schedule: Расписание перезапуска сервера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("server"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("update"),
            Arg(server, "--server={}"),
            Arg(using, "--using={}"),
            Arg(dedicate_managers, "--dedicate-managers={}"),
            Arg(port_range, "--port-range={}"),
            Arg(infobases_limit, "--infobases-limit={}"),
            Arg(memory_limit, "--memory-limit={}"),
            Arg(connections_limit, "--connections-limit={}"),
            Arg(
                safe_working_processes_memory_limit,
                "--safe-working-processes-memory-limit={}",
            ),
            Arg(safe_call_memory_limit, "--safe-call-memory-limit={}"),
            Arg(critical_total_memory, "--critical-total-memory={}"),
            Arg(
                temporary_allowed_total_memory,
                "--temporary-allowed-total-memory={}",
            ),
            Arg(
                temporary_allowed_total_memory_time_limit,
                "--temporary-allowed-total-memory-time-limit={}",
            ),
            Arg(service_principal_name, "--service-principal-name={}"),
            Arg(restart_schedule, "--restart-schedule={}"),
        )
    )

remove staticmethod

remove(session: Session, cluster: str, server: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Удаляет рабочий сервер из кластера.

Центральный сервер кластера удалить нельзя: попытка приводит к :class:raclib.errors.ServerIsMainError.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/server.py
@staticmethod
def remove(
    session: Session,
    cluster: str,
    server: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Удаляет рабочий сервер из кластера.

    Центральный сервер кластера удалить нельзя: попытка приводит к :class:`raclib.errors.ServerIsMainError`.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("server"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("remove"),
            Arg(server, "--server={}"),
        )
    )

Rule

Rule

Требования размещения информационных баз по рабочим серверам.

apply staticmethod

apply(session: Session, cluster: str, partial: bool = False, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Применяет требования размещения к кластеру.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
partial bool

Применить частично, не дожидаясь полного перераспределения.

False
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/rule.py
@staticmethod
def apply(
    session: Session,
    cluster: str,
    partial: bool = False,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Применяет требования размещения к кластеру.

    Args:
        cluster: Идентификатор (UUID) кластера.
        partial: Применить частично, не дожидаясь полного перераспределения.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("rule"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("apply"),
            Flag(partial, "--partial"),
        )
    )

info staticmethod

info(session: Session, cluster: str, server: str, rule: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> RacRecord

Возвращает требование размещения информационных баз.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
rule str

Идентификатор требования размещения.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
RacRecord

dict[str, str | int]: одна запись RAC. Ключи соответствуют полям вывода, дефисы заменены на подчёркивания, числовые значения приведены к int.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/rule.py
@staticmethod
def info(
    session: Session,
    cluster: str,
    server: str,
    rule: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> RacRecord:
    """Возвращает требование размещения информационных баз.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        rule: Идентификатор требования размещения.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        dict[str, str | int]: одна запись RAC. Ключи соответствуют полям вывода, дефисы заменены на подчёркивания, числовые значения приведены к ``int``.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("rule"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("info"),
            Arg(server, "--server={}"),
            Arg(rule, "--rule={}"),
        )
    ).to_dict()

list staticmethod

list(session: Session, cluster: str, server: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> list[RacRecord]

Возвращает список требований размещения рабочих серверов.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
list[RacRecord]

list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/rule.py
@staticmethod
def list(
    session: Session,
    cluster: str,
    server: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> list[RacRecord]:
    """Возвращает список требований размещения рабочих серверов.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("rule"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("list"),
            Arg(server, "--server={}"),
        )
    ).to_list()

insert staticmethod

insert(session: Session, cluster: str, server: str, position: int, object_type: str | None = None, infobase_name: str | None = None, rule_type: str | None = None, application_ext: str | None = None, priority: int | None = None, cluster_user: str | None = None, cluster_pwd: str | None = None) -> str

Добавляет требование размещения и возвращает его идентификатор.

Требования задают, какие информационные базы могут выполняться на конкретном рабочем сервере.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
position int

Позиция требования в списке.

required
object_type str | None

Тип объекта требования: Infobase или Server.

None
infobase_name str | None

Имя информационной базы, к которой применяется требование.

None
rule_type str | None

Вид требования: Assign или Deny.

None
application_ext str | None

Расширение приложения, к которому применяется требование.

None
priority int | None

Приоритет требования.

None
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Name Type Description
str str

идентификатор созданного требования размещения.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/rule.py
@staticmethod
def insert(
    session: Session,
    cluster: str,
    server: str,
    position: int,
    object_type: str | None = None,
    infobase_name: str | None = None,
    rule_type: str | None = None,
    application_ext: str | None = None,
    priority: int | None = None,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> str:
    """Добавляет требование размещения и возвращает его идентификатор.

    Требования задают, какие информационные базы могут выполняться на конкретном рабочем сервере.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        position: Позиция требования в списке.
        object_type: Тип объекта требования: ``Infobase`` или ``Server``.
        infobase_name: Имя информационной базы, к которой применяется требование.
        rule_type: Вид требования: ``Assign`` или ``Deny``.
        application_ext: Расширение приложения, к которому применяется требование.
        priority: Приоритет требования.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        str: идентификатор созданного требования размещения.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    rule = session.exec(
        Command(
            Arg("rule"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("insert"),
            Arg(server, "--server={}"),
            Arg(position, "--position={}"),
            Arg(object_type, "--object-type={}"),
            Arg(infobase_name, "--infobase-name={}"),
            Arg(rule_type, "--rule-type={}"),
            Arg(application_ext, "--application-ext={}"),
            Arg(priority, "--priority={}"),
        )
    ).to_dict()
    return str(rule["rule"])

update staticmethod

update(session: Session, cluster: str, server: str, rule: str, position: int, object_type: str | None = None, infobase_name: str | None = None, rule_type: str | None = None, application_ext: str | None = None, priority: int | None = None, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Изменяет требование размещения.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
rule str

Идентификатор требования размещения.

required
position int

Новая позиция требования в списке.

required
object_type str | None

Тип объекта требования: Infobase или Server.

None
infobase_name str | None

Имя информационной базы.

None
rule_type str | None

Вид требования: Assign или Deny.

None
application_ext str | None

Расширение приложения.

None
priority int | None

Приоритет требования.

None
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/rule.py
@staticmethod
def update(
    session: Session,
    cluster: str,
    server: str,
    rule: str,
    position: int,
    object_type: str | None = None,
    infobase_name: str | None = None,
    rule_type: str | None = None,
    application_ext: str | None = None,
    priority: int | None = None,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Изменяет требование размещения.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        rule: Идентификатор требования размещения.
        position: Новая позиция требования в списке.
        object_type: Тип объекта требования: ``Infobase`` или ``Server``.
        infobase_name: Имя информационной базы.
        rule_type: Вид требования: ``Assign`` или ``Deny``.
        application_ext: Расширение приложения.
        priority: Приоритет требования.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("rule"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("update"),
            Arg(server, "--server={}"),
            Arg(rule, "--rule={}"),
            Arg(position, "--position={}"),
            Arg(object_type, "--object-type={}"),
            Arg(infobase_name, "--infobase-name={}"),
            Arg(rule_type, "--rule-type={}"),
            Arg(application_ext, "--application-ext={}"),
            Arg(priority, "--priority={}"),
        ),
    )

remove staticmethod

remove(session: Session, cluster: str, server: str, rule: str, cluster_user: str | None = None, cluster_pwd: str | None = None) -> None

Удаляет требование размещения.

Parameters:

Name Type Description Default
cluster str

Идентификатор (UUID) кластера.

required
server str

Идентификатор (UUID) рабочего сервера.

required
rule str

Идентификатор требования размещения.

required
cluster_user str | None

Имя администратора кластера.

None
cluster_pwd str | None

Пароль администратора кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/rule.py
@staticmethod
def remove(
    session: Session,
    cluster: str,
    server: str,
    rule: str,
    cluster_user: str | None = None,
    cluster_pwd: str | None = None,
) -> None:
    """Удаляет требование размещения.

    Args:
        cluster: Идентификатор (UUID) кластера.
        server: Идентификатор (UUID) рабочего сервера.
        rule: Идентификатор требования размещения.
        cluster_user: Имя администратора кластера.
        cluster_pwd: Пароль администратора кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("rule"),
            Arg(cluster, "--cluster={}"),
            Arg(cluster_user, "--cluster-user={}"),
            Arg(cluster_pwd, "--cluster-pwd={}"),
            Arg("remove"),
            Arg(server, "--server={}"),
            Arg(rule, "--rule={}"),
        )
    )

Agent

Agent

Агент кластера и его администраторы.

Admin

Администраторы агента кластера.

list staticmethod

list(session: Session, agent_user: str | None = None, agent_pwd: str | None = None) -> list[RacRecord]

Возвращает список администраторов агента кластера.

Parameters:

Name Type Description Default
agent_user str | None

Имя администратора агента кластера.

None
agent_pwd str | None

Пароль администратора агента кластера.

None

Returns:

Type Description
list[RacRecord]

list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/agent.py
@staticmethod
def list(
    session: Session,
    agent_user: str | None = None,
    agent_pwd: str | None = None,
) -> list[RacRecord]:
    """Возвращает список администраторов агента кластера.

    Args:
        agent_user: Имя администратора агента кластера.
        agent_pwd: Пароль администратора агента кластера.

    Returns:
        list[dict[str, str | int]]: записи RAC. Пустой список, если RAC ничего не вернул.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(
        Command(
            Arg("agent"),
            Arg(agent_user, "--agent-user={}"),
            Arg(agent_pwd, "--agent-pwd={}"),
            Arg("admin"),
            Arg("list"),
        )
    ).to_list()

register staticmethod

register(session: Session, name: str, pwd: str | None = None, auth: str = 'pwd', descr: str | None = None, os_user: str | None = None, agent_user: str | None = None, agent_pwd: str | None = None) -> None

Регистрирует администратора агента кластера.

После регистрации администратор сможет подключаться к агенту и управлять его рабочими процессами.

Parameters:

Name Type Description Default
name str

Имя администратора.

required
pwd str | None

Пароль администратора.

None
auth str

Способ аутентификации: pwd (пароль) или os (пользователь ОС).

'pwd'
descr str | None

Произвольное описание.

None
os_user str | None

Имя пользователя операционной системы при auth="os".

None
agent_user str | None

Имя администратора агента кластера.

None
agent_pwd str | None

Пароль администратора агента кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/agent.py
@staticmethod
def register(
    session: Session,
    name: str,
    pwd: str | None = None,
    auth: str = "pwd",
    descr: str | None = None,
    os_user: str | None = None,
    agent_user: str | None = None,
    agent_pwd: str | None = None,
) -> None:
    """Регистрирует администратора агента кластера.

    После регистрации администратор сможет подключаться к агенту и управлять его рабочими процессами.

    Args:
        name: Имя администратора.
        pwd: Пароль администратора.
        auth: Способ аутентификации: ``pwd`` (пароль) или ``os`` (пользователь ОС).
        descr: Произвольное описание.
        os_user: Имя пользователя операционной системы при ``auth="os"``.
        agent_user: Имя администратора агента кластера.
        agent_pwd: Пароль администратора агента кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("agent"),
            Arg(agent_user, "--agent-user={}"),
            Arg(agent_pwd, "--agent-pwd={}"),
            Arg("admin"),
            Arg("register"),
            Arg(name, "--name={}"),
            Arg(pwd, "--pwd={}"),
            Arg(descr, "--descr={}"),
            Arg(auth, "--auth={}"),
            Arg(os_user, "--os-user={}"),
        )
    )

remove staticmethod

remove(session: Session, name: str, agent_user: str | None = None, agent_pwd: str | None = None) -> None

Удаляет администратора агента кластера.

Parameters:

Name Type Description Default
name str

Имя администратора.

required
agent_user str | None

Имя администратора агента кластера.

None
agent_pwd str | None

Пароль администратора агента кластера.

None

Returns:

Type Description
None

None

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/agent.py
@staticmethod
def remove(
    session: Session,
    name: str,
    agent_user: str | None = None,
    agent_pwd: str | None = None,
) -> None:
    """Удаляет администратора агента кластера.

    Args:
        name: Имя администратора.
        agent_user: Имя администратора агента кластера.
        agent_pwd: Пароль администратора агента кластера.

    Returns:
        None

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.call(
        Command(
            Arg("agent"),
            Arg(agent_user, "--agent-user={}"),
            Arg(agent_pwd, "--agent-pwd={}"),
            Arg("admin"),
            Arg("remove"),
            Arg(name, "--name={}"),
        ),
    )

version staticmethod

version(session: Session) -> str

Возвращает версию агента кластера вместе с версией RAC.

Returns:

Name Type Description
str str

вывод RAC без завершающих пробельных символов.

:raises raclib.errors.RACNotFoundError: файл rac не найден или не может быть запущен. :raises raclib.errors.RACTimeoutError: RAC не ответил за timeout секунд, заданный в сессии. :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий raclib.errors.

Source code in src/raclib/cmd/agent.py
@staticmethod
def version(session: Session) -> str:
    """Возвращает версию агента кластера вместе с версией RAC.

    Returns:
        str: вывод RAC без завершающих пробельных символов.

    :raises raclib.errors.RACNotFoundError: файл ``rac`` не найден или не может быть запущен.
    :raises raclib.errors.RACTimeoutError: RAC не ответил за ``timeout`` секунд, заданный в сессии.
    :raises raclib.errors.UnknownError: RAC вернул ошибку, которой нет в таблице соответствий ``raclib.errors``.
    """
    return session.exec(Command(Arg("agent"), Arg("version"))).to_str()