VMware Cloud Director API

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

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

Авторизация

Чтобы авторизоваться и начать использовать API, узнайте версию API и получите токен.

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

  1. Выполните запрос:

    curl https://vcd.selectel.ru/api/versions
    

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

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

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

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

    <username>@<tenant>:<password>
    

    Укажите:

    • <username> — имя пользователя для доступа к Cloud Director;
    • <tenant> — тенант, можно посмотреть в URL для входа в Cloud Director: https://vcd.selectel.ru/tenant/<tenant>
    • <password> — пароль пользователя для доступа к Cloud Director.
  2. Запросите токен:

    curl -i -XPOST \
    -H 'Accept: application/*;version=<version>' \
    -H 'Authorization: Basic <encoded_string>' \
    https://vcd.selectel.ru/cloudapi/1.0.0/sessions/
    

    Укажите:

    • <version> — версию API;
    • <encoded_string> — строку, полученную на шаге 1.
  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://vcd.selectel.ru/api/org/<org_id>

Укажите:

  • <version> — версию API;
  • <token>токен;
  • <org_id> — идентификатор организации, полученный при получении токена.

Запросить объекты виртуального дата-центра

Вернет список объектов виртуального дата-центра.

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

curl \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
https://vcd.selectel.ru/api/query?type=orgVdc

Укажите:

  • <version> — версию API;
  • <token>токен.

Запросить список виртуальных машин

Вернет список виртуальных машин.

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

curl \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
https://vcd.selectel.ru/api/query?type=vm&fields=name,containerName&filter=isVAppTemplate==false

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

  • type=vm — запрашивает объекты типа виртуальная машина;
  • fields=name,containerName — для каждой виртуальной машины показывает только атрибуты name и containerName (и по умолчанию атрибуты href);
  • filter=isVAppTemplate==false — выводит только развернутые виртуальные машины без шаблонов vApp.

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

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

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

curl -XPOST \
-H 'Accept: application/*;version=<version>' \
-H 'Authorization: Bearer <token>' \
https://vcd.selectel.ru/api/vApp/vm-<vm_id>/power/action/powerOn

Укажите:

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

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

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

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

Укажите:

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

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

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

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

Укажите:

  • <version> — версию API;
  • <token>токен.