7.6 Виртуальный центр обработки данных (ВЦОД, или VDC)
Описание объекта ВЦОД представлено в таблице ниже.
name | value | type |
---|---|---|
id | 77 | int |
name | vDC Msk | string |
description | vDC в Москве для баз данных | string |
quota_ram_gb | 8192 | int |
quota_space_gb | 1048576 | int |
quota_cpu_ghz | 512 | int |
quota_cpu_cores | 128 | int |
quota_space_snapshots | int | |
quota_oversubscription_rate_cpu_cores | 1.2 | float |
quota_oversubscription_rate_cpu_ghz | 1.3 | float |
quota_oversubscription_rate_ram | 1.5 | float |
quota_oversubscription_rate_space_gb | 1.7 | float |
quota_oversubscription_rate_space_snapshots | 1.1 | float |
Методы¶
7.6.1 vdc-list()¶
Данный метод позволяет получить список всех ВЦОД вместе с их свойствами.
Запрос:
Ответ:
{
"id" : "501010",
"jsonrpc" : "2.0",
"result" : {
"code" : 1,
"data" : [
{
"created" : 1561630417,
"description" : "Redis servers",
"id" : "16",
"modified" : 1561630417,
"name" : "Redis",
"quota_cpu_cores" : null,
"quota_cpu_ghz" : null,
"quota_oversubscription_rate_cpu_cores" : null,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : null,
"quota_space_gb" : null,
"quota_space_snapshots" : null,
"vms_running" : 0,
"vms_total" : 1
},
{
"created" : 1561983637,
"description" : "vDC для тестов производительности, например",
"id" : "18",
"modified" : 1561983637,
"name" : "PerfTests",
"quota_cpu_cores" : null,
"quota_cpu_ghz" : null,
"quota_oversubscription_rate_cpu_cores" : null,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : null,
"quota_space_gb" : null,
"quota_space_snapshots" : null,
"vms_running" : 0,
"vms_total" : 0
},
{
"created" : 1559156601,
"description" : "все БД backendов",
"id" : "2",
"modified" : 1559243013,
"name" : "vDC Василия",
"quota_cpu_cores" : 1024,
"quota_cpu_ghz" : 32768,
"quota_oversubscription_rate_cpu_cores" : null,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : 512,
"quota_space_gb" : 1048576,
"quota_space_snapshots" : null,
"vms_running" : 8,
"vms_total" : 11
},
{
"created" : 1559156601,
"description" : "щляпы тестируются для CI/CD",
"id" : "8",
"modified" : 1559416406,
"name" : "реально тестовый",
"quota_cpu_cores" : 2,
"quota_cpu_ghz" : null,
"quota_oversubscription_rate_cpu_cores" : 1.5,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : null,
"quota_space_gb" : null,
"quota_space_snapshots" : null,
"vms_running" : 0,
"vms_total" : 2
}
]
}
}
При указании параметра objective возможно получение альтернативного варианта ответа:
Уровень 1: vdc_id
Запрос:
{
"jsonrpc": "2.0",
"method": "vdc-list",
"id": "f2658174-d87f-11e9-8b68-985b83008659",
"params": {
"objective": 1000
}
}
Ответ:
{
"id" : "f2658174-d87f-11e9-8b68-985b83008659",
"jsonrpc" : "2.0",
"result" : {
"code" : 1,
"data" : {
"16" : {
"created" : 1561630417,
"description" : "IMG tests",
"id" : "16",
"modified" : 1566398676,
"name" : "image test",
"quota_cpu_cores" : null,
"quota_cpu_ghz" : null,
"quota_oversubscription_rate_cpu_cores" : null,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : null,
"quota_space_gb" : null,
"quota_space_snapshots" : null,
"vms_running" : 0,
"vms_total" : 3
},
"18" : {
"created" : 1561983637,
"description" : "vDC для тестов производительности, например",
"id" : "18",
"modified" : 1561983637,
"name" : "PerfTests",
"quota_cpu_cores" : null,
"quota_cpu_ghz" : null,
"quota_oversubscription_rate_cpu_cores" : null,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : null,
"quota_space_gb" : null,
"quota_space_snapshots" : null,
"vms_running" : 0,
"vms_total" : 0
},
"19" : {
"created" : 1567062755,
"description" : "для тестов сети",
"id" : "19",
"modified" : 1567062755,
"name" : "Alexander Fedorov",
"quota_cpu_cores" : null,
"quota_cpu_ghz" : null,
"quota_oversubscription_rate_cpu_cores" : null,
"quota_oversubscription_rate_cpu_ghz" : null,
"quota_oversubscription_rate_ram" : null,
"quota_oversubscription_rate_space_gb" : null,
"quota_oversubscription_rate_space_snapshots" : null,
"quota_ram_gb" : null,
"quota_space_gb" : null,
"quota_space_snapshots" : null,
"vms_running" : 3,
"vms_total" : 8
}
}
}
}
7.6.2 vdc-create()¶
С помощью данного метода можно создать ВЦОД.
Запрос:
{
"jsonrpc": "2.0",
"method": "vdc-create",
"id": 3009,
"params": {
"name": "crap-test",
"description": "голимый vDC для автотестов"
}
}
Ответ:
7.6.3 vdc-set()¶
Метод vdc-set() используется для модификации ВЦОД.
Запрос:
{
"jsonrpc": "2.0",
"id": 29051,
"method": "vdc-set",
"params": {
"id": 8,
"vdc_params": {
"name": "реально тестовый",
"description": "щляпы тестируются для CI/CD",
"quota_cpu_cores": 72,
"quota_oversubscription_rate_cpu_cores": "1.5"
}
}
}
Ответ:
7.6.4 vdc-assign-network()¶
Метод vdc-assign-network() позволяет «назначить» экземпляр сети в ВЦОД, что позволит в дальнейшем подключать виртуальные машины этого ВЦОД к этой виртуальной сети.
«Назначать» экземпляр сети в конкретный ВЦОД может только пользователь, создавший эту сеть, при наличии у него роли Админа ВЦОД в этом ВЦОД.
Запрос:
{
"jsonrpc": "2.0",
"method": "vdc-assign-network",
"id": 203,
"params": {
"vdc_id": 2,
"network_id": 7
}
}
Ответ:
7.6.5 vdc-deassign-network()¶
vdc-deassign-network() позволяет снять «назначение» экземпляра сети из ВЦОД. Снимать «назначение» возможно только в случае отсутствия портов, назначенных виртуальным машинам, в удаляемой сети. Кроме того, снять «назначение» экземпляра сети из конкретного ВЦОД может только создавший эту сеть пользователь при наличии у него роли Админа ВЦОД в этом ВЦОД.
Запрос:
{
"jsonrpc": "2.0",
"method": "vdc-deassign-network",
"id": 304,
"params": {
"vdc_id": 2,
"network_id": 28
}
}
Ответ:
Ответ при наличии портов, назначенных виртуальной машине:
{
"error": {
"message": "There are 2 ports assigned to VMs"
},
"id": 305,
"jsonrpc": "2.0",
"result": {
"code": -31,
}
}
7.6.6 vdc-networks()¶
С помощью данного метода можно получить вложенный словарь с назначенными сетями в каждом ВЦОД из области видимости пользователя.
Уровень 1 - vDC
Уровень 2 - network
Запрос:
Ответ:
{
"id" : "d75008da-7707-11ed-8ca2-e335afb91e77",
"jsonrpc" : "2.0",
"result" : {
"code" : 1,
"data" : {
"10" : {
"1" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 1,
"mtu" : 1500,
"name" : "Routed L26 vlan 2071",
"net_cidr" : "10.78.28.0/24",
"network_type_id" : 2,
"vlan_id" : 2071,
"vxlan_multicast_addr" : null,
"vxlan_port" : null
},
"879" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 879,
"mtu" : 1500,
"name" : "L26 external network 000",
"net_cidr" : "94.140.198.96/27",
"network_type_id" : 2,
"vlan_id" : 301,
"vxlan_multicast_addr" : null,
"vxlan_port" : null
},
"id" : 10,
"name" : "Service VMs"
},
"101" : {
"879" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 879,
"mtu" : 1500,
"name" : "L26 external network 000",
"net_cidr" : "94.140.198.96/27",
"network_type_id" : 2,
"vlan_id" : 301,
"vxlan_multicast_addr" : null,
"vxlan_port" : null
},
"id" : 101,
"name" : "nedra vDC"
},
"102" : {
"2277" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 2277,
"mtu" : 1500,
"name" : "MetInvest internal network",
"net_cidr" : "10.20.30.0/24",
"network_type_id" : 1,
"vlan_id" : null,
"vxlan_multicast_addr" : "239.248.3.152",
"vxlan_port" : 9009
},
"879" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 879,
"mtu" : 1500,
"name" : "L26 external network 000",
"net_cidr" : "94.140.198.96/27",
"network_type_id" : 2,
"vlan_id" : 301,
"vxlan_multicast_addr" : null,
"vxlan_port" : null
},
"id" : 102,
"name" : "MIE"
},
"9" : {
"1" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 1,
"mtu" : 1500,
"name" : "Routed L26 vlan 2071",
"net_cidr" : "10.78.28.0/24",
"network_type_id" : 2,
"vlan_id" : 2071,
"vxlan_multicast_addr" : null,
"vxlan_port" : null
},
"3434" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 10,
"id" : 3434,
"mtu" : 1500,
"name" : "test_prj6046_13",
"net_cidr" : "10.0.240.0/24",
"network_type_id" : 1,
"vlan_id" : null,
"vxlan_multicast_addr" : "239.248.3.194",
"vxlan_port" : 9009
},
"3435" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 10,
"id" : 3435,
"mtu" : 1500,
"name" : "test_prj2418_14",
"net_cidr" : "10.0.240.0/24",
"network_type_id" : 1,
"vlan_id" : null,
"vxlan_multicast_addr" : "239.248.3.195",
"vxlan_port" : 9009
},
"3436" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 10,
"id" : 3436,
"mtu" : 1500,
"name" : "dev_prj9_net15",
"net_cidr" : "10.0.0.0/24",
"network_type_id" : 1,
"vlan_id" : null,
"vxlan_multicast_addr" : "239.248.3.196",
"vxlan_port" : 9009
},
"3437" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 10,
"id" : 3437,
"mtu" : 1500,
"name" : "kostya",
"net_cidr" : "10.0.0.0/24",
"network_type_id" : 1,
"vlan_id" : null,
"vxlan_multicast_addr" : "239.248.3.197",
"vxlan_port" : 9009
},
"5" : {
"addr_limit" : null,
"backend" : 2,
"creator" : 1,
"id" : 5,
"mtu" : 1500,
"name" : "ServerSpace internal",
"net_cidr" : "10.20.30.0/24",
"network_type_id" : 1,
"vlan_id" : null,
"vxlan_multicast_addr" : "239.248.0.2",
"vxlan_port" : 9009
},
"id" : 9,
"name" : "ServerSpace test"
}
}
}
}
7.6.7 vdc-network-addr-limit()¶
Данный метод позволяет установить лимит на количество IP-адресов, которые возможно использовать в указанном ВЦОД из указанной сети.
Сеть уже должна быть назначена в ВЦОД. Снятие назначения сети и повторная установка удаляет выставленное ранее ограничение. Под значением null понимается отсутствие ограничения.
Запрос:
{
"jsonrpc": "2.0",
"method": "vdc-network-addr-limit",
"id": "f98ef1b8-7707-11ed-aae8-e11aafb91e77",
"params": {
"vdc_id": 2,
"network_id": 1,
"addr_limit": 15
}
}
Ответ: