REST API

Примечание

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


RS server API

Предоставляет API для управления удаленными рабочими столами.

Информация о модуле

Подробная информация о модуле.

GET
/v1/info
Получение подробной информации о модуле.
Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/info | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
version (Optional) body string Номер версии модуля.
license (Optional) body string Информация о лицензии.

Пример получения информации о модуле в JSON формате:

{
    "info": {
        "license": {
            "created_at": 1538141220,
            "expire_at": 1545955200,
            "module_package": "rs_server",
            "name": "Laboratoria",
            "product": "RSserver",
            "surrogate_name": "RSserver",
            "unique_id": "07-002-decf3c6c893561752802",
            "verified": true
        },
        "version": "0.1.0"
    }
}

TRS проекты

Действия с TRS проектами.

POST
/v1/projects/
Создание TRS проекта.

Создание нового TRS проекта с заданными параметрами.

Запрос
Параметры запроса:
Name In Type Description
name body string Имя проекта, уникальное в рамках домена.
enabled (Optional) body bool Состояние проекта (включен/выключен).
description (Optional) body string Описание проекта.
parent_id (Optional) body string Идентификатор родительского проекта/домена.
is_domain (Optional) body string Флаг, указывающий возможность использовать проект в качестве домена.
tags (Optional) body string Список тэгов проекта.
domain_id (Optional) body string Идентификатор домена проекта.
flavor_id body string Идентификатор типа виртуальных машин проекта.
image_id body string Идентификатор образа виртуальных машин проекта.
operation_mode (Optional) body string

Режим работы TRS машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
network_id (Optional) body string Идентификатор сети проекта.
availability_zone (Optional) body string Зона доступности проекта.
instance_init_script (Optional) body string Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта.
min_reserve_vm (Optional) body integer Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None.
instance_name_pattern (Optional) body string Шаблон имен виртуальных машин.
user_volume_enabled (Optional) body string Флаг, включающий автоматическое создание пользовательских дисков при подключении к виртуальной машине.
volume_size (Optional) body int Размер диска.
volume_type_id (Optional) body string Идентификатор типа диска.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"project":{"name": "test_proj","enabled": "True","description":"Test Project_2","parent_id":"37e51ab4c5134e5198788d1f6afe5b8b","domain_id":"37e51ab4c5134e5198788d1f6afe5b8b","flavor_id": "25a8679f-582a-4f7c-b9c2-286a60bedb76","image_id": "bdd277be-ebf3-4ff7-8c05-c6f20cbddd61","network_id": "39523179-37b5-4fd7-bf14-a1f7134a6b1f","operation_mode": "2", "availability_zone": "nova"}}' http://controller:9364/v1/projects/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор проекта.

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

{
    "project": {
        "id": "d394da7c4d0747bd879e0e865222b3d9",
   }
}
PUT
/v1/projects/{project_id}
Редактирование TRS проекта.

Изменение параметров TRS проекта.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта.
name (Optional) body string Имя проекта, уникальное в рамках домена.
enabled (Optional) body bool Состояние проекта (включен/выключен).
description (Optional) body string Описание проекта.
domain_id (Optional) body string Идентификатор домена проекта.
tags (Optional) body string Список тэгов проекта.
flavor_id (Optional) body string Идентификатор типа виртуальных машин проекта.
image_id (Optional) body string Идентификатор образа виртуальных машин проекта.
network_id (Optional) body string Идентификатор сети проекта.
availability_zone (Optional) body string Зона доступности проекта.
instance_init_script (Optional) body string Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта.
min_reserve_vm (Optional) body integer Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None.
instance_name_pattern (Optional) body string Шаблон имен виртуальных машин.
user_volume_enabled (Optional) body string Флаг, включающий автоматическое создание пользовательских дисков при подключении к виртуальной машине.
volume_size (Optional) body int Размер диска.
volume_type_id (Optional) body string Идентификатор типа диска.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"project":{"name": "new name","enabled": "False","description":"Test Project_2","flavor_id": "25a8679f-582a-4f7c-b9c2-286a60bedb76","image_id": "bdd277be-ebf3-4ff7-8c05-c6f20cbddd61","network_id": "39523179-37b5-4fd7-bf14-a1f7134a6b1f", "availability_zone": "nova", "instance_init_script": "IyEvYmluL3NoCmVjaG8gJ0hlbGxvIGZyb20gdGhlIGRldiB0ZWFtISc="}}' http://controller:9364/v1/projects/5f62c4da73f34e869d9a3e8ab79b147a | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор проекта.
flavor_id (Optional) body string Идентификатор типа виртуальных машин проекта.
image_id (Optional) body string Идентификатор образа виртуальных машин проекта.
network_id (Optional) body string Идентификатор сети проекта.
availability_zone (Optional) body string Зона доступности проекта.
operation_mode (Optional) body string

Режим работы TRS машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
instance_init_script (Optional) body string Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта.
user_volume_enabled (Optional) body string Флаг, включающий автоматическое создание пользовательских дисков при подключении к виртуальной машине.
volume_size (Optional) body int Размер диска.
volume_type_id (Optional) body string Идентификатор типа диска.

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

{
    "project": {
        "id": "d394da7c4d0747bd879e0e865222b3d9",
        "image_id": "bdd277be-ebf3-4ff7-8c05-c6f20cbddd61",
        "flavor_id": "25a8679f-582a-4f7c-b9c2-286a60bedb76",
        "network_id": "39523179-37b5-4fd7-bf14-a1f7134a6b1f",
        "availability_zone": "nova",
        "operation_mode": "1",
        "instance_init_script": "IyEvYmluL3NoCmVjaG8gJ0hlbGxvIGZyb20gdGhlIGRldiB0ZWFtISc=",
        "user_volume_enabled": true,
        "volume_size": 1,
        "volume_type_id": null
   }
}
GET
/v1/projects/
Получение списка TRS проектов.

