gonets/SRV/docs/_build/markdown/api/services/ip_service.md
2025-10-14 16:11:12 +05:00

3.5 KiB
Raw Blame History

IP Service

Сервис проверки и применения IP‑настроек через NetworkManager (D‑Bus).

Назначение:

  • Перед применением конфигурации проверяет занятость IP адреса, сканируя сегмент сети средствами ARP (через NetworkScanner).
  • Применяет изменения профиля подключения через sdbus_async.networkmanager и выполняет переподключение интерфейса.

Требования/ограничения:

  • Доступ к системной шине D‑Bus и права на изменения сетевых профилей.
  • Структура входных данных должна соответствовать схеме ipv4_updates для корректного обновления вложенных полей у профиля.

class services.ip_service.IPService

Bases: object

Сервис проверки доступности IP-адреса и применения настроек сети.

Предоставляет асинхронные методы для проверки занятости IP-адреса с использованием ARP-сканирования и применения настроек через NetworkManager.

async apply_ip_config(args: Dict[str, Any], translations: Translations = Depends(translations_dependency)) → None

Применяет проверенные настройки IP к указанному соединению.

Перезапускает шину D-Bus, обновляет настройки соединения через NetworkManager, отключает и переподключает устройство к сети.

  • Parameters:
    • args (Dict *[*str , Any ]) – Словарь с данными, включая:
      • “connection_id” (str): Идентификатор соединения.
      • “ipv4_updates” (Dict): Обновления настроек IPv4.
    • translations (Translations) – Объект переводов.
  • Raises:
    • ValueError – Если соединение с указанным ID не найдено.
    • RuntimeError – Если устройство для интерфейса не найдено.

NOTE

Требуются права для изменения настроек через NetworkManager.

async check_ip_config(args: Dict[str, Any], translations: Translations = Depends(translations_dependency)) → Dict[str, Any]

Проверяет доступность IP-адреса перед его применением.

Выполняет ARP-сканирование сети для проверки, занят ли указанный IP-адрес. Перезапускает шину D-Bus перед выполнением.

  • Parameters:
    • args (Dict *[*str , Any ]) – Словарь с данными, включая “ipv4_updates” с полем “ipv4.address-data” для нового IP-адреса.
    • translations (Translations) – Объект переводов.
  • Returns:
    Словарь с ключами:
    • ”available” (bool): Доступен ли IP-адрес.
    • ”message” (str): Сообщение о результате проверки.
  • Return type: Dict[str, Any]
  • Raises: Exception – Если произошла ошибка при сканировании ARP.