VMware Cloud Director API
VMware Cloud Director API позволяет взаимодействовать с VMware Cloud Director через REST-клиент.
Описание всех методов VMware Cloud Director API можно посмотреть в документации VMware.
Авторизация
Чтобы авторизоваться и начать использовать API:
1. Запросить версию API
-
Выведите список версий API:
curl 'https://<url>/api/versions'Укажите
<url>— адрес в зависимости от региона:- Москва:
vcd-msk.selectel.ru; - Санкт-Петербург:
vcd.selectel.ru.
У актуальных версий API значение параметра
deprecatedбудетfalse, у неактуальных —true. - Москва:
-
Выберите любую актуальную версию API. В примерах запросов используется версия 36.3.
2. Получить токен
-
С помощью любого инструмента для перевода строк из текстового формата в MIME Base64 переведите в формат MIME Base64 строку:
<username>@<tenant>:<password>Укажите:
<username>— имя пользователя виртуального дата-центра. Подробнее в инструкции Управлять пользователями виртуального дата-центра;<tenant>— тенант, можно посмотреть в URL для входа в Cloud Director видаhttps://<url>/tenant/<tenant>;<password>— пароль пользователя виртуального дата-центра.
-
Запросите токен:
curl -i -XPOST \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Basic <encoded_string>' \
'https://<url>/cloudapi/1.0.0/sessions/'Укажите:
-
<version>— версию API; -
<encoded_string>— строку, полученную на шаге 1; -
<url>— адрес в зависимости от региона:- Москва:
vcd-msk.selectel.ru; - Сан кт-Петербург:
vcd.selectel.ru.
- Москва:
-
-
Сохраните:
- токен из поля
X-VMWARE-VCLOUD-ACCESS-TOKEN. Когда сессия с ключом истечет, токен нужно будет получить заново; - идентификатор организации из поля
org:id. В поле указаны данные в форматеurn:vcloud:org:<org_id>, где<org_id>— идентификатор организации.
- токен из поля
Примеры запросов
Полное описание VMware Cloud Director API в документации VMware.
Запросить объекты организации
Выведет все доступные объекты организации (виртуальные дата-центры, каталоги, задачи, квоты, группы, метаданные и сети организации), а также ссылку для администрирования организации.
Пример запроса:
curl \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/api/org/<org_id>'
Укажите:
-
<version>— версию API; -
<token>— токен; -
<url>— адрес в зависимости от региона:- Москва:
vcd-msk.selectel.ru; - Санкт-Петербург:
vcd.selectel.ru;
- Москва:
-
<org_id>— идентификатор организации, который вы сохранили при получении токена.
Запросить объекты виртуального дата-центра
Вернет список объектов виртуального дата-центра.
Пример запроса:
curl \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/api/query?type=orgVdc'
Укажите:
-
<version>— версию API; -
<token>— токен; -
<url>— адрес в зависимости от региона:- Москва:
vcd-msk.selectel.ru; - Санкт-Петербург:
vcd.selectel.ru.
- Москва:
Запросить список виртуальных машин
Вернет список виртуальных машин.
Пример запроса:
curl \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/api/query?type=vm&fields=name,containerName&filter=isVAppTemplate==false'
Укажите <url> — адрес в зависимости от региона:
- Москва:
vcd-msk.selectel.ru; - Санкт-Петербург:
vcd.selectel.ru.
Параметры запроса:
type=vm— запрашивает объекты типа виртуальная машина;fields=name,containerName— для каждой виртуальной машины показывает только атрибутыnameиcontainerName(и по умолчанию атрибутыhref);filter=isVAppTemplate==false— выводит только развернутые виртуальные машины без шаблонов vApp.
Включить виртуальную машину
Включит указанную виртуальную машину.
Пример запроса:
curl -XPOST \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/api/vApp/vm-<vm_id>/power/action/powerOn'
Укажите:
-
<version>— версию API; -
<token>— токен; -
<url>— адрес в зависимости от региона:- Москва:
vcd-msk.selectel.ru; - Санкт-Петербург:
vcd.selectel.ru;
- Москва:
-
<vm_id>— идентификатор виртуальной машины, можно посмотреть при запросе списка виртуальных машин в полеhref.
Выключить виртуальную машину
Выключит указанную виртуальную машину.
Пример запроса:
curl -XPOST \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/api/vApp/vm-<vm_id>/power/action/powerOff'
Укажите:
-
<version>— версию API; -
<token>— токен; -
<url>— адрес в зависимости от региона:- Москва:
vcd-msk.selectel.ru; - Санкт-Петербург:
vcd.selectel.ru;
- Москва:
-
<vm_id>— идентификатор виртуальной машины, можно посмотреть при запросе списка виртуальных машин в полеhref.
Выйти из сессии
Удалит текущую сессию.
Пример запроса:
curl -i -XDELETE \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/cloudapi/1.0.0/sessions/'
Укажите: