From f3a6fa0db8652f2ab5677efba230b9c811235c08 Mon Sep 17 00:00:00 2001 From: Sergey Ivanov Date: Wed, 5 Aug 2026 11:18:38 +0000 Subject: [PATCH 1/4] feat: add network disks to createVps api [WIP] --- proto/v1/manage.proto | 3 +++ 1 file changed, 3 insertions(+) diff --git a/proto/v1/manage.proto b/proto/v1/manage.proto index 8919deb..b79532d 100644 --- a/proto/v1/manage.proto +++ b/proto/v1/manage.proto @@ -562,6 +562,9 @@ message CreateVpsRequest { // Унифицированный формат сетевых интерфейсов. // Нельзя использовать вместе с private_networks. repeated NetworkInterface network_interfaces = 23; + + // Список UUID сетевых дисков, которые будут подключены к серверу после создания + repeated string network_disk_uuid = 24; } From fc18c31e5c8989936d76c6fdf2defb0c058f93b2 Mon Sep 17 00:00:00 2001 From: Sergey Ivanov Date: Thu, 6 Aug 2026 11:32:32 +0000 Subject: [PATCH 2/4] feat: change additional disk structure --- proto/v1/manage.proto | 4 ++-- proto/v1/structures.proto | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/proto/v1/manage.proto b/proto/v1/manage.proto index b79532d..b43eb55 100644 --- a/proto/v1/manage.proto +++ b/proto/v1/manage.proto @@ -563,8 +563,8 @@ message CreateVpsRequest { // Нельзя использовать вместе с private_networks. repeated NetworkInterface network_interfaces = 23; - // Список UUID сетевых дисков, которые будут подключены к серверу после создания - repeated string network_disk_uuid = 24; + // Конфигурация дисков, которые будут созданы или подключены к серверу после создания + structures.DiskConfiguration disk_configuration = 24; } diff --git a/proto/v1/structures.proto b/proto/v1/structures.proto index 324a4c3..2d767e6 100644 --- a/proto/v1/structures.proto +++ b/proto/v1/structures.proto @@ -454,3 +454,21 @@ message RegionInfo { // Отображаемое короткое имя региона string short_name = 7; } + +message LocalDiskSpec { + // Размер дополнительного локального диска в Мб + uint64 size_mb = 1; +} + +message NetworkDiskSpec { + // UUID существующего сетевого диска + string uuid = 1; +} + +message DiskConfiguration { + // Дополнительные локальные диски, которые нужно создать + repeated LocalDiskSpec local_disks = 1; + + // Сетевые диски, которые нужно подключить + repeated NetworkDiskSpec network_disks = 2; +} From 9938195239b9565dff4402e7325802a05afc0e03 Mon Sep 17 00:00:00 2001 From: Sergey Ivanov Date: Thu, 6 Aug 2026 12:39:27 +0000 Subject: [PATCH 3/4] fix: singular field name --- proto/v1/structures.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proto/v1/structures.proto b/proto/v1/structures.proto index 2d767e6..5cdde2b 100644 --- a/proto/v1/structures.proto +++ b/proto/v1/structures.proto @@ -467,8 +467,8 @@ message NetworkDiskSpec { message DiskConfiguration { // Дополнительные локальные диски, которые нужно создать - repeated LocalDiskSpec local_disks = 1; + repeated LocalDiskSpec local_disk = 1; // Сетевые диски, которые нужно подключить - repeated NetworkDiskSpec network_disks = 2; + repeated NetworkDiskSpec network_disk = 2; } From 7271e20c630b7b2f3c99f3e1f549b084a325a022 Mon Sep 17 00:00:00 2001 From: Sergey Ivanov Date: Fri, 7 Aug 2026 10:25:01 +0000 Subject: [PATCH 4/4] fix: use oneof instead of separate fields --- proto/v1/manage.proto | 2 +- proto/v1/structures.proto | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/proto/v1/manage.proto b/proto/v1/manage.proto index b43eb55..734f5be 100644 --- a/proto/v1/manage.proto +++ b/proto/v1/manage.proto @@ -564,7 +564,7 @@ message CreateVpsRequest { repeated NetworkInterface network_interfaces = 23; // Конфигурация дисков, которые будут созданы или подключены к серверу после создания - structures.DiskConfiguration disk_configuration = 24; + repeated structures.DiskConfiguration disk_configuration = 24; } diff --git a/proto/v1/structures.proto b/proto/v1/structures.proto index 5cdde2b..2f9ad14 100644 --- a/proto/v1/structures.proto +++ b/proto/v1/structures.proto @@ -455,20 +455,15 @@ message RegionInfo { string short_name = 7; } -message LocalDiskSpec { - // Размер дополнительного локального диска в Мб - uint64 size_mb = 1; -} - message NetworkDiskSpec { // UUID существующего сетевого диска string uuid = 1; } message DiskConfiguration { - // Дополнительные локальные диски, которые нужно создать - repeated LocalDiskSpec local_disk = 1; - - // Сетевые диски, которые нужно подключить - repeated NetworkDiskSpec network_disk = 2; + // Дополнительные диски + oneof spec { + // Дополнительные диски: сетевой диск + NetworkDiskSpec network_disk = 1; + } }