Перейти к основному содержимому

VMware Cloud Director API

VMware Cloud Director API позволяет взаимодействовать с VMware Cloud Director через REST-клиент.

Описание всех методов VMware Cloud Director API можно посмотреть в документации VMware.

Авторизация

Чтобы авторизоваться и начать использовать API:

  1. Запросите версию API.
  2. Получите токен.

1. Запросить версию API

  1. Выведите список версий API:

    curl 'https://<url>/api/versions'

    Укажите <url> — адрес в зависимости от региона:

    • Москва: vcd-msk.selectel.ru;
    • Санкт-Петербург: vcd.selectel.ru.

    У актуальных версий API значение параметра deprecated будет false, у неактуальных — true.

  2. Выберите любую актуальную версию API. В примерах запросов используется версия 36.3.

2. Получить токен

  1. С помощью любого инструмента для перевода строк из текстового формата в MIME Base64 переведите в формат MIME Base64 строку:

    <username>@<tenant>:<password>

    Укажите:

    • <username> — имя пользователя виртуального дата-центра. Подробнее в инструкции Управлять пользователями виртуального дата-центра;
    • <tenant> — тенант, можно посмотреть в URL для входа в Cloud Director вида https://<url>/tenant/<tenant>;
    • <password> — пароль пользователя виртуального дата-центра.
  2. Запросите токен:

    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.
  3. Сохраните:

    • токен из поля 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'

Укажите:

Выключить виртуальную машину

Выключит указанную виртуальную машину.

Пример запроса:

curl -XPOST \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/api/vApp/vm-<vm_id>/power/action/powerOff'

Укажите:

Выйти из сессии

Удалит текущую сессию.

Пример запроса:

curl -i -XDELETE \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
'https://<url>/cloudapi/1.0.0/sessions/'

Укажите:

  • <version> — версию API;

  • <token>токен;

  • <url> — адрес в зависимости от региона:

    • Москва: vcd-msk.selectel.ru;
    • Санкт-Петербург: vcd.selectel.ru.