Автоматизация
Пересвет-СТ можно встраивать в повторяемые испытания и CI/CD: создавать копии задач, запускать и останавливать их из скриптов, не собирая сценарий вручную в веб-интерфейсе каждый раз.
REST API
Полный справочник HTTP-запросов контроллера опубликован отдельно: документация API.
API доступен на порту контроллера (обычно 8080), использует JWT-аутентификацию (токен в cookies после входа). Через него выполняются те же операции, что и в UI: задачи, агенты, сети, пользователи и группы. Для вызовов подойдёт любой HTTP-клиент (curl, Postman, Python requests и т.д.).
Автоматизация через Python
Для повторяемых испытаний задачу можно экспортировать в Python-архив. Архив содержит конфигурацию выбранной задачи и готовый клиент для REST API: создать копию задачи, запустить, остановить или дождаться завершения без ручной настройки в веб-интерфейсе.
Экспорт: на странице задачи откройте Параметры → Экспортировать задачу в Python. Контроллер скачает архив вида peresvet-st-task-<ID>-python.zip. Перенос задачи с библиотечными зависимостями (без скриптов) описан в Экспорт отчетов и импорт задач.
В архив входят:
| Файл | Назначение |
|---|---|
task_config.json | Конфигурация задачи, подготовленная для создания новой задачи через API |
client.py | Небольшой Python-клиент для авторизации и работы с задачами |
run.py | Командная оболочка для типовых действий: создать, обновить, запустить, остановить, дождаться завершения и получить состояние задачи |
requirements.txt | Зависимости Python-клиента |
metadata.json | Сведения об исходной задаче и времени экспорта |
Минимальная подготовка рабочего каталога:
mkdir peresvet-st-task-6168-python
unzip peresvet-st-task-6168-python.zip -d peresvet-st-task-6168-python
cd peresvet-st-task-6168-python
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
Перед запуском укажите адрес контроллера и учетные данные пользователя, который имеет право создавать и запускать задачи:
export SYSTEM_TRACE_URL="http://controller.example:8080"
export SYSTEM_TRACE_EMAIL="user@example.com"
export SYSTEM_TRACE_PASSWORD="password"
Пример полного сценария: создать новую задачу из экспортированной конфигурации, сразу запустить её и дождаться финального статуса:
python run.py create --start --wait
Отдельные команды можно использовать в пайплайнах или внешних скриптах:
python run.py create
python run.py start 123 --wait
python run.py stop 123
python run.py finish 123
python run.py get 123
Если учетные данные нельзя хранить в переменных окружения, их можно передать параметрами команды:
python run.py --base-url "http://controller.example:8080" \
--email "user@example.com" \
--password "password" \
create --start --wait
Python-экспорт использует тот же публичный REST API, что и веб-интерфейс (справочник API). В архив не записываются пароли или токены доступа; авторизация выполняется при запуске скрипта. Архив также можно получить напрямую через API: GET /v1/tasks/{id}/export/python. Ответом будет ZIP-файл с тем же набором скриптов и конфигурацией задачи.