Получение списка TRS проектов (тенантов).

Запрос
Параметры запроса:
Name In Type Description
name (Optional) body string Имя проекта, уникальное в рамках домена.
enabled (Optional) body bool Состояние проекта (включен/выключен).
domain (Optional) body string Имя домена проекта.
user (Optional) body string Идентификатор пользователя.
operation_mode (Optional) body string

Режим работы TRS машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
with_os_object (Optional) path bool Параметр, позволяющий расширять ответ объектом os_project, содержащим атрибуты проекта OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/projects/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор проекта.
image_id (Optional) body string Идентификатор образа виртуальных машин проекта.
flavor_id (Optional) body string Идентификатор типа виртуальных машин проекта.
network_id (Optional) body string Идентификатор сети проекта.
availability_zone (Optional) body string Зона доступности проекта.
operation_mode (Optional) body string

Режим работы TRS машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
os_project (Optional) body object Проект OpenStack.

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

{
    "projects": [
        {
            "id": "d394da7c4d0747bd879e0e865222b3d9",
            "image_id": "d91232fa-14ad-4e41-980a-d82dc9ea3929",
            "flavor_id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
            "network_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
            "availability_zone": "nova",
            "operation_mode": "1",
            "user_volume_enabled": true,
            "volume_size": 1,
            "volume_type_id": null
        },
        {
            "id": "37e51ab4c5134e5198788d1f6afe5b8b",
            "image_id": "747488c2-5aa6-4d92-a982-e0319bee70e1",
            "flavor_id": "fc77978d-02fb-4a53-b839-313abb7343c3",
            "network_id": "d57e3c66-69bb-46d3-af75-28c41ed1076f",
            "availability_zone": "nova",
            "operation_mode": "2",
            "user_volume_enabled": true,
            "volume_size": 1,
            "volume_type_id": null
        }
    ]
}
GET
/v1/projects/{project_id}
Получение подробной информации о TRS проекте.

Получение подробной информации о TRS проекте.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта.
with_os_object (Optional) path bool Параметр, позволяющий расширять ответ объектом os_project, содержащим атрибуты проекта OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" "http://controller:9364/v1/projects/$project_id?with_os_object=true" | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор проекта.
image_id (Optional) body string Идентификатор образа виртуальных машин проекта.
flavor_id (Optional) body string Идентификатор типа виртуальных машин проекта.
network_id (Optional) body string Идентификатор сети проекта.
availability_zone (Optional) body string Зона доступности проекта.
operation_mode (Optional) body string

Режим работы TRS машин проекта. Возможные значения:

  • 1 - Standard/Стандартный;
  • 2 - Simultaneous/Совместный.
instance_init_script (Optional) body string Скрипт, закодированный в формате base64. Исполняется при создании всех TRS машин проекта.
min_reserve_vm (Optional) body integer Минимальное количество резервных виртуальных машин в проекте. По умолчанию: None.
instance_name_pattern (Optional) body string Шаблон имен виртуальных машин.
os_project (Optional) body object Проект OpenStack.

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

{
    "project": {
        "availability_zone": "",
        "flavor_id": "41f2e2b1-d806-4688-8814-d4bedd6aee20",
        "id": "c445f25f8c7e48a99ee7985309ed6954",
        "image_id": "1e56ddcc-4d8d-42a1-8650-8a496c498e8c",
        "instance_init_script": null,
        "network_id": "3bff4756-aed7-4603-8fec-cfbe83654f14",
        "operation_mode": "1",
        "user_volume_enabled": true,
        "volume_size": 1,
        "volume_type_id": null,
        "os_project": {
            "availability_zone": "",
            "description": "",
            "domain_id": "default",
            "enabled": true,
            "flavor_id": "41f2e2b1-d806-4688-8814-d4bedd6aee20",
            "id": "c445f25f8c7e48a99ee7985309ed6954",
            "image_id": "1e56ddcc-4d8d-42a1-8650-8a496c498e8c",
            "is_domain": false,
            "links": {
                "self": "http://dev-cnt7q-ovs-02.stand.loc:5000/v3/projects/c445f25f8c7e48a99ee7985309ed6954"
            },
            "name": "0745ee8b21a949fab34cd2d05265234c",
            "network_id": "3bff4756-aed7-4603-8fec-cfbe83654f14",
            "operation_mode": "1",
            "parent_id": "default",
            "project_type": "TRS",
            "tags": [
                "trs"
            ]
        }
    }
}
GET
/v1/projects/actions/get-settings
Получение значений по умолчанию.

Получение значений по умолчанию для TRS проектов из конфигурационного файла: шаблон имен TRS машин, зона доступности.

Параметры запроса:

Запрос не имеет параметров.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" "http://controller:9364/v1/projects/actions/get-settings" | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
instance_name_pattern (Optional) body string Шаблон имен виртуальных машин.
default_availability_zone (Optional) body string Зона доступности по умолчанию.

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

{
  "project_settings": {
    "instance_name_pattern": "trs-**",
    "default_availability_zone": "nova"
  }
}
GET
/v1/projects/{project_id}/statistics
Получение статистики TRS проекта.

Получение статистики TRS проекта.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" "http://controller:9364/v1/projects/$project_id/statistics" | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
created_servers (Optional) body string Количество созданных виртуальных машин.
active_servers (Optional) body string Количество активных виртуальных машин.
error_servers (Optional) body string Количество виртуальных машин в статусе error.
created_trs_servers (Optional) body string Количество созданных виртуальных TRS машин.
active_trs_servers (Optional) body string Количество активных виртуальных TRS машин.
error_trs_servers (Optional) body string Количество виртуальных TRS машин в статусе error.
free_trs_servers (Optional) body string Количество свободных виртуальных TRS машин (нет ассоциированных пользователей).
occupied_trs_servers (Optional) body string Количество занятых виртуальных TRS машин.
simultaneous_trs_servers (Optional) body string Количество виртуальных TRS машин, для которых ассоциировано больше одного пользователя.

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

