- tocdepth
2
Подключение VM к сети с помощью API
В разделе Создание vApp из шаблона с помощью API рассматривалось создание vApp. Созданному vApp присвоена сеть, но к этой сети не подключена VM внутри vApp. Рассмотрим подключение VM к сети.
Запрос XML-представления VM
Request
Отправьте GET-запрос на URL VM.
Подсказка
Один из способов узнать URL VM — запросить список VM.
curl -k --header "Accept: application/*;version={VERSION}" --header "Authorization: Bearer {TOKEN}" --request GET "https://{SITE}/api/vApp/vm-{VM-ID}"
curl -k --header "Accept: application/*;version=35.0" --header "Authorization: Bearer eyJhbG..." --request GET "https://vcd01-01.cloud.ru/api/vApp/vm-27bee2..."
GET https://vcd01-01.cloud.ru/api/vApp/vm-27bee2...
Headers:
- KEY: Accept
- VALUE: application/*;version=35.0
Authorization:
- Type: Bearer Token
- Token: eyJhbG...
Response
Сервер вернет действия, которые можно совершить с VM, в том числе URL для редактирования сетевого подключения, которая располагаются в XML-элементах Vm
— Link
.
<Vm>
<Link
rel="edit"
href="https://{SITE}/api/vApp/vm-{VM-ID}/networkConnectionSection/"
type="application/vnd.vmware.vcloud.networkConnectionSection+xml"/>
...
</Vm>
Подключение сети
Request
Создайте PUT-запрос на URL из атрибута
href
, полученного выше.Добавьте в заголовок
Content-Type
тип из атрибутаtype
, полученного выше.Укажите в Body запроса параметры:
название сети, которую нужно назначить VM;
тип присвоения IP-адреса;
IP-адрес VM.
Для запросов:
Postman — добавьте Body на вкладку Body.
cURL — предлагаем сохранить Body в XML-файле и обращаться к нему при отправке запроса из командной строки.
Пример используемого Body указан ниже.
Отправьте PUT-запрос.
curl -k --header "Accept: application/*;version={VERSION}" --header "Authorization: Bearer {TOKEN}" --header "Content-Type: {networkConnectionSection-TYPE}" --data {PATH-TO-BODY} --request PUT "https://{SITE}/api/vApp/vm-{VM-ID}/networkConnectionSection/"
curl -k --header "Accept: application/*;version=35.0" --header "Authorization: Bearer eyJhbG..." --header "Content-Type: application/vnd.vmware.vcloud.networkConnectionSection+xml" --data @./Desktop/body.xml --request PUT "https://vcd01-01.cloud.ru/api/vApp/vm-27bee2.../networkConnectionSection/"
PUT https://vcd01-01.cloud.ru/api/vApp/vm-27bee2.../networkConnectionSection/
Headers:
- KEY: Accept
- VALUE: application/*;version=35.0
- KEY: Content-Type
- VALUE: application/vnd.vmware.vcloud.networkConnectionSection+xml
Authorization:
- Type: Bearer Token
- Token: eyJhbG...
Body:
See next tab
<?xml version="1.0" encoding="UTF-8"?>
<NetworkConnectionSection
type="application/vnd.vmware.vcloud.networkConnectionSection+xml"
xmlns="http://www.vmware.com/vcloud/v1.5"
xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1">
<ovf:Info>Edit network connection.</ovf:Info>
<PrimaryNetworkConnectionIndex>0</PrimaryNetworkConnectionIndex>
<NetworkConnection
network="Net">
<NetworkConnectionIndex>0</NetworkConnectionIndex>
<IpAddress>192.168.1.107</IpAddress>
<IsConnected>true</IsConnected>
<IpAddressAllocationMode>MANUAL</IpAddressAllocationMode>
</NetworkConnection>
</NetworkConnectionSection>
Response
HTTP/1.1 202 Accepted
...
См.также
Полное описание конечных точек, методов и параметров запросов можно посмотреть по ссылке https://{SITE}/docs/
.
для Dev & Test