REST API¶
Примечание
Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.
Clouds API¶
Позволяет настраивать интеграцию с публичными облаками.
Интеграция проекта с облаком¶
Предоставляет возможность управлять интеграциями проектов.
Настройка проекта для интеграции с облаком.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | body | string | Идентификатор проекта OpenStack. |
cloud_type | body | string | Тип облака. |
Параметры облака AWS:¶
Name | In | Type | Description |
---|---|---|---|
secret_key | body | string | Ключ доступа AWS Secret access key. |
access_key | body | string | Ключ доступа AWS Access key ID. |
region | body | string | Регион AWS. |
az | body | string | Зона доступности AWS. |
Параметры Яндекс.Облака:¶
Name | In | Type | Description |
---|---|---|---|
key_id | body | string | Идентификатор авторизованного ключа Яндекс.Облака. |
service_account_id | body | string | Идентификатор сервисного аккаунта Яндекс.Облака. |
private_key | body | string | Приватный ключ Яндекс.Облака. |
folder_id | body | string | Идентификатор каталога Яндекс.Облака. |
az | body | string | Зона доступности Яндекс.Облака. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9366/v1/project-clouds/ -d '{"project_cloud": {"project_id": "d394da7c4d0747bd879e0e865222b3d9", "cloud_type": "aws", "access_key": "AKIAIOSFODNN7EXAMPLE", "secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "region": "us-east-2", "az": "us-east-2a"}}'| python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
project_id | body | string | Идентификатор проекта OpenStack. |
cloud_type | body | string | Тип облака. |
Пример результата в JSON формате:
{
"project_cloud": {
"project_id": "d394da7c4d0747bd879e0e865222b3d9",
"cloud_type": "aws"
}
}
Проверка подключения к облаку, ассоциированному с проектом.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | body | string | Идентификатор проекта OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/check-connection | python -m json.tool
Получение параметров интеграции облака с проектом.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9 | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
project_id | body | string | Идентификатор проекта OpenStack. |
cloud_type | body | string | Тип облака. |
Параметры облака AWS:¶
Name | In | Type | Description |
---|---|---|---|
secret_key | body | string | Ключ доступа AWS Secret access key. |
access_key | body | string | Ключ доступа AWS Access key ID. |
region | body | string | Регион AWS. |
az | body | string | Зона доступности AWS. |
Параметры Яндекс.Облака:¶
Name | In | Type | Description |
---|---|---|---|
key_id | body | string | Идентификатор авторизованного ключа Яндекс.Облака. |
service_account_id | body | string | Идентификатор сервисного аккаунта Яндекс.Облака. |
private_key | body | string | Приватный ключ Яндекс.Облака. |
folder_id | body | string | Идентификатор каталога Яндекс.Облака. |
az | body | string | Зона доступности Яндекс.Облака. |
Пример результата в JSON формате:
{
"project_cloud": {
"project_id": "d394da7c4d0747bd879e0e865222b3d9",
"cloud_type": "aws",
"access_key": "AKIAIOSFODNN7EXAMPLE",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-east-2",
"az": "us-east-2a"
}
}
Получение списка проектов, настроенных для интеграции с облаком.
Запрос¶
Параметры запроса:¶
Запрос не имеет параметров.
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
project_id | body | string | Идентификатор проекта OpenStack. |
cloud_type | body | string | Тип облака. |
Пример результата в JSON формате:
{
"project_clouds": [
{
"project_id": "d394da7c4d0747bd879e0e865222b3d9",
"cloud_type": "aws"
}
]
}
Удаление интеграции проекта с облаком.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта OpenStack. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9
Эта операция не имеет содержания ответа.
Регистрация образов облака в OpenStack.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта OpenStack. |
cloud_image_id (Optional) | body | string | Идентификатор образа публичного облака. При указании параметра будет выполнена регистрация только указанного образа. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/actions/register-images
Эта операция не имеет содержания ответа.
Регистрация типов инстанса облака в OpenStack.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта OpenStack. |
flavor (Optional) | body | string | Название типа инстансов публичного облака. При указании параметра будет выполнена регистрация только указанного типа инстанса. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/actions/register-flavors
Эта операция не имеет содержания ответа.
Получение списка объектов публичного облака.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
project_id | path | string | Идентификатор проекта OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/resources/ | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
project_id | body | string | Идентификатор проекта OpenStack. |
resources | body | string | Ресурсы облака. |
Пример результата в JSON формате:
{
"images": [
{
"id": "ami-0f7919c33c90f5b58",
"name": "amzn2-ami-hvm-2.0.20200406.0-x86_64-gp2",
"state": "available"
}
],
"instances": [
{
"id": "i-05ddf0a0ab22b4098",
"instance_type": "t2.micro",
"state": "running"
}
],
"volumes": [
{
"id": "vol-0110556e94d7037a0",
"size": 8,
"state": "in-use"
}
]
}
Соответствие ресурсов OpenStack ресурсам публичного облака.¶
Примечание
API предназначен только для использования драйверами и требует наличия роли service
.
Хранение соответствий ресурсов OpenStack и ресурсам публичного облака.
Создание или обновление соответствия ресурса OpenStack ресурсу публичного облака.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
openstack_id | body | string | Идентификатор объекта OpenStack. |
resource | body | string | Ресурс облака AWS. |
Пример запроса:¶
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9366/v1/resource-mappings/ -d '{"resource_mapping": {"openstack_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3", "resource": "i-12345678"}}' | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
openstack_id | body | string | Идентификатор объекта OpenStack. |
resource | body | string | Ресурс облака AWS. |
Пример результата в JSON формате:
{
"resource_mapping": {
"openstack_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"resource": "i-12345678"
}
}
Получение соответствия ресурса OpenStack ресурсу публичного облака.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
openstack_id | path | string | Идентификатор объекта OpenStack. |
Пример запроса:¶
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/resource-mappings/2506940c-22f9-4b81-a865-9aa6e7d7cba3 | python -m json.tool
Ответ¶
Параметры ответа:¶
Name | In | Type | Description |
---|---|---|---|
openstack_id | body | string | Идентификатор объекта OpenStack. |
resource | body | string | Ресурс облака AWS. |
Пример результата в JSON формате:
{
"resource_mapping": {
"openstack_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
"resource": "i-12345678"
}
}
Удаление соответствия ресурса OpenStack ресурсу публичного облака.
Запрос¶
Параметры запроса:¶
Name | In | Type | Description |
---|---|---|---|
openstack_id | path | string | Идентификатор объекта OpenStack. |
Пример запроса:¶
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9366/v1/resource-mappings/2506940c-22f9-4b81-a865-9aa6e7d7cba3
Эта операция не имеет содержания ответа.