{
    "statistics": {
        "created_servers": 10,
        "active_servers": 8,
        "error_servers": 1,
        "created_trs_servers": 10,
        "active_trs_servers": 8,
        "error_trs_servers": 1,
        "free_trs_servers": 2,
        "occupied_trs_servers": 8,
        "simultaneous_trs_servers": 4
    }
}
POST
/v1/projects/{project_id}/actions/auto-allocate-users
Автоматическое распределение свободных виртуальных машин.

Автоматическое распределение свободных виртуальных машин проекта пользователям.

Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта.
with_os_object (Optional) path bool Параметр, позволяющий расширять ответ объектом os_project, содержащим атрибуты проекта OpenStack.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9364/v1/projects/db172307fd47470ca0cf254427d22f14/actions/auto-allocate-users
Ответ
Параметры ответа:
Name In Type Description
task_id (Optional) body string ID задачи в celery.

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

{
    "task_id": "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
}

Виртуальные TRS машины

Действия с виртуальными TRS машинами.

POST
/v1/servers/
Создание TRS машины.

Создание новой виртуальной машины с типом TRS.

Запрос
Параметры запроса:
Name In Type Description
name body string Имя виртуальной машины. Максимальная длина имени TRS машины не должна превышать 245 символов.
count (Optional) body integer Количество созданных виртуальных машин.
description (Optional) body string Описание виртуальной машины.
users (Optional) body array Пользователи виртуальной TRS машины.
groups (Optional) body array Группы пользователей виртуальной машины.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"server":{"name": "test_vm", "count": 1,"description":"Test TRS vm"}}' http://controller:9364/v1/servers/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор виртуальной машины.
reservation_id (Optional) body string Reservation ID созданных виртуальных машин.

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

{
    "servers": [
        {
            "id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
        },
        {
            "id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
        },
    ],
    "reservation_id": "r-vd4o1bvy"
}
PUT
/v1/servers/{server_id}
Редактирование TRS машины.

Изменение параметров TRS машины.

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
users (Optional) body array Пользователи виртуальной TRS машины.
groups (Optional) body array Группы пользователей виртуальной машины.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"server":{"users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "0972fadc-6f8d-415a-b4cb-d4a0992b2370"], "groups": ["d57e3c66-69bb-46d3-af75-28c41ed1076f"]}}' http://controller:9364/v1/servers/254ba49f-584b-419d-9e86-afe9aa8a122e | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор виртуальной машины.
project_id body string Идентификатор проекта.
assigned body string Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа.
users (Optional) body array Пользователи виртуальной TRS машины.
groups (Optional) body array Группы пользователей виртуальной машины.

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

{
    "server": {
        "id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
        "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
        "assigned": true,
        "users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929",
                  "0972fadc-6f8d-415a-b4cb-d4a0992b2370"],
        "groups": ["d57e3c66-69bb-46d3-af75-28c41ed1076f"]
    }
}
GET
/v1/servers/
Получение списка TRS машин.

Получение списка TRS машин.

Запрос
Параметры запроса:
Name In Type Description
project_id (Optional) path string Идентификатор проекта.
assigned (Optional) path string Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа.
group (Optional) path string Группа пользователей виртуальной машины.
user (Optional) path string Пользователь виртуальной TRS машины.
with_os_object (Optional) path bool Параметр, позволяющий расширять ответ объектом os_server, содержащим атрибуты виртуальной машины OpenStack.

Параметры, поддерживающие модификаторы: project_id, assigned.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор виртуальной машины.
project_id body string Идентификатор проекта.
assigned body string Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа.
users (Optional) body array Пользователи виртуальной TRS машины.
groups (Optional) body array Группы пользователей виртуальной машины.
os_server (Optional) body object Виртуальная машина OpenStack.

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

{
    "servers": [
        {
            "id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
            "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
            "assigned": true,
            "users": ["0972fadc-6f8d-415a-b4cb-d4a0992b2370"],
            "groups": [],
        },
        {
            "id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370",
            "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
            "assigned": true,
            "users": ["2506940c-22f9-4b81-a865-9aa6e7d7cba3",
                      "747488c2-5aa6-4d92-a982-e0319bee70e1"],
            "groups": ["d91232fa-14ad-4e41-980a-d82dc9ea3929"],
        }
    ]
}
GET
/v1/servers/{server_id}
Получение подробной информации о TRS машине.

Получение подробной информации о TRS машине.

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
with_os_object (Optional) path bool Параметр, позволяющий расширять ответ объектом os_server, содержащим атрибуты виртуальной машины OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" "http://controller:9364/v1/servers/$server_id?with_os_object=true" | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор виртуальной машины.
project_id body string Идентификатор проекта.
assigned body string Флаг, который указывает, назначен ли на виртуальную машину пользователь или группа.
users (Optional) body array Пользователи виртуальной TRS машины.
groups (Optional) body array Группы пользователей виртуальной машины.
os_server (Optional) body object Виртуальная машина OpenStack.

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

