api.v1.network

class api.v1.network.ContainerPositionManager[source]

Bases: object

Класс для управления позициями и состоянием контейнеров.

Хранит и обновляет координаты (x, y) и состояние (isOpen) для контейнеров активации и деактивации.

get_position_and_state(container_name: str, translations: Translations = Depends(translations_dependency)) → Tuple[int, int, bool][source]

Получает текущие координаты и состояние указанного контейнера.

Args:

container_name (str): Имя контейнера (“activation” или “deactivation”). translations: Объект переводов для текущего языка.

Returns:

Tuple[int, int, bool]: Кортеж с координатами (x, y) и состоянием (isOpen).

Raises:

ValueError: Если указан неверный идентификатор контейнера.

update_position(container_id: int, x: int, y: int, isOpen: bool) → None[source]

Обновляет позицию и состояние контейнера по его идентификатору.

Args:

container_id (int): Идентификатор контейнера (1 для “activation”, 2 для “deactivation”). x (int): Новая координата X. y (int): Новая координата Y. isOpen (bool): Новое состояние контейнера (открыт/закрыт).

Raises:

ValueError: Если container_id не соответствует ни одному контейнеру.

async api.v1.network.get_hostname(translations: Translations = Depends(translations_dependency))[source]

Возвращает имя хоста системы.

Выполняет запрос к сервису для получения имени хоста.

Args:

translations: Объект переводов для текущего языка.

Returns:

dict: Словарь с ключом “hostname” и значением имени хоста.

Raises:

HTTPException: Если произошла ошибка при получении имени хоста (status_code=500).

async api.v1.network.get_network_data(translations: Translations = Depends(translations_dependency)) → Dict[str, Dict][source]

Возвращает текущие сетевые данные в виде словаря.

Получает данные о сетевых интерфейсах, разделяет их на активные и неактивные, и возвращает их в формате Activation и Deactivation с учётом позиций и состояний контейнеров.

Args:

translations: Объект переводов для текущего языка.

Returns:
Dict[str, Dict]: Словарь с ключами “activation” и “deactivation”, содержащими

данные о соответствующих контейнерах.

Raises:

HTTPException: Если произошла ошибка при получении данных (status_code=500).

async api.v1.network.update_container_position(data: Dict[str, int | bool] = Body(PydanticUndefined), translations: Translations = Depends(translations_dependency))[source]

Обновляет позицию и состояние контейнера.

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

Args:
data (Dict[str, Union[int, bool]]): Словарь с ключами:
  • “container_id” (int): Идентификатор контейнера (1 или 2).

  • “container_x” (int): Новая координата X.

  • “container_y” (int): Новая координата Y.

  • “isOpen” (bool): Новое состояние контейнера (открыт/закрыт).

translations: Объект переводов для текущего языка.

Returns:
dict: Словарь с ключами:
  • “success” (bool): Успешность операции.

  • “message” (str): Сообщение об успешном обновлении.

Raises:
HTTPException: Если отсутствуют обязательные поля (status_code=400) или

типы данных неверны.