Для добавления пользовательских узлов в модуль Model Designer необходимо:
- создать и добавить к файлам приложения код исполнения узла и словарь пользовательских узлов;
- создать метаданные узла при помощи API приложения.
Добавление пользовательских файлов с кодом исполнения узла
Пользователь должен создать файл с классом узла, наследуемым от базового класса MDNode, переопределив 3 абстрактных метода:
- check_status - метод, определяющий поведение узла при проверке статусов узлов pipeline;
- update_metadata - метод, определяющий поведение узла при обновлении метаданных узлов pipeline;
- run - метод, определяющий поведение узла при его запуске;
Пример кода исполнения узла см. в Приложении A.
Кроме того, нужно добавить файл с со словарем кастомных узлов custom_node_map.py (по аналогии с файлом /app/app/workers/md/md_nodes/nodes_map.py), в котором установить связь между node_type_id (см. п. 2) метаданных узла и пользовательским классом исполнения.
Файл custom_node_map.py необходимо разместить в /app/app/workers/md/md_nodes, расположение файлов с кастомными узлами устанавливается пользователем в custom_node_map.py.
Добавление метаданных узла
Добавление метаданных узла происходит по REST-запросам к приложению:
- для создания пользовательского узла необходимо отправить POST-запрос по /api/v2/md/node_types/ со схемой метаданных нового узла (пример схемы - в swagger приложения). Важно указать в атрибуте node_type_id схемы то значение, которое было указано в custom_node_map.py для связи метаданных с кодом исполнения.
- для удаления пользовательского узла необходимо отправить DELETE-запрос по /api/v2/md/node_types/?node_type_id={node_type_id}.
- для просмотра списка всех добавленных пользовательских узлов необходимо отправить GET-запрос по /api/v1/md/node_types.