{
    "server": {
        "groups": [
            "4a2fa50aad544c81ae23dfb22a871755"
        ],
        "id": "7ad6183a-817e-47c7-b848-741fdfbecc40",
        "project_id": "184e540c7dc74df9ba31df50e1c3daf5",
        "assigned": true,
        "os_server": {
            "OS-DCF:diskConfig": "MANUAL",
            "OS-EXT-AZ:availability_zone": "test",
            "OS-EXT-SRV-ATTR:host": null,
            "OS-EXT-SRV-ATTR:hostname": "d2a83cd9-8ba7-4807-a29e-f59e11b7e49a-2",
            "OS-EXT-SRV-ATTR:hypervisor_hostname": null,
            "OS-EXT-SRV-ATTR:instance_name": "instance-00000009",
            "OS-EXT-SRV-ATTR:kernel_id": "",
            "OS-EXT-SRV-ATTR:launch_index": 1,
            "OS-EXT-SRV-ATTR:ramdisk_id": "",
            "OS-EXT-SRV-ATTR:reservation_id": "r-sr4oac5f",
            "OS-EXT-SRV-ATTR:root_device_name": "/dev/vda",
            "OS-EXT-SRV-ATTR:user_data": null,
            "OS-EXT-STS:power_state": 0,
            "OS-EXT-STS:task_state": null,
            "OS-EXT-STS:vm_state": "active",
            "OS-SRV-USG:launched_at": null,
            "OS-SRV-USG:terminated_at": null,
            "accessIPv4": "",
            "accessIPv6": "",
            "addresses": {},
            "config_drive": "",
            "created": "2018-12-17T12:25:04Z",
            "description": null,
            "flavor": {
                "disk": 0,
                "ephemeral": 0,
                "extra_specs": {},
                "original_name": "c1_r1G_d0",
                "ram": 1024,
                "swap": 0,
                "vcpus": 1
            },
            "hostId": "",
            "host_status": "",
            "id": "7ad6183a-817e-47c7-b848-741fdfbecc40",
            "image": {
                "id": "d0bed70d-560d-48cd-bd20-0b1818545d39",
                "links": [
                    {
                        "href": "http://dev-cnt7q-ovs-02.stand.loc:8774/ce1eaa969dd74cf0a33fe222f087533c/images/d0bed70d-560d-48cd-bd20-0b1818545d39",
                        "rel": "bookmark"
                    }
                ]
            },
            "key_name": null,
            "links": [
                {
                    "href": "http://dev-cnt7q-ovs-02.stand.loc:8774/v2.1/ce1eaa969dd74cf0a33fe222f087533c/servers/7ad6183a-817e-47c7-b848-741fdfbecc40",
                    "rel": "self"
                },
                {
                    "href": "http://dev-cnt7q-ovs-02.stand.loc:8774/ce1eaa969dd74cf0a33fe222f087533c/servers/7ad6183a-817e-47c7-b848-741fdfbecc40",
                    "rel": "bookmark"
                }
            ],
            "locked": false,
            "metadata": {},
            "name": "d2a83cd9-8ba7-4807-a29e-f59e11b7e49a-2",
            "os-extended-volumes:volumes_attached": [],
            "progress": 0,
            "status": "ACTIVE",
            "tags": [
                "trs"
            ],
            "tenant_id": "184e540c7dc74df9ba31df50e1c3daf5",
            "updated": "2018-12-17T12:43:06Z",
            "user_id": "cf5910a0ff0c43158c82f86a2b974b55"
        },
        "users": [
            "47aa3ba7eb48459bac24c5929f49a3c3"
        ]
    }
}

Пользователи и группы пользователей TRS машин

Управление пользователями и группами пользователей TRS машин.

POST
/v1/servers/{server_id}/users/
Назначение пользователей TRS машине.

Назначение пользователей TRS машине. Вся информация о назначениях пользователей и их отмене сохраняется в базе данных.

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
users body array Пользователи виртуальной TRS машины.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"users": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/servers/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/users/

Эта операция не имеет содержания ответа.

POST
/v1/servers/{server_id}/groups/
Назначение групп пользователей TRS машине.

Назначение групп пользователей TRS машине. Вся информация о назначениях групп и их отмене сохраняется в базе данных.

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
groups body array Группы пользователей виртуальной машины.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"groups": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/servers/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/groups/

Эта операция не имеет содержания ответа.

POST
/v1/users/{user_id}/servers/
Назначение пользователя TRS машинам.

Назначение пользователя TRS машинам. Вся информация о назначениях пользователей и их отмене сохраняется в базе данных.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
servers body array Виртуальные TRS машины пользователя.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"servers": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/users/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/servers/

Эта операция не имеет содержания ответа.

POST
/v1/groups/{group_id}/servers/
Назначение группы пользователей TRS машинам.

Назначение группы пользователей TRS машинам. Вся информация о назначениях групп и их отмене сохраняется в базе данных.

Запрос
Параметры запроса:
Name In Type Description
group_id path string Идентификатор группы пользователей.
servers body array Виртуальные машины группы пользователей.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"servers": ["d91232fa-14ad-4e41-980a-d82dc9ea3929", "2506940c-22f9-4b81-a865-9aa6e7d7cba3"]}' http://controller:9364/v1/groups/246bc0c0-6f82-4343-8d9e-9c1ef706a3d0/servers/

Эта операция не имеет содержания ответа.

GET
/v1/users/{user_id}/servers/
Получение списка TRS машин пользователя.

Получение списка TRS машин пользователя.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/bd4a97119113445e8d3ce323051b945d/servers/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
instance_id body string Идентификатор виртуальной машины.
project_id (Optional) body string Идентификатор проекта.
project_name (Optional) body string Имя проекта, уникальное в рамках домена.

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

{
    "servers": [
        {
            "instance_id": "64946d43-6bec-4a34-898c-25b67426e3e4",
            "project_id": "10145e7899324f03bef44502e316bf96",
            "project_name": "fdd89303-1e16-4dfa-a48a-3d8de47f550a"
        },
        {
            "instance_id": "937a0e68-98f7-474f-b2ed-f2b6ab121579",
            "project_id": "10145e7899324f03bef44502e316bf96",
            "project_name": "fdd89303-1e16-4dfa-a48a-3d8de47f550a"
        }
    ]
}
GET
/v1/servers/{server_id}/users/
Получение списка пользователей TRS машины.

Получение списка пользователей TRS машины.

Запрос
Параметры запроса:
Name In Type Description
server_id body string Идентификатор виртуальной машины.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/2506940c-22f9-4b81-a865-9aa6e7d7cba3/users/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор пользователя.

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

