REST API

Примечание

Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.


Journal API

Предоставляет API для доступа к журналу действий над облаком.

Сервис журналирования aos-journal-api

Предоставляет историю всех действий над объектами OpenStack.

GET
/v1/journal/
Получение записей о действиях над объектами.

Дает возможность получать подробную информацию обо всех действиях пользователей над объектами.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path string Идентификатор записи в журнале.
object_id (Optional) path string Идентификатор объекта.
object_type (Optional) path string Тип объекта.
action (Optional) path string Наименование действия.
status (Optional) path string Статус действия.
event_time (Optional) path string Дата и время выполнения действия.
action_arguments path string Аргументы действия.
response_code (Optional) path string Код ответа.
message (Optional) path string Дополнительный комментарий к действию.
user_id (Optional) path string Идентификатор пользователя.
user_name (Optional) path string Имя пользователя.
domain_id (Optional) query string Идентификатор домена, которому принадлежит пользователь.
request_id (Optional) query string Идентификатор запроса.
filter_project_id (Optional) query string Идентификатор проекта. Используется для фильтрации действий над указанным проектом и над виртуальными машинами проекта.
filter_domain_id (Optional) query string Идентификатор домена. Используется для фильтрации действий над указанным доменом и действий, которые выполнены пользователем, принадлежащим указанному домену.
offset (Optional) query string Номер позиции для получения данных.
limit (Optional) query string Ограничение количества получаемых данных.

Параметры, поддерживающие модификаторы: id, object_id, object_type, action, status, event_time, action_arguments, response_code, message, user_id, user_name, domain_id, request_id.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9360/v1/journal/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор.
action body string Наименование действия.
action_arguments (Optional) body string Аргументы в формате JSON, используемые при выполнении действия. Например: '{"user": "admin"}'.
event_time (Optional) body string Дата и время выполнения действия.
message (Optional) body string Дополнительный комментарий к действию.
object_id body integer Идентификатор объекта.
object_type (Optional) query string Тип объекта.
request_id (Optional) body string Идентификатор запроса.
parent_request_id (Optional) body string Идентификатор родительского запроса.
response_code (Optional) body string Код ответа.
status body string Статус действия.
user_id (Optional) query string Идентификатор пользователя.
user_name body string Имя пользователя.
domain_id (Optional) body string Идентификатор домена.

Пример результата в JSON формате:

{
    "journal": [
        {
            "action": "dashboard.user.login",
            "action_arguments": null,
            "event_time": "2018-03-22T07:25:31",
            "id": 47,
            "message": "User \"admin\" was successfully logged in.",
            "object_id": "2fee08b2c0ee4ca9ad2907c922c92261",
            "object_type": "project",
            "parent_request_id": null,
            "request_id": "624fa546-e50b-4b7c-82be-8ed496de31a7",
            "response_code": null,
            "status": "success",
            "user_id": "5e48b18b-844d-477c-ab8d-6789a5382a14",
            "user_name": "admin",
            "domain_id": "46790262d1de48228a53c8887a932f48"
        }
    ]
}
GET
/v1/journal/count
Получение количества записей о действиях над объектами.

Дает возможность получать количество действий пользователей над объектами.

Запрос
Параметры запроса:
Name In Type Description
id (Optional) path string Идентификатор записи в журнале.
object_id (Optional) path string Идентификатор объекта.
object_type (Optional) path string Тип объекта.
action (Optional) path string Наименование действия.
status (Optional) path string Статус действия.
event_time (Optional) path string Дата и время выполнения действия.
action_arguments path string Аргументы действия.
response_code (Optional) path string Код ответа.
message (Optional) path string Дополнительный комментарий к действию.
user_id (Optional) path string Идентификатор пользователя.
user_name (Optional) path string Имя пользователя.
domain_id (Optional) query string Идентификатор домена, которому принадлежит пользователь.
request_id (Optional) query string Идентификатор запроса.
filter_project_id (Optional) query string Идентификатор проекта. Используется для фильтрации действий над указанным проектом и над виртуальными машинами проекта.
filter_domain_id (Optional) query string Идентификатор домена. Используется для фильтрации действий над указанным доменом и действий, которые выполнены пользователем, принадлежащим указанному домену.

Параметры, поддерживающие модификаторы: id, object_id, object_type, action, status, event_time, action_arguments, response_code, message, user_id, user_name, domain_id, request_id.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9360/v1/journal/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count body string Количество записей.

Пример результата в JSON формате:

{
    "count": 1
}
POST
/v1/journal/
Создание записей о действиях над объектами.

Дает возможность сохранять запись о действиях пользователей над объектами.

Запрос
Параметры запроса:
Name In Type Description
tenant_id path string Идентификатор проекта, в котором авторизован пользователь.
object_id body integer Идентификатор объекта.
object_type (Optional) query string Тип объекта.
action body string Наименование действия.
status body string Статус действия.
message (Optional) body string Дополнительный комментарий к действию.
user_id (Optional) query string Идентификатор пользователя.
user_name body string Имя пользователя.
request_id (Optional) body string Идентификатор запроса.
parent_request_id (Optional) body string Идентификатор родительского запроса.
action_arguments (Optional) body string Аргументы в формате JSON, используемые при выполнении действия. Например: '{"user": "admin"}'.
domain_id (Optional) body string Идентификатор домена.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"journal": {"object_id": "4", "object_type": "node", "action": "node_control.power_on", "status": "Success"}}' http://controller:9360/v1/journal/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body integer Идентификатор.
action body string Наименование действия.
action_arguments (Optional) body string Аргументы в формате JSON, используемые при выполнении действия. Например: '{"user": "admin"}'.
event_time (Optional) body string Дата и время выполнения действия.
message (Optional) body string Дополнительный комментарий к действию.
object_id body integer Идентификатор объекта.
object_type (Optional) query string Тип объекта.
request_id (Optional) body string Идентификатор запроса.
parent_request_id (Optional) body string Идентификатор родительского запроса.
response_code (Optional) body string Код ответа.
status body string Статус действия.
user_id (Optional) query string Идентификатор пользователя.
user_name body string Имя пользователя.
domain_id (Optional) body string Идентификатор домена.

Пример результата в JSON формате:

{
    "journal": {
        "action": "node_control.power_on",
        "action_arguments": null,
        "event_time": "2018-03-22T07:25:31",
        "id": 47,
        "message": null,
        "object_id": "2",
        "object_type": "node",
        "parent_request_id": null,
        "request_id": "624fa546-e50b-4b7c-82be-8ed496de31a7",
        "response_code": null,
        "status": "success",
        "user_id": "5e48b18b-844d-477c-ab8d-6789a5382a14",
        "user_name": "admin",
        "domain_id": "46790262d1de48228a53c8887a932f48"
    }
}

Подробное описание кодов ответа на запросы доступно во вкладке с дополнительной информацией.