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"
    }
}

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