{
    "users": [
                {"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370"},
                {"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3"},
                {"id": "747488c2-5aa6-4d92-a982-e0319bee70e1"}
             ]
}
GET
/v1/servers/{server_id}/groups/
Получение списка групп пользователей TRS машины.

Получение списка групп пользователей TRS машины.

Запрос
Параметры запроса:
Name In Type Description
server_id body string Идентификатор виртуальной машины.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/2506940c-22f9-4b81-a865-9aa6e7d7cba3/groups/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id (Optional) body string Идентификатор группы пользователей.

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

{
    "groups": [
                {"id": "0972fadc-6f8d-415a-b4cb-d4a0992b2370"},
                {"id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3"},
                {"id": "747488c2-5aa6-4d92-a982-e0319bee70e1"}
             ]
}
DELETE
/v1/servers/{server_id}/users/{user_id}
Снятие назначения пользователей TRS машинам.

Снятие назначения пользователей TRS машинам.

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
user_id path string Идентификатор пользователя.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/0972fadc-6f8d-415a-b4cb-d4a0992b2370/users/747488c2-5aa6-4d92-a982-e0319bee70e1

Эта операция не имеет содержания ответа.

DELETE
/v1/servers/{server_id}/groups/{group_id}
Снятие назначения групп пользователей TRS машины.

Снятие назначения групп пользователей TRS машинам.

Запрос
Параметры запроса:
Name In Type Description
server_id path string Идентификатор виртуальной машины.
group_id path string Идентификатор группы пользователей.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/servers/0972fadc-6f8d-415a-b4cb-d4a0992b2370/groups/747488c2-5aa6-4d92-a982-e0319bee70e1

Эта операция не имеет содержания ответа.

Плавающие IP-адреса

Действия с плавающими IP-адресами.

GET
/v1/users/
Получение списка пользователей с назначенным плавающим IP-адресом.

Получение списка всех пользователей, для которых назначены плавающие IP-адреса.

Запрос
Параметры запроса:

Запрос не имеет параметров.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/ | python -m json.tool
Параметры ответа:
Name In Type Description
id body string Идентификатор пользователя.
floating_ip_id body string Идентификатор плавающего IP-адреса.

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

{
    "users": [
        {
            "id": "56d88dd0a3ab4c4c8d1d15534352d7de",
            "floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"
        }
    ]
}
GET
/v1/users/{user_id}
Получение пользователя с назначенным плавающим IP-адресом.

Получение пользователя, на которого назначен плавающий IP-адрес.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/$user_id | python -m json.tool
Параметры ответа:
Name In Type Description
id body string Идентификатор пользователя.
floating_ip_id (Optional) body string Идентификатор плавающего IP-адреса.

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

{
    "user": [
        {
            "id": "56d88dd0a3ab4c4c8d1d15534352d7de",
            "floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"
        }
    ]
}
POST
/v1/users/{user_id}/floating-ip
Назначение плавающего IP-адреса пользователю.

Назначение плавающего IP-адреса пользователю.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
floating_ip_id body string Идентификатор плавающего IP-адреса.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/$user_id/floating-ip -d '{"floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"}'

Эта операция не имеет содержания ответа.

PUT
/v1/users/{user_id}/floating-ip
Обновление назначения плавающего IP-адреса пользователю.

Обновление назначения плавающего IP-адреса пользователю.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
floating_ip_id body string Идентификатор плавающего IP-адреса.
Пример запроса:
curl -X PUT -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/users/$user_id/floating-ip -d '{"floating_ip_id": "c3bdc5ba-cdff-49d0-b84c-ac9329ab1410"}'

Эта операция не имеет содержания ответа.

DELETE
/v1/users/{user_id}/floating-ip
Снятие назначения плавающего IP-адреса пользователю.

Снятие назначения плавающего IP-адреса пользователю.

Запрос
Параметры запроса:
Name In Type Description
user_id path string Идентификатор пользователя.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9364/v1/users/$user_id/floating-ip

Эта операция не имеет содержания ответа.

Сессии

Действия с сессиями.

GET
/v1/sessions/
Получение списка сессий.

Получение списка сессий.

Запрос
Параметры запроса:
Name In Type Description
user_id (Optional) body string Идентификатор пользователя.
user_name (Optional) body string Имя пользователя.
instance_id (Optional) body string Идентификатор виртуальной машины.
instance_name (Optional) body string Имя виртуальной машины.
project_id (Optional) body string Идентификатор проекта.
connection_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
last (Optional) body bool Дополнительный параметр, указывающий необходимость вывода только последних сессий виртуальных машин.

Параметры, поддерживающие модификаторы: user_id, user_name, instance_id.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/sessions/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
instance_id (Optional) body string Идентификатор виртуальной машины.
session_id (Optional) body string Идентификатор сессии.
user_id (Optional) body string Идентификатор пользователя.
user_name (Optional) body string Имя пользователя.
connection_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
closed_at (Optional) body string Дата и время закрытия сессии.
client_ip (Optional) body string IP-адрес клиента.
client_os (Optional) body string Операционная система клиента.
client_info (Optional) body string Информация о клиенте.
created_at (Optional) body string Время создания сессии.

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

{
    "sessions": [
        {
            "instance_id": "e3afefea-7dfe-4754-8607-fb3f45b0fe07",
            "session_id": "11fa220f-9f88-406a-ba79-0acbba83c32b",
            "user_id": "56d88dd0a3ab4c4c8d1d15534352d7de",
            "user_name": "admin",
            "connection": "web",
            "closed_at": null,
            "client_ip": "192.168.0.2",
            "client_os": "Ubuntu 16.04",
            "client_info": "RSclient 0.1.0"
            "created_at": "2018-10-31T12:59:43"
        }
    ]
}
GET
/v1/sessions/count
Получение количества сессий.

