Создание обработчика VPU
Если вы используете Модуль VPU (VLAN Per User), вы можете создать собственный обработчик VPU. Собственный обработчик позволит гибко настроить параметры VPU в соответствии с настройками сетевого оборудования.
Чтобы добавить обработчик, создайте его код и загрузите в платформу.
Подготовка окружения
Обработчик VPU должен быть написан на языке Python. Рекомендуем использовать версию Python 3.9.
Вы можете создать обработчик на основе существующего проекта. Чтобы скопировать проект, подключитесь к серверу-локации DCImanager 6 по SSH и выполните команду:
При создании обработчика могут быть полезны директории проекта:
- /common — общие вспомогательные классы и функции;
- /vpu_common — вспомогательные классы и функции для работы с VPU;
- /vpu_common/handlers — обработчики VPU.
Требуемые библиотеки Python и их версии вы можете посмотреть в файле проекта requirements.txt. Чтобы установить нужные библиотеки, выполните команду:
Для проверки типов данных в проекте рекомендуем использовать анализатор mypy.
Создание обработчика
Класс для работы с VPU

Класс VPU наследуется от класса BaseVpu.
Пример описания класса
Чтобы отправлять запросы в коммутатор или маршрутизатор VPU-сети через протокол netconf, выполните наследование от вспомогательного класса BaseNetconf:
Пример описания класса
Данные для подключения к коммутатору VPU-сети находятся в "vpu_data.router_info["router_info"]["netconf_params"]".
Все данные по VPU можно посмотреть в методе self.vpu_info. Параметры описаны в классе BaseVpuData в файле проекта /vpu_common/vpu_helper.py.
Например, чтобы получить параметры, переданные обработчику, используйте метод self.handler_params.
Каждый файл-обработчик должен содержать функцию make_handler. Эта функция создаёт объект обработчика:
Пример функции
Методы для работы с VPU

Чтобы DCImanager 6 мог взаимодействовать с VPU, переопределите методы класса BaseVpu:
- check_access — проверка доступа к маршрутизатору для работы с VPU;
- tune_vpu — предварительная конфигурация маршрутизатора при настройке модуля VPU;
- create_net — настройка VPU-сети на маршрутизаторе при создании этой сети в интерфейсе DCImanager 6;
- delete_net — удаление VPU сети на маршрутизаторе при удалении этой сети в интерфейсе DCImanager 6.
При переопределении методов укажите требуемый формат запросов и возвращаемых значений. Все вспомогательные представления описаны в файле проекта /vpu_common/vpu_helper.py.
Загрузка обработчика в платформу
Чтобы загрузить обработчик в платформу:
Создайте директорию со следующей структурой:
CODEСоздайте архив tar.gz с этой директорией:
BASHАвторизуйтесь в DCImanager 6 с правами администратора:
BASHВ ответ придёт сообщение вида:
YMLСохраните из полученного ответа значение параметра token — токена авторизации.
Создайте описание для обработчика:
BASHОтвет будет содержать id созданного разработчика. Сохраните это значение.
Пример ответа
CODEЗагрузите архив с обработчиком в платформу:
BASHОбратите внимание!
Вы также можете использовать эту команду для загрузки новых версий обработчика в платформу.
Проверка обработчика
- Загрузите обработчик в платформу.
- Настройте модуль VPU.
- Проверьте как выполняются методы обработчика. Например, создайте или удалите VPU-сеть.