Задачи¶
Получение списка задач¶
Описание¶
Возвращает список задач сервера RuDesktop. Поддерживается постраничная навигация и фильтрация
Запрос¶
GET /automation/api/job/
Ответ
{
"count": "int",
"next": "string",
"previous": "string",
"results": [
{
"id": "int",
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [
{
"id": "int",
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
]
}
Пример¶
curl --header 'Authorization: Token [TOKEN]' --location 'https://[SERVER_ADDR]/automation/api/job/'
Получение информации о задаче¶
Описание¶
Возвращает информацию о задаче по её идентификатору
Запрос¶
GET /automation/api/job/{id}/
Параметры¶
id— идентификатор задачи
Ответ
{
"id": "int",
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [
{
"id": "int",
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Пример¶
curl --header 'Authorization: Token [TOKEN]' --location 'https://[SERVER_ADDR]/automation/api/job/123/'
Получение статуса задачи¶
Описание¶
Возвращает текущий статус задачи по её идентификатору в текстовом виде
Запрос¶
GET /automation/api/job/{id}/status/
Параметры¶
id— идентификатор задачи
Ответ
{
"status": "string",
"id": "int",
"name": "string"
}
Пример¶
curl --header 'Authorization: Token [TOKEN]' --location 'https://[SERVER_ADDR]/automation/api/job/123/status/'
Создание задачи¶
Описание¶
Создаёт новую задачу. В peers передаются имена хостов (hostname) или IP-адреса устройств. Должна быть указана хотя бы одна политика (policies) или хотя бы один отчёт (reports); при наличии отчётов обязательно нужно указать форматы отчётов (report_formats)
Запрос¶
POST /automation/api/job/
Параметры¶
name— имя задачи (обязательно)params— расписание выполнения в формате RFC 5545 (RRULE)enabled— задача активна (true/false)run_on_start— запускать при включении устройства (true/false)groups— список идентификаторов статических группdynamic_groups— список идентификаторов динамических группpeers— список имён хостов или IP-адресов устройствpolicies— список идентификаторов политикreports— список идентификаторов отчётовreport_formats— список форматов отчётов (например,pdf,xlsx,csv,html)
Тело запроса
{
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [ "string" ],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Ответ
{
"id": "int",
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [
{
"id": "int",
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Пример¶
curl --location --request POST 'https://[SERVER_ADDR]/automation/api/job/' \
--header 'Authorization: Token [TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"name": "Название задачи",
"enabled": true,
"run_on_start": true,
"groups": [ 1 ],
"peers": [ "host1", "host2" ],
"policies": [ 1 ],
"dynamic_groups": [],
"reports": [],
"report_formats": []
}'
Обновление задачи (PUT)¶
Описание¶
Полностью обновляет данные задачи с указанным идентификатором. В теле запроса передаются все параметры задачи
Примечание
Убедитесь, что вы указываете все поля корректно — неверный формат данных приведёт к ошибке
Запрос¶
PUT /automation/api/job/{id}/
Параметры¶
id— идентификатор задачи
Тело запроса
{
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [ "string" ],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Ответ
{
"id": "int",
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [
{
"id": "int",
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Пример¶
curl --location --request PUT 'https://[SERVER_ADDR]/automation/api/job/123/' \
--header 'Authorization: Token [TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"name": "Название задачи",
"enabled": true,
"run_on_start": true,
"groups": [ 1 ],
"peers": [ "host1", "host2" ],
"policies": [ 1 ],
"dynamic_groups": [],
"reports": [],
"report_formats": []
}'
Обновление задачи (PATCH)¶
Описание¶
Частично обновляет данные задачи с указанным идентификатором. В теле запроса передаются только те параметры, которые требуется изменить
Запрос¶
PATCH /automation/api/job/{id}/
Параметры¶
id— идентификатор задачи
Тело запроса
{
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [ "string" ],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Ответ
{
"id": "int",
"name": "string",
"params": "string",
"enabled": "boolean",
"run_on_start": "boolean",
"groups": [ "int" ],
"peers": [
{
"id": "int",
"addr": "string",
"status": "string",
"username": "string",
"hostname": "string",
"server_id": "string",
"connection": "string"
}
],
"policies": [ "int" ],
"dynamic_groups": [ "int" ],
"reports": [ "int" ],
"report_formats": [ "string" ]
}
Пример¶
curl --location --request PATCH 'https://[SERVER_ADDR]/automation/api/job/123/' \
--header 'Authorization: Token [TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"enabled": false
}'
Остановка задач¶
Описание¶
Останавливает выполнение задач по списку их идентификаторов. Можно передать одну или несколько задач за один запрос
Примечание
Остановка применяется только к задачам, которые в данный момент выполняются. Задачи в очереди или уже завершённые не затрагиваются
Запрос¶
POST /automation/api/stop_job/
Параметры¶
obj_id— список идентификаторов задач для остановки (обязательно, минимум одна задача)
Тело запроса
{
"obj_id": [ "int" ]
}
Ответ
{
"message": "Задачи успешно остановлены"
}
Если ни одна из переданных задач не найдена, сервер вернёт статус 400 и сообщение Задачи не найдены
Пример¶
curl --location --request POST 'https://[SERVER_ADDR]/automation/api/stop_job/' \
--header 'Authorization: Token [TOKEN]' \
--header 'Content-Type: application/json' \
--data '{
"obj_id": [ 123, 124 ]
}'
Удаление задачи¶
Описание¶
Удаляет задачу с указанным идентификатором
Запрос¶
DELETE /automation/api/job/{id}/
Параметры¶
id— идентификатор задачи
Ответ
204 No Content
Пример¶
curl --location --request DELETE 'https://[SERVER_ADDR]/automation/api/job/123/' \
--header 'Authorization: Token [TOKEN]'