Skip to content

7.6 Виртуальный центр обработки данных (ВЦОД, или VDC)

Описание объекта ВЦОД представлено в таблице ниже.

Таблица 1. Описание объекта ВЦОД
namevaluetype
id77int
namevDC Mskstring
descriptionvDC в Москве для баз данныхstring
quota_ram_gb8192int
quota_space_gb1048576int
quota_cpu_ghz512int
quota_cpu_cores128int
quota_space_snapshotsint
quota_oversubscription_rate_cpu_cores1.2float
quota_oversubscription_rate_cpu_ghz1.3float
quota_oversubscription_rate_ram1.5float
quota_oversubscription_rate_space_gb1.7float
quota_oversubscription_rate_space_snapshots1.1float

Методы

7.6.1 vdc-list()

Данный метод позволяет получить список всех ВЦОД вместе с их свойствами.

Запрос:

{
    "jsonrpc":  "2.0",
    "method":   "vdc-list",
    "id":       3003
}

Ответ:

{
   "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 для автотестов"
    }
}

Ответ:

{
    "id":       3009,
    "jsonrpc":  "2.0",
    "result" : {
        "code": 1,
        "data": {
            "vdc_id" : 6
        }
    }
}

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"
                }
        }
}

Ответ:

{
    "id":       29051,
    "jsonrpc":  "2.0",
    "result": {
        "code":     1,
    }
}

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
        }
}

Ответ:

{
    "id":       203,
    "jsonrpc":  "2.0",
    "result" : {
        "code":     1,
    }
}

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
        }
}

Ответ:

{
    "id":       304,
    "jsonrpc":  "2.0",
    "result":   {
        "code" :    1,
    }

Ответ при наличии портов, назначенных виртуальной машине:

{
    "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

Запрос:

{
        "jsonrpc":      "2.0",
        "method":       "vdc-networks",
        "id":           "d75008da-7707-11ed-8ca2-e335afb91e77"
}

Ответ:

{
   "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
        }
}

Ответ:

{
    "id":       "f98ef1b8-7707-11ed-aae8-e11aafb91e77",
    "jsonrpc":  "2.0",
    "result": {
        "code": 1,
        "data": {}
    }
}