Получение количества сессий.

Запрос
Параметры запроса:
Name In Type Description
user_id (Optional) body string Идентификатор пользователя.
user_name (Optional) body string Имя пользователя.
instance_id (Optional) body string Идентификатор виртуальной машины.
instance_name (Optional) body string Имя виртуальной машины.
project_id (Optional) body string Идентификатор проекта.
connection_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
last (Optional) body bool Дополнительный параметр, указывающий необходимость вывода только последних сессий виртуальных машин.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/sessions/count | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
count (Optional) body integer Количество объектов.

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

{
    "count": 5
}
POST
/v1/sessions/
Добавление сессии.

Добавление новой сессии.

Запрос
Параметры запроса:
Name In Type Description
conn_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
instance_id body string Идентификатор виртуальной машины.
client_ip (Optional) body string IP-адрес клиента.
client_os (Optional) body string Операционная система клиента.
client_info (Optional) body string Информация о клиенте.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" -d '{"session": {"instance_id": "8735df50-6e08-462e-b091-1552f8588fd4", "conn_type": "web"}}' http://controller:9364/v1/sessions/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
instance_id (Optional) body string Идентификатор виртуальной машины.
user_id (Optional) body string Идентификатор пользователя.
user_name (Optional) body string Имя пользователя.
connection_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
closed_at (Optional) body string Дата и время закрытия сессии.
client_ip (Optional) body string IP-адрес клиента.
client_os (Optional) body string Операционная система клиента.
client_info (Optional) body string Информация о клиенте.
created_at (Optional) body string Время создания сессии.

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

{
    "session": {
        "instance_id": "e3afefea-7dfe-4754-8607-fb3f45b0fe07",
        "user_id": "56d88dd0a3ab4c4c8d1d15534352d7de",
        "user_name": "admin",
        "connection": "web",
        "closed_at": null,
        "client_ip": "192.168.0.2",
        "client_os": "Ubuntu 16.04",
        "client_info": "RSclient 0.1.0",
        "created_at": "2018-10-31T12:59:43"
    }
}

Назначение дисков пользователю

Назначение дисков пользователю.

GET
/v1/volume-assignments/
Получение списка назначений.

Получение списка назначений дисков.

Запрос
Параметры запроса:
Name In Type Description
user_id (Optional) path string Идентификатор пользователя.
project_id (Optional) path string Идентификатор проекта.
volume_id (Optional) path string Идентификатор диска.

Параметры, поддерживающие модификаторы: user_id, project_id, volume_id.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/volume-assignments/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор назначения диска.
user_id body string Идентификатор пользователя.
project_id body string Идентификатор проекта.
volume_id body string Идентификатор диска.

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

{
    "volume-assignments": [
        {
            "id": 5,
            "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
            "user_id": "c72a1b62a8194426a0e4c40a4b4d77a0",
            "volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"
        },
        {
            "id": 10,
            "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
            "user_id": "7ac2f8179b174f7bb5a34d9646e856ef",
            "volume_id": "2f1a653b-2f5a-499c-a2b9-2a893b855504"
        }
    ]
}
GET
/v1/volume-assignments/{assignment_id}
Получение информации о назначении.

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

Запрос
Параметры запроса:
Name In Type Description
assignment_id path string Идентификатор назначения диска.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/volume-assignments/5 | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор назначения диска.
user_id body string Идентификатор пользователя.
project_id body string Идентификатор проекта.
volume_id body string Идентификатор диска.

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

{
    "volume-assignment": {
        "id": 5,
        "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
        "user_id": "c72a1b62a8194426a0e4c40a4b4d77a0",
        "volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"
    }
}
POST
/v1/volume-assignments/
Создание назначения диска пользователю.

Создание назначения диска пользователю.

Запрос
Параметры запроса:
Name In Type Description
user_id body string Идентификатор пользователя.
project_id body string Идентификатор проекта.
volume_id body string Идентификатор диска.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9364/v1/volume-assignments/ -d '{"user_id": "c72a1b62a8194426a0e4c40a4b4d77a0", "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f", "volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"}'
Ответ
Параметры ответа:
Name In Type Description
id body string Идентификатор назначения диска.
user_id body string Идентификатор пользователя.
project_id body string Идентификатор проекта.
volume_id body string Идентификатор диска.

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

{
    "volume-assignment": {
        "id": 5,
        "project_id": "3005d0d44cf84c7cbcb1ad1be83fba8f",
        "user_id": "c72a1b62a8194426a0e4c40a4b4d77a0",
        "volume_id": "c8327ff2-eb85-4495-ab68-df4aa36d7ae0"
    }
}
DELETE
/v1/volume-assignments/{assignment_id}
Удаление назначения диска пользователю.

Удаление назначения диска пользователю.

Запрос
Параметры запроса:
Name In Type Description
assignment_id path string Идентификатор назначения диска.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9364/v1/volume-assignments/5

Эта операция не имеет содержания ответа.

TRS broker API

Виртуальные TRS машины

Интерфейс предоставляет возможность подключения к виртуальной TRS машине.

POST
/v1/request-vm/
Получение ID задачи получения виртуальной TRS машины.

Получение ID асинхронной задачи получения адреса виртуальной машины для подключения.

Запрос
Параметры запроса:
Name In Type Description
user body string Имя пользователя.
password body string Пароль пользователя.
user_domain_name body string Доменное имя пользователя.
auth_tenant (Optional) body string Имя проекта, уникальное в рамках домена.
project_domain_name (Optional) body string Имя домена проекта.
ip_address (Optional) body string IP-адрес для создания правил группы безопасности виртуальной машины.
conn_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
os (Optional) body string Операционная система клиента.
client (Optional) body string Информация о клиенте.
Параметры запроса c токеном авторизации:
Name In Type Description
token body string Токен аутентификации.
auth_tenant (Optional) body string Имя проекта, уникальное в рамках домена.
project_domain_name (Optional) body string Имя домена проекта.
ip_address (Optional) body string IP-адрес для создания правил группы безопасности виртуальной машины.
conn_type (Optional) body string

