- tocdepth
2
Создание vApp из шаблона с помощью API
Рассмотрим создание vApp из шаблона. В процессе создания vApp присваивается существующая сеть организации.
Выполните следующие шаги:
Запрос объектов виртуального ЦОД
Запросите список объектов виртуального ЦОД. Понадобятся следующие объекты:
URL и тип параметров для создания vApp из шаблона. Эта информация размещается в XML-элементах
Vdc
—Link
.<Vdc> <Link rel="add" href="https://{SITE}/api/vdc/{VDC-ID}/action/instantiateVAppTemplate" type="application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml"/> ... </Vdc>
URL cети организации. Он размещается в XML-элементах
Vdc
—AvailableNetworks
—Network
в атрибутеhref
.<Vdc> <AvailableNetworks> <Network href="https://{SITE}/api/network/{NET-ID}" id="urn:vcloud:network:{NET-ID}" name="{NET-NAME}" type="application/vnd.vmware.vcloud.network+xml"/> ... </AvailableNetworks> ... </Vdc>
Запрос списка шаблонов vApp
Request
Отправьте GET-запрос на https://{SITE}/api/query?type=vAppTemplate
.
curl -k --header "Accept: application/*;version={VERSION}" --header "Authorization: Bearer {TOKEN}" --request GET "https://{SITE}/api/query?type=vAppTemplate"
curl -k --header "Accept: application/*;version=35.0" --header "Authorization: Bearer eyJhbG..." --request GET "https://vcd01-01.cloud.ru/api/query?type=vAppTemplate"
GET https://vcd01-01.cloud.ru/api/query?type=vAppTemplate
Headers:
- KEY: Accept
- VALUE: application/*;version=35.0
Authorization:
- Type: Bearer Token
- Token: eyJhbG...
Response
Выберите шаблон, на основе которого необходимо создать vApp.
URL шаблонов располагаются в XML-элементах QueryResultRecords
— VAppTemplateRecord
в атрибутах href
.
<QueryResultRecords>
<VAppTemplateRecord
name="{TEMPLATE-1-NAME}"
href="https://{SITE}/api/vAppTemplate/vappTemplate-{TEMPLATE-1-ID}"/>
<!-- Other params -->
<VAppTemplateRecord
name="{TEMPLATE-2-NAME}"
href="https://{SITE}/api/vAppTemplate/vappTemplate-{TEMPLATE-2-ID}"/>
<!-- Other params -->
...
</QueryResultRecords>
Создание vApp из шаблона
Request
Создайте POST-запрос на URL для создания vApp из шаблона.
Добавьте в заголовок
Content-Type
тип параметров для создания vApp из шаблона.Укажите в Body запроса:
название vApp;
название сети vApp;
URL сети организации, которую нужно назначить vApp;
URL шаблона vApp.
Для запросов:
Postman — добавьте Body на вкладку Body.
cURL — предлагаем сохранить Body в XML-файле и обращаться к нему при отправке запроса из командной строки.
Пример используемого Body указан ниже.
Отправьте POST-запрос.
curl -k --header "Accept: application/*;version={VERSION}" --header "Authorization: Bearer {TOKEN}" --header "Content-Type: {instantiateVAppTemplateParams-TYPE}" --data {PATH-TO-BODY} --request POST "https://{SITE}/api/vdc/{VDC-ID}/action/instantiateVAppTemplate"
curl -k --header "Accept: application/*;version=35.0" --header "Authorization: Bearer eyJhbG..." --header "Content-Type: application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml" --data @./Desktop/body.xml --request POST "https://vcd01-01.cloud.ru/api/vdc/dac7da.../action/instantiateVAppTemplate"
POST https://vcd01-01.cloud.ru/api/vdc/dac7da.../action/instantiateVAppTemplate
Headers:
- KEY: Accept
- VALUE: application/*;version=35.0
- KEY: Content-Type
- VALUE: application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml
Authorization:
- Type: Bearer Token
- Token: eyJhbG...
Body:
See next tab
<?xml version="1.0" encoding="UTF-8"?>
<InstantiateVAppTemplateParams
name="New-vApp-Name"
deploy="true"
powerOn="false"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1">
<Description>This vApp is created via API</Description>
<InstantiationParams>
<NetworkConfigSection>
<ovf:Info>Configuration parameters for logical networks
</ovf:Info>
<NetworkConfig
networkName="vApp-Network">
<Configuration>
<ParentNetwork
href="https://{SITE}/api/network/{NET-ID}" />
<FenceMode>bridged</FenceMode>
</Configuration>
</NetworkConfig>
</NetworkConfigSection>
</InstantiationParams>
<Source
href="https://{SITE}/api/vAppTemplate/vappTemplate-{TEMPLATE-ID}"/>
</InstantiateVAppTemplateParams>
Response
HTTP/1.1 201 Created
...
См.также
Полное описание конечных точек, методов и параметров запросов можно посмотреть по ссылке https://{SITE}/docs/
.
для Dev & Test