diff --git a/CHANGELOG.md b/CHANGELOG.md
index db942e7..763d6e9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,225 +1,27 @@
-## Version 1.12.0
+## Version 1.12.1
-### Удалено
+### Добавлено
#### account
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-450 | Метод `AddZone` и структура запроса `AddZoneRequest` в cloudbroker/account |
-| BGOS-451 | Метод `RemoveZone` и структура запроса `RemoveZoneRequest` в cloudbroker/account |
-| BGOS-459 | Опциональные поля `ZoneIDs` и `DefaultZoneID` в структуру ответа `RecordAccount` в cloudapi/account и в структуру ответа `InfoAccount` в cloudbroker/account, опциональное поле `DefaultZoneID` в структуру запроса `UpdateRequest` в cloudapi/account и cloudbroker/account и опциональные поля `ZoneIDs` и `DefaultZoneID` в структуру запроса `CreateRequest` в cloudbroker/account |
-| BGOS-478 | Опциональное поле `Emails` в структуру `ACL` входящую в структуру ответа `RecordAccount` в cloudbroker/account |
-| BGOS-495 | Поле `AccountID` в структуру ответа `RecordLB` в cloudapi/lb и cloudbroker/lb |
-| BGOS-528 | Значение `trunk` для поля `ComputeFeatures` в cloudbroker/account |
-
-#### bservice
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-361 | Добавлена группа ручек `bservice` в cloudbroker |
-| BGOS-448 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudapi/bservice |
-| BGOS-456 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudbroker/bservice |
-| BGOS-460 | Опциональное поле `ZoneId` в структуру запроса `CreateRequest` и в структуры ответа `RecordBasicService` и `ItemBasicService` в cloudapi/bservice и опциональное поле `ZoneID` в структуру запроса `CreateRequest` и в структуры ответа `RecordBasicService` и `ItemBasicService` в cloudbroker/bservice |
+| BGOS-559 | В структуру ответа `RecordACL` добавлено поле `Emails` в cloudapi/account |
#### compute
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-445 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudapi/compute |
-| BGOS-453 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudbroker/compute |
-| BGOS-461 | Поле `ZoneID` в структуры ответа `RecordCompute` и `ItemComputeDisk` в cloudapi/compute и поле `ZoneID` в структуры ответа `RecordCompute` и `InfoCompute` в cloudbroker/compute |
-| BGOS-491 | Методы `AbortSharedSnapshotMerge` и `SharedSnapshotMergeStatus` и структуры запроса `AbortSharedSnapshotMergeRequest` и `SharedSnapshotMergeStatusRequest` в cloudapi/compute и cloudbroker/compute |
-| BGOS-493 | Метод `GuestAgentDisable` и структура запроса `GuestAgentDisableRequest` в cloudapi/compute и в cloudbroker/compute|
-| BGOS-493 | Метод `GuestAgentEnable` и структура запроса `GuestAgentEnableRequest` в cloudapi/compute и в cloudbroker/compute|
-| BGOS-493 | Метод `GuestAgentExecuteRequest` и структура запроса `GuestAgentExecuteRequest` в cloudapi/compute и в cloudbroker/compute|
-| BGOS-493 | Метод `GuestAgentFeatureUpdateRequest` и структура запроса `GuestAgentFeatureUpdateRequest` в cloudapi/compute и в cloudbroker/compute|
-| BGOS-493 | Метод `GuestAgentFeatureGetRequest` и структура запроса `GuestAgentFeatureGetRequest` в cloudapi/compute и в cloudbroker/compute|
-| BGOS-497 | Метод `AsyncMigrate` в cloudbroker/compute |
-| BGOS-505 | Поддержка NetType `SDN` и `TRUNK` структурах запросов `Interface` и `NetAttachRequest` в cloudapi/compute и cloudbroker/compute |
-| BGOS-505 | Опциональное поле `SDNInterfaceID` в структуру запроса `Interface` в cloudapi/compute и cloudbroker/compute |
-| BGOS-506 | Поле `SDNInterfaceID` в структуру ответа `ItemVNFInterface` в cloudapi/compute|
-| BGOS-506 | Поле `SDNInterfaceID` в структуру ответа `ItemInterface` в cloudbroker/compute |
-| BGOS-510 | Поддержка NetType `EMPTY` структурах запросов `NetAttachRequest` в cloudapi/compute и cloudbroker/compute |
-| BGOS-535 | Метод `ChangeMTU` и структура запроса `ChangeMTURequest` в cloudapi/compute и cloudbroker/compute |
-| BGOS-509 | Опциональное поле `SDNInterfaceID` в структуру запроса `NetAttachRequest` в cloudapi/compute и cloudbroker/compute |
-| BGOS-543 | Поля `LiveMigrationJobID` и `QemuQuest` и структура ответа `QemuQuest` в структуры ответа `ItemCompute`, `RecordCompute` в cloudapi/compute и `RecordCompute`, `InfoCompute` в cloudbroker/compute |
-
-#### extnet
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-452 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudbroker/extnet |
-| BGOS-462 | Поле `ZoneID` в структуру ответа `RecordExtNet` в cloudapi/extnet и поле `ZoneID` в структуры ответа `RecordExtNet` и `ItemExtNet` в cloudbroker/extnet |
-| BGOS-462 | Опциональное поле `ZoneID` в структуру запроса `CreateRequest` в cloudbroker/extnet |
-| BGOS-534 | Опциональное поле `MTU` в структуры запроса `CreateRequest` и `UpdateRequest` в cloudbroker/extnet |
-| BGOS-534 | Поле `MTU` в структуру ответа `RecordExtNet` в cloudapi/extnet и в структуры ответа `ItemExtNet` и `RecordExtNet` в cloudbroker/extnet |
-| BGOS-530 | Метод `SetHAMode` и структура запроса `SetHAModeRequest` в cloudbroker/extnet |
-| BGOS-531 | Опциональные поля `PriVNFDevIP`, `SecVNFDevIP` и `HAMode` в структуру запроса `CreateRequest` в cloudbroker/extnet |
-| BGOS-531 | Опциональное поле `Device` в структуру запроса `DeviceMigrateRequest` в cloudbroker/extnet |
-| BGOS-531 | Поля `SecVNFDevID` и `Redundant` в структуры ответа `ItemExtNet` и `RecordExtNet` в cloudbroker/extnet |
-| BGOS-531 | Поля `SecVNFDevID` и `Redundant` в структуру ответа `RecordExtNet` в cloudapi/extnet |
-| BGOS-544 | Поле `PreReservations` в структуру ответа `RecordExtNet` в cloudapi/extnet и cloudbroker/extnet |
-
-#### grid
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-549 | Поля `NetworkModes`, `SDNSupport` в структуры ответа `ItemGridList` и `RecordGrid` в cloudbroker/grid |
-
-#### image
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-481 | Метод `AsyncCreate` в cloudapi/image |
-
-#### k8s
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-449 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudapi/k8s |
-| BGOS-463 | Поле `ZoneID` в структуры ответа `RecordK8S` и `ItemK8SCluster` в cloudapi/k8s и поле `ZoneID` в структуры ответа `RecordK8S` и `ItemK8S` в cloudbroker/k8s |
-| BGOS-463 | Опциональное поле `ZoneID` в структуру запроса `CreateRequest` в cloudapi/k8s и в cloudbroker/k8s |
-| BGOS-457 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudbroker/k8s |
-
-#### kvmx86
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-466 | Опциональное поле `ZoneID` в структуры запроса `CreateRequest` и `CreateBlankRequest` в cloudapi/kvmx86 и в структуры запроса `CreateRequest`, `CreateBlankRequest` и `MassCreateRequest` в cloudbroker/kvmx86 |
-
-#### lb
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-447 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudapi/lb |
-| BGOS-455 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudbroker/lb |
-| BGOS-464 | Поле `ZoneID` в структуру ответа `RecordLB` в cloudapi/lb и поле `ZoneID` в структуры ответа `RecordLB` и `ItemLBList` в cloudbroker/lb |
-| BGOS-464 | Опциональное поле `ZoneID` в структуру запроса `CreateRequest` в cloudapi/lb и в cloudbroker/lb |
-
-#### locations
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-546 | Поле `NetworkModes` в структуре ответа `ItemLocation` в cloudapi/locations |
-| BGOS-546 | Метод `ListGet` в cloudapi/locations |
-
-#### node
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-484 | Новое значение `is_powered` в поле `action` в структуре запроса `ApplyIpmiActionRequest` в cloudbroker/node |
-| BGOS-547 | Поля `SDNHypervisorName` и `ZoneID` в структуру ответа `ItemNode` и поле `ZoneID` в структуру ответа `RecordNode` в cloudbroker/node |
-
-#### rg
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-504 | Поле `SDNAccessGroupID` в структуру запроса `CreateRequest` в cloudapi/rg и cloudbroker/rg |
-| BGOS-504 | Поле `SDNAccessGroupID` в структуры ответа `RecordResourceGroup`, `ItemResourceGroup` в cloudapi/rg и в структуру ответа `ItemRG` в cloudbroker/rg |
-| BGOS-528 | Значение `trunk` для поля `ComputeFeatures` в cloudbroker/rg |
-
-#### trunk
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-527 | Группа ручек `trunk` в cloudapi и в cloudbroker |
-
-#### vins
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-446 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudapi/vins |
-| BGOS-454 | Метод `MigrateToZone` и структура запроса `MigrateToZoneRequest` в cloudbroker/vins |
-| BGOS-465 | Поле `ZoneID` в структуру ответа `RecordVINS` в cloudapi/vins и в структуры ответа `RecordVINS` и `ItemVINS` в cloudbroker/vins |
-| BGOS-465 | Опциональное поле `ZoneID` в структуры запроса `CreateInRGRequest` и `CreateInAccountRequest` в cloudapi/vins и в cloudbroker/vins |
-| BGOS-550 | Поле `SDNAccessGroupID` в структуру ответа `ItemVNFInterface` в cloudapi/vins и в структуру ответа `ItemInterface` в cloudbroker/vins |
-
-#### zone
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-435 | Добавлена группа ручек zone в cloudapi и в cloudbroker |
-
-#### user
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-494 | Опциональное поле `Provider` в структурe запроса `CreateRequest` в cloudbroker/user |
-| BGOS-526 | Опциональное поле `Email` в структуру запроса `ListRequest` в cloudbroker/user |
-| BGOS-502 | Поле `Blocked` в структуру ответа `ItemUser`, методы `Block` и `Unblock` и структуры запроса `BlockRequest` и `UnblockRequest` в cloudbroker/user |
+| BGOS-566 | Поле `TrunkTags` в структуру `ItemVNFInterface` в структуре ответа `RecordCompute` в cloudapi/compute и в структуру `ItemInterface` в структуре ответа `RecordCompute` в cloudbroker/compute |
+| BGOS-492 | Метод `MigrateAbort` и структура запроса `MigrateAbortRequest` в cloudbroker/compute |
### Исправлено
-#### account
+#### accounts
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-512 | Исправлено возвращаемое значение с bool на string в методах `Delete` и `Restore` в cloudapi/account и в методах `Delete`, `Restore`, `DeleteAccounts`, `DisableAccounts` и `EnableAccounts` в cloudbroker/account |
-
-#### bservice
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-483 | Изменен тип параметра `Permanently` на опциональный в структуре `DeleteRequest` в cloudbroker/bservice |
-
-#### compute
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-433 | Исправлена ошибка валидации поля LoaderType для всех структур в cloudapi/compute и в cloudbroker/compute |
-| BGOS-458 | Изменен тип параметров `CPUPin`, `HPBacked`, `AutoStart`, `HotResize` с bool на interface в структуре `UpdateRequest` cloudapi/compute и в cloudbroker/compute |
-| BGOS-503 | Исправлен тип поля `Explicit` cо string на bool в структурах ответа `ItemComputeACL` в cloudbroker/compute |
-| BGOS-537 | В методе `GetLog` вызов api осуществляется с методом get в cloudapi/compute и в cloudbroker/compute |
-
-#### disk
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-468 | Исправлен тип поля `UpdatedBy` c uint64 на string в структурах ответа `ItemComputeDisk` в cloudapi/compute и `ItemDisk` в cloudbroker/compute |
-
-#### extnet
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-548 | В структурах ответа `RecordExtNet` в cloudapi/extnet и cloudbroker/extnet и `ItemExtNet` в cloudbroker/extnet поле `networkID` заменено на поле `networkIDs` |
-
-#### flipgroup
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-482 | Изменен тип параметра `ClientType` на опциональный в структуре `CreateRequest` в cloudapi/bservice и cloudbroker/bservice |
+| BGOS-559 | Структура ответа `ItemAccount` использует структуру `ListRecordACL` в поле `ACL` в cloudapi/account |
#### image
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-481 | Метод `SyncCreate` заменен на метод `AsyncCreateImage` со структурой запроса `CreateRequest` в cloudbroker/image |
-
-#### lb
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-538 | Изменен тип поля `SysctlParams` в структурах ответа `RecordLB` и `ItemLBList` в cloudapi/lb и cloudbroker/lb |
-
-#### rg
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-540 | Тип возвращаемого значения методов `MassEnable`, `MassDisable`, `MassDelete` с bool на string в cloudbroker/rg |
-
-### Удалено
-
-#### account
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-541 | Опциональное поле `Reason` в структуре запроса `DisableEnableRequest` в cloudapi/account |
-| BGOS-541 | Опциональное поле `Reason` в структурах запроса `DeleteRequest`, `DisableRequest`, `DisableAccountsRequest`, `RestoreRequest` в cloudbroker/account |
-
-#### compute
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-536 | Поля `Order` и `VMID` в структуре ответа `ItemComputeDisk` в cloudapi/compute и в структуре ответа `ItemDisk` в cloudbroker/compute |
-| BGOS-551 | Значение `SVA_KVM_X86` в поле `Driver` в структурах запроса `CreateRequest` и `CreateBlankRequest` в cloudapi/compute |
-
-#### disks
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-480 | Опциональное поле `Architecture` в структурах запроса `FromPlatformDiskRequest` в cloudapi/disks и в cloudbroker/disks |
-
-#### extnet
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-531 | Опциональное поле `VNFDevIP` в структуре запроса `CreateRequest` в cloudbroker/extnet |
-
-#### image
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-480 | Опциональное поле `Architecture` в структурах запроса `CreateRequest`, `ListRequest` в cloudapi/image и `CreateRequest`, `ListRequest`, `CreateCDROMImageRequest` в cloudbroker/image |
-| BGOS-489 | Поле `Meta` в структуре ответа `ItemListStacks` в cloudbroker/image |
-
-#### tasks
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-500 | Опциональное поле `GUID` в структурах ответа `ItemAsyncTask` в cloudapi/tasks и `ItemTask` в cloudbroker/tasks |
-
-#### user
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-494 | Опциональное поле `Groups` в структурe запроса `CreateRequest` в cloudbroker/user |
+| BGOS-564 | Загрузка образов в cloudbroker/image |
diff --git a/README.md b/README.md
index 2da08e6..ce6b218 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
+# Внимание
+Данная версия предназначена только для версии платформы 4.4.0 build 963!
+
# Decort SDK
Decort SDK - это библиотека, написанная на языке GO, позволяющая взаимодействовать с API облачной платформы **DECORT**. Библиотека содержит в себе структуры и методы, необходимые для отправки запросов. Decort SDK имеет встроенный http-клиент и поддерживает разные способы авторизации на платформе. Библиотека так же содержит в себе модели ответов от платформы.
@@ -122,6 +125,7 @@ go get -u repository.basistech.ru/BASIS/decort-golang-sdk
- `SEP` - управление storage endpoint (sep);
- `Stack` - получение информации о вычислительных узлах;
- `Tasks` - получение информации о ходе выполнения асинхронных задач (например, создание кластера);
+- `Trunk` - получение информации о транковых портах;
- `VFPool` - управление пулом виртуальных сетевых функций;
- `VINS` - управление виртуальными изолированными сетями;
- `Zone` - управление зонами.
@@ -156,6 +160,7 @@ go get -u repository.basistech.ru/BASIS/decort-golang-sdk
- `SEP` - управление storage endpoint (sep);
- `Stack` - получение информации о вычислительных узлах;
- `Tasks` - получение информации о ходе выполнения асинхронных задач (например, создание кластера);
+- `Trunk` - управление транковыми портами;
- `User` - управление пользователями (индивидуально);
- `VGPU` - управление виртуальными графическими процессорами;
- `VFPool` - управление пулом виртуальных сетевых функций;
@@ -346,7 +351,7 @@ func main() {
- `pkg/cloudbroker/vgpu` - для `VGPU`
- `pkg/cloudbroker/vfpool` - для `VFPool`
- `pkg/cloudbroker/vins` - для `VINS`
- - `pkg/cloudapi/zone` - для `Zone`
+ - `pkg/cloudbroker/zone` - для `Zone`
Все поля структуры имеют описание, в которых содержится:
diff --git a/pkg/cloudapi/account/filter_test.go b/pkg/cloudapi/account/filter_test.go
index b1e7f9f..05da015 100644
--- a/pkg/cloudapi/account/filter_test.go
+++ b/pkg/cloudapi/account/filter_test.go
@@ -7,7 +7,7 @@ import (
var accounts = ListAccounts{
Data: []ItemAccount{
{
- ACL: []RecordACL{
+ ACL: []ListRecordACL{
{
IsExplicit: true,
GUID: "",
@@ -25,7 +25,7 @@ var accounts = ListAccounts{
UpdatedTime: 1676645275,
},
{
- ACL: []RecordACL{
+ ACL: []ListRecordACL{
{
IsExplicit: true,
GUID: "",
@@ -43,7 +43,7 @@ var accounts = ListAccounts{
UpdatedTime: 1676645275,
},
{
- ACL: []RecordACL{
+ ACL: []ListRecordACL{
{
IsExplicit: true,
GUID: "",
diff --git a/pkg/cloudapi/account/models.go b/pkg/cloudapi/account/models.go
index ac7e442..091ba28 100644
--- a/pkg/cloudapi/account/models.go
+++ b/pkg/cloudapi/account/models.go
@@ -1,7 +1,34 @@
package account
+// Access Control List
+type ListRecordACL struct {
+ // Whether access is explicitly specified
+ IsExplicit bool `json:"explicit"`
+
+ // GUID
+ GUID string `json:"guid"`
+
+ // Access rights
+ Rights string `json:"right"`
+
+ // Status
+ Status string `json:"status"`
+
+ // Account Type
+ Type string `json:"type"`
+
+ // Account owner ID
+ UgroupID string `json:"userGroupId"`
+
+ // Is it possible to remove
+ CanBeDeleted bool `json:"canBeDeleted"`
+}
+
// Access Control List
type RecordACL struct {
+ // Emails
+ Emails []string `json:"emails"`
+
// Whether access is explicitly specified
IsExplicit bool `json:"explicit"`
@@ -51,7 +78,7 @@ type ResourceLimits struct {
// Main information in one of if the list of accounts
type ItemAccount struct {
// Access Control List
- ACL []RecordACL `json:"acl"`
+ ACL []ListRecordACL `json:"acl"`
// Compute Features
ComputeFeatures []string `json:"computeFeatures"`
diff --git a/pkg/cloudapi/compute/models.go b/pkg/cloudapi/compute/models.go
index 3868d49..50b00c1 100644
--- a/pkg/cloudapi/compute/models.go
+++ b/pkg/cloudapi/compute/models.go
@@ -709,6 +709,9 @@ type ItemVNFInterface struct {
// Target
Target string `json:"target"`
+ // Trunk tags
+ TrunkTags string `json:"trunk_tags"`
+
// Type
Type string `json:"type"`
diff --git a/pkg/cloudapi/kvmx86/create.go b/pkg/cloudapi/kvmx86/create.go
index 405977c..d2640d5 100644
--- a/pkg/cloudapi/kvmx86/create.go
+++ b/pkg/cloudapi/kvmx86/create.go
@@ -150,7 +150,7 @@ type CreateRequest struct {
// Required: false
CustomFields string `url:"customFields,omitempty" json:"customFields,omitempty"`
- // Type of compute Stateful (KVM_X86) or Stateless (SVA_KVM_X86)
+ // Type of compute Stateful (KVM_X86)
// Required: false
Driver string `url:"driver,omitempty" json:"driver,omitempty" validate:"omitempty,computeDriver"`
diff --git a/pkg/cloudapi/kvmx86/create_blank.go b/pkg/cloudapi/kvmx86/create_blank.go
index 9e6b54d..ca51757 100644
--- a/pkg/cloudapi/kvmx86/create_blank.go
+++ b/pkg/cloudapi/kvmx86/create_blank.go
@@ -57,7 +57,7 @@ type CreateBlankRequest struct {
// Required: false
Interfaces []Interface `url:"-" json:"interfaces,omitempty" validate:"omitempty,dive"`
- // Type of compute Stateful (KVM_X86) or Stateless (SVA_KVM_X86)
+ // Type of compute Stateful (KVM_X86)
// Required: false
Driver string `url:"driver,omitempty" json:"driver,omitempty" validate:"omitempty,computeDriver"`
diff --git a/pkg/cloudbroker/compute/migrate_abort.go b/pkg/cloudbroker/compute/migrate_abort.go
new file mode 100644
index 0000000..3104daa
--- /dev/null
+++ b/pkg/cloudbroker/compute/migrate_abort.go
@@ -0,0 +1,35 @@
+package compute
+
+import (
+ "context"
+ "net/http"
+ "strings"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// MigrateAbortRequest struct to abort migration
+type MigrateAbortRequest struct {
+ // ID of the compute instance
+ // Required: true
+ ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
+}
+
+// MigrateAbort aborts compute migration
+func (c Compute) MigrateAbort(ctx context.Context, req MigrateAbortRequest) (string, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return "", validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudbroker/compute/migrate_abort"
+
+ res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
+ if err != nil {
+ return "", err
+ }
+
+ result := strings.ReplaceAll(string(res), "\"", "")
+
+ return result, nil
+}
diff --git a/pkg/cloudbroker/compute/models.go b/pkg/cloudbroker/compute/models.go
index 4701105..60a7412 100644
--- a/pkg/cloudbroker/compute/models.go
+++ b/pkg/cloudbroker/compute/models.go
@@ -573,6 +573,9 @@ type ItemInterface struct {
// Target
Target string `json:"target"`
+ // Trunk tags
+ TrunkTags string `json:"trunk_tags"`
+
// Type
Type string `json:"type"`
diff --git a/pkg/cloudbroker/image/create_image.go b/pkg/cloudbroker/image/create_image.go
index 050f99d..79d5efe 100644
--- a/pkg/cloudbroker/image/create_image.go
+++ b/pkg/cloudbroker/image/create_image.go
@@ -97,7 +97,9 @@ func (i Image) CreateImage(ctx context.Context, req CreateRequest) (uint64, erro
url := "/cloudbroker/image/createImage"
- res, err := i.client.DecortApiCall(ctx, http.MethodPost, url, req)
+ syncReq := asyncWrapperCreateRequest{CreateRequest: req, AsyncMode: false}
+
+ res, err := i.client.DecortApiCall(ctx, http.MethodPost, url, syncReq)
if err != nil {
return 0, err
}
@@ -117,7 +119,7 @@ func (i Image) AsyncCreateImage(ctx context.Context, req CreateRequest) (string,
return "", validators.ValidationErrors(validators.GetErrors(err))
}
- url := "/cloudbroker/image/create"
+ url := "/cloudbroker/image/createImage"
asyncReq := asyncWrapperCreateRequest{CreateRequest: req, AsyncMode: true}
diff --git a/pkg/cloudbroker/kvmx86/create.go b/pkg/cloudbroker/kvmx86/create.go
index 473fae4..999bcdf 100644
--- a/pkg/cloudbroker/kvmx86/create.go
+++ b/pkg/cloudbroker/kvmx86/create.go
@@ -154,7 +154,7 @@ type CreateRequest struct {
// Required: false
CustomField string `url:"customFields,omitempty" json:"customFields,omitempty"`
- //Type of compute Stateful (KVM_X86) or Stateless (SVA_KVM_X86)
+ //Type of compute Stateful (KVM_X86)
// Required: false
Driver string `url:"driver,omitempty" json:"driver,omitempty"`
diff --git a/pkg/cloudbroker/kvmx86/create_blank.go b/pkg/cloudbroker/kvmx86/create_blank.go
index 49fd0e0..ab4f54b 100644
--- a/pkg/cloudbroker/kvmx86/create_blank.go
+++ b/pkg/cloudbroker/kvmx86/create_blank.go
@@ -61,7 +61,7 @@ type CreateBlankRequest struct {
// Required: false
Description string `url:"desc,omitempty" json:"desc,omitempty"`
- //Type of compute Stateful (KVM_X86) or Stateless (SVA_KVM_X86)
+ //Type of compute Stateful (KVM_X86)
// Required: false
Driver string `url:"driver,omitempty" json:"driver,omitempty"`
diff --git a/tests/platform_upgrade/README.md b/tests/platform_upgrade/README.md
index 43d8c4f..c3d425e 100644
--- a/tests/platform_upgrade/README.md
+++ b/tests/platform_upgrade/README.md
@@ -21,8 +21,6 @@
Примечание: тесты можно запускать напрямую методами среды разработки либо из командной строки из нужной директории, например командой `go test -v -run `, где `` - название запускаемого теста.
-Примечание 2: все тесты, кроме `TestGetAllPaths` при первом запуске генерируют фал `.log`. При каждом последующем запуске результаты вывода сравниваются с файлом и в случае, если они одинаковы, то в консоль будет выведено `All lines match the log file.`. В противном случае будут выведены различающиеся строки.
-
## Тесты Raw методов (Get, List)
### Cloudapi