Тип подключения. Возможные значения:

  • web - подключение через веб клиент;
  • ssh - подключение через консоль;
  • client - подключение через приложение RSclient.
os (Optional) body string Операционная система клиента.
client (Optional) body string Информация о клиенте.
Пример запроса:
curl -X POST -H "Content-Type: application/json" http://controller:9365/v1/request-vm/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default"}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
X-Auth-Token header string Токен аутентификации.
request_id body string Идентификатор запроса.

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

{
    "request_id": "fe8775d4-1ac0-4224-9fec-93151e0bfc43"
}
POST
/v1/get-vm/
Получение IP-адреса виртуальной TRS машины по ID задачи.

Получение IP виртуальной машины по ID асинхронной задачи.

Запрос
Параметры запроса:
Name In Type Description
request body string Идентификатор запроса.
Пример запроса:
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/get-vm/ -d '{"request": "req-48a56205-f4b5-4c05-8c64-30342a7e1cee"}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
status body string Статус запроса.
message body string Сообщение запроса.
id body string Идентификатор виртуальной машины.
vm_state body string Состояние виртуальной машины.
ip body string IP-адрес виртуальной машины.
progress body integer Состояние прогресса создания виртуальной машины. Проставляется службой nova.
task_state body string Состояние задачи.

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

{
    "status": "completed",
    "message": null,
    "server": {
        "status": "ACTIVE",
        "vm_state": "active",
        "ip": "192.168.1.13",
        "progress": 0,
        "task_state": null,
        "id": "c14d27cd-799e-4317-a430-af7c877703cf"
    }
}
POST
/v1/get-projects/
Получение списка TRS проектов пользователя.

Получение списка TRS проектов пользователя.

Запрос
Параметры запроса:
Name In Type Description
user body string Имя пользователя.
password body string Пароль пользователя.
user_domain_name body string Доменное имя пользователя.
Пример запроса:
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/get-projects/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default"}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
projects body array Список проектов, доступных пользователю.

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

{
    "projects": [
        "trs_project1",
        "trs_project2",
        "trs_project3"
    ]
}
POST
/v1/server-remove-user/
Отвязка пользователя от TRS машины.

Отвязка пользователя от TRS машины.

Запрос
Параметры запроса:
Name In Type Description
user body string Имя пользователя.
password body string Пароль пользователя.
user_domain_name body string Доменное имя пользователя.
instance_id body string Идентификатор виртуальной машины.
Пример запроса:
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/server-remove-user/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default", "instance_id": "11"}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
message body string Сообщение.

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

{
    "message": "User with user_id = 1 was deleted from instance with instance_id = 11"
}
POST
/v1/delete-vm/
Удаление TRS машины.

Удаление TRS машины.

Запрос
Параметры запроса:
Name In Type Description
user body string Имя пользователя.
password body string Пароль пользователя.
user_domain_name body string Доменное имя пользователя.
instance_id body string Идентификатор виртуальной машины.
project_name body string Имя проекта, уникальное в рамках домена.
Пример запроса:
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/delete-vm/ -d '{"user": "trs", "password": "rR0666&4", "user_domain_name": "default", "instance_id": "11", "project_name": "a123"}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
message body string Сообщение.

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

{
    "message": "Instance with instance_id = 11 was deleted"
}

Описание ошибок обращений к TRS server

В случае ошибки сервер вернет ответ со статусом HTTP 400, который будет содержать объект error со следующими параметрами:

  • code - код ошибки;
  • message - краткое описание ошибки;
  • data - дополнительная информация об ошибке.
