Перейти к основному содержимому

Автоматизация

Пересвет-СТ можно встраивать в повторяемые испытания и 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-файл с тем же набором скриптов и конфигурацией задачи.