API

Настройка доступа

  • Создайте нового пользователя (например, api_user) командой:

rude createsuperuser
  • При необходимости ограничьте права пользователя через панель администратора

  • Создайте токен доступа к API для данного пользователя:

rude token create [api_user]
  • Теперь вы можете использовать API, пример использования:

curl -H "Authorization: Token [TOKEN]" http://[SERVER_ADDR]/api/peer/search/?hostname=XXXX

Функции API

Устройства

Поиск по имени хоста

Запрос:

GET /api/peer/search/?hostname=[search]

Ответ:

{"items": [
    {
      "server_id": "string",
      "hostname": "string",
      "username": "string",
      "domain": "string",
      "platform": "string",
      "uname": "string",
      "version": "string",
      "addr": "string",
      "uuid": "string"
    }, 
...]}

Задачи

Получение списка с задачами

Запрос:

GET /automation/api/job/

Ответ:

[
    {
        "id": int,
        "name": "string",
        "notify": boolean,
        "params": "string",
        "enabled": boolean,
        "run_on_start": boolean,
        "groups": [
            int
        ],
        "peers": [
            {
                "id": int,
                "addr": "string",
                "status": "string",
                "username": "string",
                "hostname": "string",
                "server_id": "string"
            }
        ],
        "policies": [
            int
        ],
        "dynamic_groups": [
            int
        ]
    },
...]

Получение информации конкретной задачи

Запрос:

GET /automation/api/job/{id}/

Ответ:

{
    "id": int,
    "name": "string",
    "notify": boolean,
    "params": "string",
    "enabled": boolean,
    "run_on_start": boolean,
    "groups": [
        int
    ],
    "peers": [
        {
            "id": int,
            "addr": "string",
            "status": "string",
            "username": "string",
            "hostname": "string",
            "server_id": "string"
        }
    ],
    "policies": [
        int
    ],
    "dynamic_groups": [
        int
    ]
}

Получение статуса задачи

Запрос:

GET /automation/api/job/{id}/status/

Ответ:

{
    "status": "string",
    "id": int,
    "name": "string"
}

Удаление задачи

Запрос:

DELETE /automation/api/job/{id}/

Ответ:

204 The server successfully processed the request, but is not returning any content.

Создание задачи

Запрос:

POST /automation/api/job/

Тело запроса:

{
  "name": "string",
  "notify": boolean,
  "params": "string",
  "enabled": boolean,
  "run_on_start": boolean,
  "groups": [ int ],
  "peers": [ "string" ],
  "policies": [
    int
  ],
  "dynamic_groups": [ int ]
}

Ответ:

{
    "id": int,
    "name": "string",
    "notify": boolean,
    "params": "string",
    "enabled": boolean,
    "run_on_start": boolean,
    "groups": [ int ],
    "peers": [
        {
            "id": int,
            "addr": "string",
            "status": "string",
            "username": "string",
            "hostname": "string",
            "server_id": "string"
        }
    ],
    "policies": [
        int
    ],
    "dynamic_groups": [ int ]
}

Обновление задачи PUT

Запрос:

PUT /automation/api/job/{id}/

Тело запроса:

{
  "name": "string",
  "notify": boolean,
  "params": "string",
  "enabled": boolean,
  "run_on_start": boolean,
  "groups": [ int ],
  "peers": [ "string" ],
  "policies": [ int ],
  "dynamic_groups": [ int ]
}

Ответ:

{
    "id": int,
    "name": "string",
    "notify": boolean,
    "params": "string",
    "enabled": boolean,
    "run_on_start": boolean,
    "groups": [ int ],
    "peers": [
        {
            "id": int,
            "addr": "string",
            "status": "string",
            "username": "string",
            "hostname": "string",
            "server_id": "string"
        }
    ],
    "policies": [ int ],
    "dynamic_groups": [ int ]
}

Обновление задачи PATCH

Запрос:

PATCH /automation/api/job/{id}/

Тело запроса:

{
  "name": string,
  "notify": boolean,
  "params": string,
  "enabled": boolean,
  "run_on_start": boolean,
  "groups": [ int ],
  "peers": [ string ],
  "policies": [ int ],
  "dynamic_groups": [ int ]
}

Ответ:

{
    "id": int,
    "name": string,
    "notify": boolean,
    "params": string,
    "enabled": boolean,
    "run_on_start": boolean,
    "groups": [ int ],
    "peers": [
        {
            "id": int,
            "addr": string,
            "status": string,
            "username": string,
            "hostname": string,
            "server_id": string
        }
    ],
    "policies": [ int ],
    "dynamic_groups": [ int ]
}