Перечень кодов ошибок с описанием
Код ошибки Описание на английском Сообщение в RS клиенте на английском Описание на русском Сообщение в RS клиенте на русском
1
Unexpected error occurred.
Unexpected error occurred. Please contact system administrator.
Произошла непредвиденная ошибка.
Произошла непредвиденная ошибка. Обратитесь к системному администратору.
2
License expired.
License of RS server {cloud_url} got out. Please contact system administrator.
Истек срок действия лицензии.
Срок лицензии модуля RS сервер {cloud_url} истек. Обратитесь к системному администратору.
3
Asynchronous task of getting an instance failed.
Ошибка при выполнении асинхронной задачи получения виртуальной машины.
4
Failed to start asynchronous task of getting an instance.
Не удалось запустить асинхронную задачу получения виртуальной машины.
5
No available TRS project in the specified domain found.
No available TRS project found. Please contact system administrator.
Нет доступных TRS проектов для пользователя в указанном домене.
Нет ни одного доступного TRS проекта. Обратитесь к системному администратору.
6
Authentication error.
Invalid credentials. Please contact system administrator.
Ошибка аутентификации.
Неправильные учётные данные. Обратитесь к системному администратору.
7
Password expired.
The password needs to be changed.
Истек срок действия пароля.
Необходимо изменить пароль.
8
The specified project is not TRS.
Not a TRS project: {project_name}.
Указанный проект не является TRS проектом.
Проект {project_name} не является TRS проектом.
9
Invalid request body.
Неверное тело запроса.
10
Unable to find an instance obtain request by given ID.
Не удалось найти запрос на получение виртуальной машины по указанному ID.
11
Forbidden to obtain an instance request.
Нет доступа к указанному запросу на получение виртуальной машины.
12
Project quota exceeded.
Quota exceeded for TRS project «{project_name}». Please contact system administrator.
Превышена квота проекта.
Превышена квота для TRS проекта «{project_name}». Обратитесь к системному администратору.
13
Instance creation failed.
Unable to create instance in project {project_name}. Please contact system administrator.
Не удалось создать новую виртуальную машину.
Не удалось создать виртуальную машину в проекте {project_name}. Обратитесь к системному администратору.
14
No instances found in the specified project.
No instance found in project {project_name}. Please contact system administrator.
Нет доступных виртуальных машин в указанном проекте.
Не найдена виртуальная машина в проекте {project_name}. Обратитесь к системному администратору.
15
Specified domain not found.
Domain {domain_name} not found.
Указанный домен не найден.
Домен {domain_name} не найден.
16
Specified user not found.
User {user_name} not found in domain {domain_name}.
Указанный пользователь не найден.
Пользователь {user_name} не найден в домене {domain_name}.
17
Instance is in an invalid state.
Instance with id {instance_id} is in invalid state: {instance_status}. Please contact system administrator.
Виртуальная машина находится в необрабатываемом статусе.
Виртуальная машина с ID {instance_id} находится в некорректном состоянии: {instance_status}. Обратитесь к системному администратору.
18
Unable to obtain an instance IP address.
Unable to get IP address of instance with id {instance_id}. Please contact system administrator.
Не удалось получить IP-адрес виртуальной машины.
Не удалось получить IP-адрес виртуальной машины с ID {instance_id}. Обратитесь к системному администратору.
19
Password expiration warning.
Password expires in {seconds} seconds and needs to be changed.
Предупреждение о том, что пароль скоро истечёт.
Ваш пароль истекает через {seconds} секунд, измените его.
20
Warning that amount of authentications with current password is limited.
Password expired, {attempts} grace logins remain.
Предупреждение о том, что осталось ограниченное число аутентификаций с использованием текущего пароля.
Срок вашего пароля истек, осталось {attempts} попытки для входа.
21
Authentication server is not available.
Authentication server is not available. Please contact system administrator.
Недоступен сервер аутентификации.
Сервер аутентификации недоступен. Обратитесь к системному администратору.
22
Kerberos script file is not available because of it does not exist or it has wrong permissions.
Couldn’t change password because of the KERBEROS.script_path file doesn’t exist or it’s unaccessible. Please contact system administrator.
Файл скрипта для изменения пароля в Kerberos недоступен по причнине того, что он не найден или неверные права доступа.
Не удалось изменить пароль в связи с отсутствием файла KERBEROS.script_path или прав для его запуска. Обратитесь к системному администратору.
23
Error while password change process, so script returned 1
Couldn’t change password because of an error while change password process execution. Please contact system administrator.
Ошибка во время выполнения скрипта изменения пароля, скрипт вернул код 1.
Не удалось изменить пароль в связи с ошибкой во время запуска процесса смены пароля. Обратитесь к системному администратору.
24
Auth token is not valid.
Unexpected error occurred. Please contact system administrator.
Токен авторизации недействителен.
Произошла непредвиденная ошибка. Обратитесь к системному администратору.
25
Failed to process asynchronous task of getting an instance.
Не удалось выполнить асинхронную задачу получения виртуальной машины.
26
Request doesn’t match current Web Guard settings.
Invalid settings of Web Guard. Please contact system administrator.
Запрос не соответствует текущим настройкам Web Guard.
Неправильные настройки Web Guard.Обратитесь к системному администратору.
27
OTP is required for authentication.
Для аутентификации требуется код OTP.

Пример ошибки в JSON формате:

{
    "error": {
        "message": "Quota exceeded for TRS project \"c70379f3-e905-431f-b3b4-d0820e225edf\".",
        "code": 12,
        "data": {
            "project_name": "c70379f3-e905-431f-b3b4-d0820e225edf"
        }
    }
}

Пароли

Управление паролями.

POST
/v1/change-password/
Изменение пароля пользователя.

Изменение пароля пользователя.

Запрос
Параметры запроса:
Name In Type Description
user body string Имя пользователя.
user_domain_name body string Доменное имя пользователя.
password body string Пароль пользователя.
new_password body string Новый пароль пользователя.
Пример запроса:
curl -X POST -H "Authorization: Bearer $token" -H "Content-Type: application/json" http://controller:9365/v1/change-password/ -d '{"user": "demo", "user_domain_name": "default", "password": "123456", "new_password": "Qdr4H2d5bn01"}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
message body string Сообщение.

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

{
    "message": "Password successfully changed for user \'admin\'"
}

Задачи в celery

Информация о задачах в celery.

GET
/v1/tasks/
Получение списка ID последних задач.

Получение списка ID последних задач celery.

Запрос
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9364/v1/tasks
Ответ
Параметры ответа:
Name In Type Description
task_id body string ID задачи в celery.

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

{
    "tasks":[
        "3519adaf-7669-499e-88eb-8f05f64514e2",
        "013b9778-1d39-4b18-a06c-2780b67e1091",
        "31c71e8a-26cd-4b8e-a4c5-9181d578616f",
        "3e720334-7533-43b7-a079-24ea84b7a8a0",
        "8869de12-3f44-4b96-a20e-80a03dd575a3",
        "641de831-95b2-43ba-8fd5-7822ee5d6445",
        "f0204f11-8e59-410a-8108-a73212c5439a",
        "3b8eff74-55b1-4eb8-80e2-adf8472fc968",
        "93e30a3c-117b-4e05-990d-4ff46ac5ac84",
        "7c8fbc6c-468d-4afb-a292-e70a3d475edc"
    ]
}
GET
/v1/tasks/{task_id}
Получение информации о задаче.

Получение информации о задачи в celery по ID.

Запрос
Параметры запроса:
Name In Type Description
task_id body string ID задачи в celery.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9364/v1/tasks/$task_id
Ответ
Параметры ответа:
Name In Type Description
status body string Статус задачи.
name (Optional) body string Имя задачи в celery.
traceback (Optional) body string Traceback ошибки при выполнении задачи.
result (Optional) body string Результат задачи.

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

{
    "status":"SUCCESS"
}

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