GonetsDocs/Documentation/Tech-docs/api/services/ip_service.md
2025-10-14 16:19:35 +05:00

61 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.