Валидация
Предусловия
- модули приложения развернуты;
- граф репликации создан;
- пользователь авторизовался под ролью APPADMIN, INSPECTOR или APPDUTY.
Процесс
Валидация конфигурации
-
UI консоль вызывает метод
/config/{configId}/state:- если в качестве параметров заданы источник или приемник, проверяет, корректно ли будет создать из этой конфигурации и переданных соединений модуль;
- если источник и приемник не заданы, проверяет только синтаксическую корректность JSON-данных.
-
Возвращается JSON-ответ:
"status":"VALID","error_list":[]с кодом ответа HTTP/200, если в процессе валидации не произошло технических ошибок.Это означает, что информации в объекте connection (соединение) достаточно для установления соединения с БД или Очередью, и для всех значений, которые модуль будет получать или генерировать, в целевой базе есть соответствующие схемы, таблицы, поля.
Альтернативный сценарий
Если конфигурация некорректна, возвращается JSON-ответ: "status":"INVALID","error_list":[...]. Каждый элемент error_list содержит поле path, указывающее, где ошибка: в Source или в Target, и поле description с описанием ошибки. Пример ответа:
{
"status": "INVALID",
"error_list": [
{
"path": "TARGET/<имя_схемы>",
"code": "311",
"description": "Схема <имя_схемы> не найдена в БД c connectionId = <id_соединения>"
}
]
}
Валидация соединения
- UI консоль вызывает метод
/connection/{connectionId}/stateи подключается к хранилищу, описанному в соединении. - Возвращается ответ: код 200, если попытка соединения с БД или Очередью успешна.
Альтернативный сценарий
Если соединение не установлено, возвращается JSON-ответ: "status":"INVALID","error_list":[...]. Каждый элемент error_list содержит поле path, указывающее, где ошибка: в Source, Target или Queue, и поле description с описанием ошибки.
Валидация модуля
Валидация модуля включает проверку его соединений (левое и правое) и конфигурации, которую модуль содержит. Так модуль применения содержит конфигурацию для приемника, поэтому при валидации модуля применения конфигурация для источника проверяться не будет.
-
UI консоль вызывает метод
/module/{moduleId}/state. -
Возвращается результат полной валидации модуля.
Это означает, что:
- соединения Source или Target доступны;
- соединение Queue доступно;
- схемы, таблицы и поля в конфигурации модуля содержатся в метаданных БД соединения этого модуля;
- в приемнике есть все таблицы и поля, в которые модуль должен записывать данные.
Альтернативный сценарий
Если модуль не валиден, возвращается JSON-ответ: "status":"INVALID","error_list":[...]. Каждый элемент error_list содержит поле path, указывающее, где ошибка: в Source или в Target, и поле description с описанием ошибки.