diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6eec689..90067fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,58 +1,34 @@
-## Version 1.12.4
+## Version 1.12.5
Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами
### Добавлено
-#### audit
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-621 | Метод `List` в структура запроса `ListRequest` в cloudapi/audit |
-| BGOS-621 | Опциональные поля `RGID`, `ComputeID`, `AccountID`, `VINSID`, `ServiceID`, `K8SID`, `FLIPGroupID`, `LBID`, `SEPID`, `NodeID`, `ExcludeAuditLines` в структуру запроса `ListRequest` в cloudbroker/audit |
-
#### compute
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-613 | Поля `UpdatedTime`, `DeletedBy`, `DeviceName`, `CreatedBy` в структуру ответа `ItemComputeDisk` в cloudapi/compute и в структуру ответа `ItemDisk` в cloudbroker/compute |
-| BGOS-613 | Поле `LoaderMetaIso` в структуру ответа `RecordCompute` и структура `LoaderMetaIso` в cloudapi/compute и в cloudbroker/compute |
-| BGOS-616 | Опциональные поля `PCISlot` и `BusNumber` в структуры запросов `DiskAdd` и `DiskAttach` в cloudapi/compute и cloudbroker/compute |
-| BGOS-619 | Методы `StartMigrationOut` и `StopMigrationOut` и структуры запросов `StartMigrationOutRequest` и `StopMigrationOutRequest` в cloudbroker/compute |
-| BGOS-619 | Структура `OSUser` в структуру запроса `StopMigrationINRequest` в cloudbroker/compute |
-
-#### image
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-614 | Поле `StoragePolicyID` в структуру ответа `ItemImage` в cloudapi/image |
-| BGOS-617 | Опциональное поле `StoragePolicyID` в структуры запроса `ListRequest` в cloudapi/image и cloudbroker/image |
+| BGOS-625 | Обязательное поле `StoragePolicyID` и опциональные поля `PoolName` и `SEPID` в структуру запроса `CloneRequest` в cloudapi/compute и cloudbroker/compute |
+| BGOS-626 | Методы `CloneAbort` и `GetCloneStatus` и структуры запросов `CloneAbortRequest` и `GetCloneStatusRequest` в cloudbroker/compute |
+| BGOS-630 | Поле `BootImageID` в структуры ответа `ItemCompute` и `RecordCompute` в cloudapi/compute и в структуры ответа `RecordCompute` и `InfoCompute` в cloudbroker/compute |
-#### vins
+#### disks
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-615 | Поле `ZoneID` в структуры ответа `RecordDHCP`, `RecordGW`, `RecordNAT`, `RecordVNFDev` в cloudapi/vins и `InfoVNF` и `VNFDev` в cloudbroker/vins |
-| BGOS-615 | Поля `SecGroups`, `EnableSecGroups` в структуру ответа `ItemVNFInterface` в cloudapi/vins и `ItemInterface` в cloudbroker/vins |
+| BGOS-627 | Методы `Migrate`, `MigrateAbort` и `GetMigrateStatus`, структуры запросов `MigrateRequest`, `CloneMigrateRequest` и `GetMigrateStatusRequest` и структура ответа `MigrateStatus` в cloudbroker/disks |
### Исправлено
#### compute
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-619 | Ошибка работы фильтра `SortBy` в методе `MigrateStorageList` в cloudbroker/compute |
-
-#### storage policy
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-620 | Поле `AccountID` в структуре запроса `ListRequest` стало опциональным в cloudapi/stpolicy |
+| BGOS-623 | Тип поля `EnableSecGroups` с `bool` на `interface{}` в структуре запроса `ChangeSecGroupsRequest` в cloudapi/compute и в cloudbroker/compute |
+| BGOS-625 | Возвращаемое значение в функции `Clone` с `uint64` на `string` в cloudapi/compute и cloudbroker/compute |
+| BGOS-629 | Возвращаемое значение метода `CreateTemplate` изменено с `uint64` на `string` в cloudapi/compute и в cloudbroker/compute |
### Удалено
-#### audit
-| Идентификатор
задачи | Описание |
-| --- | --- |
-| BGOS-621 | Поле `Tags` в структуре ответа `ItemAudit` в cloudbroker/audit |
-
-#### disks
+#### compute
| Идентификатор
задачи | Описание |
| --- | --- |
-| BGOS-618 | Поле `IOPS` из структуры запроса `CreateRequest` в cloudapi/disks и в cloudbroker/disks |
-
+| BGOS-629 | Методы `CreateTemplateAsync` в cloudapi/compute и в cloudbroker/compute |
diff --git a/pkg/cloudapi/compute/change_secutity_group.go b/pkg/cloudapi/compute/change_secutity_group.go
index 4122bf2..442878c 100644
--- a/pkg/cloudapi/compute/change_secutity_group.go
+++ b/pkg/cloudapi/compute/change_secutity_group.go
@@ -24,7 +24,7 @@ type ChangeSecGroupsRequest struct {
// Flag indicating whether security groups are enabled for this interface
// Required: false
- EnableSecGroups bool `url:"enable_secgroups,omitempty" json:"enable_secgroups,omitempty"`
+ EnableSecGroups interface{} `url:"enable_secgroups,omitempty" json:"enable_secgroups,omitempty" validate:"omitempty,isBool"`
}
// ChangeSecGroups changes security groups for compute
diff --git a/pkg/cloudapi/compute/clone.go b/pkg/cloudapi/compute/clone.go
index 589ea31..6bb036a 100644
--- a/pkg/cloudapi/compute/clone.go
+++ b/pkg/cloudapi/compute/clone.go
@@ -3,8 +3,8 @@ package compute
import (
"context"
"net/http"
- "strconv"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/constants"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
@@ -18,6 +18,10 @@ type CloneRequest struct {
// Required: true
Name string `url:"name" json:"name" validate:"required"`
+ // ID of the Storage Policy
+ // Required: true
+ StoragePolicyID uint64 `url:"storage_policy_id" json:"storage_policy_id" validate:"required"`
+
// Timestamp of the parent's snapshot to create clone from
// Required: false
SnapshotTimestamp uint64 `url:"snapshotTimestamp,omitempty" json:"snapshotTimestamp,omitempty"`
@@ -30,26 +34,29 @@ type CloneRequest struct {
// Default: false
// Required: false
Force bool `url:"force" json:"force"`
+
+ // The name of the pool to migrate disks to
+ // Required: false
+ PoolName string `url:"pool_name" json:"pool_name"`
+
+ // The ID of the SEP to migrate disks to
+ // Required: false
+ SEPID uint64 `url:"sep_id" json:"sep_id"`
}
// Clone clones compute instance
-func (c Compute) Clone(ctx context.Context, req CloneRequest) (uint64, error) {
+func (c Compute) Clone(ctx context.Context, req CloneRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
- return 0, validators.ValidationErrors(validators.GetErrors(err))
+ return "", validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudapi/compute/clone"
- res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
- if err != nil {
- return 0, err
- }
-
- result, err := strconv.ParseUint(string(res), 10, 64)
+ res, err := c.client.DecortApiCallCtype(ctx, http.MethodPost, url, constants.MIMEJSON, req)
if err != nil {
- return 0, err
+ return "", err
}
- return result, nil
+ return string(res), nil
}
diff --git a/pkg/cloudapi/compute/clone_abort.go b/pkg/cloudapi/compute/clone_abort.go
new file mode 100644
index 0000000..b235b09
--- /dev/null
+++ b/pkg/cloudapi/compute/clone_abort.go
@@ -0,0 +1,39 @@
+package compute
+
+import (
+ "context"
+ "net/http"
+ "strconv"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/constants"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// CloneAbortRequest struct to abort a compute clone
+type CloneAbortRequest struct {
+ // ID of compute instance
+ // Required: true
+ ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
+}
+
+// CloneAbort aborts a compute clone
+func (c Compute) CloneAbort(ctx context.Context, req CloneAbortRequest) (bool, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return false, validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudapi/compute/clone_abort"
+
+ res, err := c.client.DecortApiCallCtype(ctx, http.MethodPost, url, constants.MIMEJSON, req)
+ if err != nil {
+ return false, err
+ }
+
+ result, err := strconv.ParseBool(string(res))
+ if err != nil {
+ return false, err
+ }
+
+ return result, nil
+}
diff --git a/pkg/cloudapi/compute/clone_status.go b/pkg/cloudapi/compute/clone_status.go
new file mode 100644
index 0000000..b6e3e9a
--- /dev/null
+++ b/pkg/cloudapi/compute/clone_status.go
@@ -0,0 +1,40 @@
+package compute
+
+import (
+ "context"
+ "encoding/json"
+ "net/http"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// GetCloneStatusRequest struct to get information about compute clone status
+type GetCloneStatusRequest struct {
+ // ID of compute instance
+ // Required: true
+ ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
+}
+
+// GetCloneStatus gets information about compute clone status as a RecordCloneStatus struct
+func (c Compute) GetCloneStatus(ctx context.Context, req GetCloneStatusRequest) ([]RecordCloneStatus, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return nil, validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudapi/compute/clone_status"
+
+ res, err := c.client.DecortApiCall(ctx, http.MethodGet, url, req)
+ if err != nil {
+ return nil, err
+ }
+
+ cloneStatus := make([]RecordCloneStatus, 0)
+
+ err = json.Unmarshal(res, &cloneStatus)
+ if err != nil {
+ return nil, err
+ }
+
+ return cloneStatus, nil
+}
diff --git a/pkg/cloudapi/compute/create_template.go b/pkg/cloudapi/compute/create_template.go
index 18dbc8c..1993143 100644
--- a/pkg/cloudapi/compute/create_template.go
+++ b/pkg/cloudapi/compute/create_template.go
@@ -3,7 +3,6 @@ package compute
import (
"context"
"net/http"
- "strconv"
"strings"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
@@ -27,47 +26,15 @@ type wrapperCreateTemplateRequest struct {
}
// CreateTemplate create template from compute instance
-func (c Compute) CreateTemplate(ctx context.Context, req CreateTemplateRequest) (uint64, error) {
- err := validators.ValidateRequest(req)
- if err != nil {
- return 0, validators.ValidationErrors(validators.GetErrors(err))
- }
-
- reqWrapped := wrapperCreateTemplateRequest{
- CreateTemplateRequest: req,
- AsyncMode: false,
- }
-
- url := "/cloudapi/compute/createTemplate"
-
- res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
- if err != nil {
- return 0, err
- }
-
- result, err := strconv.ParseUint(string(res), 10, 64)
- if err != nil {
- return 0, err
- }
-
- return result, nil
-}
-
-// CreateTemplateAsync create template from compute instance
-func (c Compute) CreateTemplateAsync(ctx context.Context, req CreateTemplateRequest) (string, error) {
+func (c Compute) CreateTemplate(ctx context.Context, req CreateTemplateRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
- reqWrapped := wrapperCreateTemplateRequest{
- CreateTemplateRequest: req,
- AsyncMode: true,
- }
-
url := "/cloudapi/compute/createTemplate"
- res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
+ res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return "", err
}
diff --git a/pkg/cloudapi/compute/models.go b/pkg/cloudapi/compute/models.go
index deaadb5..66f65a5 100644
--- a/pkg/cloudapi/compute/models.go
+++ b/pkg/cloudapi/compute/models.go
@@ -311,6 +311,9 @@ type RecordCompute struct {
// Architecture
Architecture string `json:"arch"`
+ // Boot image ID
+ BootImageID uint64 `json:"boot_image_id"`
+
// Boot order
BootOrder []string `json:"bootOrder"`
@@ -1013,6 +1016,9 @@ type ItemCompute struct {
// Architecture
Architecture string `json:"arch"`
+ // Boot image ID
+ BootImageID uint64 `json:"boot_image_id"`
+
// Boot order
BootOrder []string `json:"bootOrder"`
@@ -1322,3 +1328,31 @@ type ListPCIDevices struct {
// Entry count
EntryCount uint64 `json:"entryCount"`
}
+
+type RecordCloneStatus struct {
+ // Disk ID
+ DiskID int `json:"disk_id"`
+
+ // Clone Status
+ Status CloneStatus `json:"status"`
+}
+
+type CloneStatus struct {
+ // Type
+ Type int `json:"type"`
+
+ // Copy speed
+ Bandwidth int `json:"bandwidth"`
+
+ // Current progress
+ Cur int `json:"cur"`
+
+ // Total size
+ End int `json:"end"`
+
+ // Operation status
+ Ready bool `json:"ready"`
+
+ // Progress percent
+ ProgressPercent int `json:"progress_percent"`
+}
diff --git a/pkg/cloudbroker/compute/change_secutity_group.go b/pkg/cloudbroker/compute/change_secutity_group.go
index eb494a7..c1f56d3 100644
--- a/pkg/cloudbroker/compute/change_secutity_group.go
+++ b/pkg/cloudbroker/compute/change_secutity_group.go
@@ -24,7 +24,7 @@ type ChangeSecGroupsRequest struct {
// Flag indicating whether security groups are enabled for this interface
// Required: false
- EnableSecGroups bool `url:"enable_secgroups,omitempty" json:"enable_secgroups,omitempty"`
+ EnableSecGroups interface{} `url:"enable_secgroups,omitempty" json:"enable_secgroups,omitempty" validate:"omitempty,isBool"`
}
// ChangeSecGroups changes security groups for compute
diff --git a/pkg/cloudbroker/compute/clone.go b/pkg/cloudbroker/compute/clone.go
index cf2c24c..bb10ae2 100644
--- a/pkg/cloudbroker/compute/clone.go
+++ b/pkg/cloudbroker/compute/clone.go
@@ -3,8 +3,8 @@ package compute
import (
"context"
"net/http"
- "strconv"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/constants"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
)
@@ -18,6 +18,10 @@ type CloneRequest struct {
// Required: true
Name string `url:"name" json:"name" validate:"required"`
+ // ID of the Storage Policy
+ // Required: true
+ StoragePolicyID uint64 `url:"storage_policy_id" json:"storage_policy_id" validate:"required"`
+
// Timestamp of the parent's snapshot to create clone from
// Required: false
SnapshotTimestamp uint64 `url:"snapshotTimestamp" json:"snapshotTimestamp"`
@@ -30,26 +34,29 @@ type CloneRequest struct {
// Default: false
// Required: false
Force bool `url:"force" json:"force"`
+
+ // The name of the pool to migrate disks to
+ // Required: false
+ PoolName string `url:"pool_name" json:"pool_name"`
+
+ // The ID of the SEP to migrate disks to
+ // Required: false
+ SEPID uint64 `url:"sep_id" json:"sep_id"`
}
// Clone clones compute instance
-func (c Compute) Clone(ctx context.Context, req CloneRequest) (uint64, error) {
+func (c Compute) Clone(ctx context.Context, req CloneRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
- return 0, validators.ValidationErrors(validators.GetErrors(err))
+ return "", validators.ValidationErrors(validators.GetErrors(err))
}
url := "/cloudbroker/compute/clone"
- res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
- if err != nil {
- return 0, err
- }
-
- result, err := strconv.ParseUint(string(res), 10, 64)
+ res, err := c.client.DecortApiCallCtype(ctx, http.MethodPost, url, constants.MIMEJSON, req)
if err != nil {
- return 0, err
+ return "", err
}
- return result, nil
+ return string(res), nil
}
diff --git a/pkg/cloudbroker/compute/clone_abort.go b/pkg/cloudbroker/compute/clone_abort.go
new file mode 100644
index 0000000..acb0fe4
--- /dev/null
+++ b/pkg/cloudbroker/compute/clone_abort.go
@@ -0,0 +1,39 @@
+package compute
+
+import (
+ "context"
+ "net/http"
+ "strconv"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/constants"
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// CloneAbortRequest struct to abort a compute clone
+type CloneAbortRequest struct {
+ // ID of compute instance
+ // Required: true
+ ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
+}
+
+// CloneAbort aborts a compute clone
+func (c Compute) CloneAbort(ctx context.Context, req CloneAbortRequest) (bool, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return false, validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudbroker/compute/clone_abort"
+
+ res, err := c.client.DecortApiCallCtype(ctx, http.MethodPost, url, constants.MIMEJSON, req)
+ if err != nil {
+ return false, err
+ }
+
+ result, err := strconv.ParseBool(string(res))
+ if err != nil {
+ return false, err
+ }
+
+ return result, nil
+}
diff --git a/pkg/cloudbroker/compute/clone_status.go b/pkg/cloudbroker/compute/clone_status.go
new file mode 100644
index 0000000..296d011
--- /dev/null
+++ b/pkg/cloudbroker/compute/clone_status.go
@@ -0,0 +1,40 @@
+package compute
+
+import (
+ "context"
+ "encoding/json"
+ "net/http"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// GetCloneStatusRequest struct to get information about compute clone status
+type GetCloneStatusRequest struct {
+ // ID of compute instance
+ // Required: true
+ ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
+}
+
+// GetCloneStatus gets information about compute clone status as a RecordCloneStatus struct
+func (c Compute) GetCloneStatus(ctx context.Context, req GetCloneStatusRequest) ([]RecordCloneStatus, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return nil, validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudbroker/compute/clone_status"
+
+ res, err := c.client.DecortApiCall(ctx, http.MethodGet, url, req)
+ if err != nil {
+ return nil, err
+ }
+
+ cloneStatus := make([]RecordCloneStatus, 0)
+
+ err = json.Unmarshal(res, &cloneStatus)
+ if err != nil {
+ return nil, err
+ }
+
+ return cloneStatus, nil
+}
diff --git a/pkg/cloudbroker/compute/create_template.go b/pkg/cloudbroker/compute/create_template.go
index 13562f9..49d023e 100644
--- a/pkg/cloudbroker/compute/create_template.go
+++ b/pkg/cloudbroker/compute/create_template.go
@@ -3,7 +3,6 @@ package compute
import (
"context"
"net/http"
- "strconv"
"strings"
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
@@ -20,27 +19,16 @@ type CreateTemplateRequest struct {
Name string `url:"name" json:"name" validate:"required"`
}
-type wrapperCreateTemplateRequest struct {
- CreateTemplateRequest
-
- AsyncMode bool `url:"asyncMode"`
-}
-
-// CreateTemplateAsync create template from compute instance
-func (c Compute) CreateTemplateAsync(ctx context.Context, req CreateTemplateRequest) (string, error) {
+// CreateTemplate create template from compute instance
+func (c Compute) CreateTemplate(ctx context.Context, req CreateTemplateRequest) (string, error) {
err := validators.ValidateRequest(req)
if err != nil {
return "", validators.ValidationErrors(validators.GetErrors(err))
}
- reqWrapped := wrapperCreateTemplateRequest{
- CreateTemplateRequest: req,
- AsyncMode: true,
- }
-
url := "/cloudbroker/compute/createTemplate"
- res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
+ res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
if err != nil {
return "", err
}
@@ -49,30 +37,3 @@ func (c Compute) CreateTemplateAsync(ctx context.Context, req CreateTemplateRequ
return result, nil
}
-
-// CreateTemplate create template from compute instance
-func (c Compute) CreateTemplate(ctx context.Context, req CreateTemplateRequest) (uint64, error) {
- err := validators.ValidateRequest(req)
- if err != nil {
- return 0, validators.ValidationErrors(validators.GetErrors(err))
- }
-
- reqWrapped := wrapperCreateTemplateRequest{
- CreateTemplateRequest: req,
- AsyncMode: false,
- }
-
- url := "/cloudbroker/compute/createTemplate"
-
- res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, reqWrapped)
- if err != nil {
- return 0, err
- }
-
- result, err := strconv.ParseUint(string(res), 10, 64)
- if err != nil {
- return 0, err
- }
-
- return result, nil
-}
diff --git a/pkg/cloudbroker/compute/models.go b/pkg/cloudbroker/compute/models.go
index 4f7f5e3..6fdf3b4 100644
--- a/pkg/cloudbroker/compute/models.go
+++ b/pkg/cloudbroker/compute/models.go
@@ -663,6 +663,9 @@ type InfoCompute struct {
// Architecture
Arch string `json:"arch"`
+ // Boot image ID
+ BootImageID uint64 `json:"boot_image_id"`
+
// Boot order
BootOrder []string `json:"bootOrder"`
@@ -917,6 +920,9 @@ type RecordCompute struct {
// Architecture
Arch string `json:"arch"`
+ // Boot image ID
+ BootImageID uint64 `json:"boot_image_id"`
+
// Boot order
BootOrder []string `json:"bootOrder"`
@@ -1420,3 +1426,31 @@ type MigrateStorageItem struct {
// Target stack ID
TargetStackID uint64 `json:"targetStackId"`
}
+
+type RecordCloneStatus struct {
+ // Disk ID
+ DiskID int `json:"disk_id"`
+
+ // Clone Status
+ Status CloneStatus `json:"status"`
+}
+
+type CloneStatus struct {
+ // Type
+ Type int `json:"type"`
+
+ // Copy speed
+ Bandwidth int `json:"bandwidth"`
+
+ // Current progress
+ Cur int `json:"cur"`
+
+ // Total size
+ End int `json:"end"`
+
+ // Operation status
+ Ready bool `json:"ready"`
+
+ // Progress percent
+ ProgressPercent int `json:"progress_percent"`
+}
diff --git a/pkg/cloudbroker/disks/migrate.go b/pkg/cloudbroker/disks/migrate.go
new file mode 100644
index 0000000..60ac9a2
--- /dev/null
+++ b/pkg/cloudbroker/disks/migrate.go
@@ -0,0 +1,46 @@
+package disks
+
+import (
+ "context"
+ "net/http"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// Migrate struct to move disk to another sep, pool and storage policy
+type MigrateRequest struct {
+ // ID of the disk
+ // Required: true
+ DiskID uint64 `url:"disk_id" json:"disk_id" validate:"required"`
+
+ // ID of the new SEP
+ // Required: true
+ SEPID uint64 `url:"sep_id" json:"sep_id" validate:"required"`
+
+ // New pool name
+ // Required: true
+ PoolName string `url:"pool_name" json:"pool_name" validate:"required"`
+
+ // ID if the storage policy
+ // Required: false
+ StoragePolicyID uint64 `url:"storage_policy_id,omitempty" json:"storage_policy_id,omitempty"`
+}
+
+// Move moves disk to another sep, pool and storage policy
+func (c Disks) Migrate(ctx context.Context, req MigrateRequest) (string, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return "", validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudbroker/disks/migrate"
+
+ res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
+ if err != nil {
+ return "", err
+ }
+
+ result := string(res)
+
+ return result, nil
+}
diff --git a/pkg/cloudbroker/disks/migrate_abort.go b/pkg/cloudbroker/disks/migrate_abort.go
new file mode 100644
index 0000000..2be3a14
--- /dev/null
+++ b/pkg/cloudbroker/disks/migrate_abort.go
@@ -0,0 +1,38 @@
+package disks
+
+import (
+ "context"
+ "net/http"
+ "strconv"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// MigrateAbortRequest struct to abort migration
+type MigrateAbortRequest struct {
+ // ID of the disk
+ // Required: true
+ DiskID uint64 `url:"disk_id" json:"disk_id" validate:"required"`
+}
+
+// MigrateAbort aborts disk migration
+func (c Disks) MigrateAbort(ctx context.Context, req MigrateAbortRequest) (bool, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return false, validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudbroker/disks/migrate_abort"
+
+ res, err := c.client.DecortApiCall(ctx, http.MethodPost, url, req)
+ if err != nil {
+ return false, err
+ }
+
+ result, err := strconv.ParseBool(string(res))
+ if err != nil {
+ return false, err
+ }
+
+ return result, nil
+}
diff --git a/pkg/cloudbroker/disks/migrate_status.go b/pkg/cloudbroker/disks/migrate_status.go
new file mode 100644
index 0000000..2bdead0
--- /dev/null
+++ b/pkg/cloudbroker/disks/migrate_status.go
@@ -0,0 +1,40 @@
+package disks
+
+import (
+ "context"
+ "encoding/json"
+ "net/http"
+
+ "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
+)
+
+// GetMigrateStatusRequest struct to get information about disk migrate status
+type GetMigrateStatusRequest struct {
+ // ID of disk
+ // Required: true
+ DiskID uint64 `url:"disk_id" json:"disk_id" validate:"required"`
+}
+
+// GetMigrateStatus gets information about disk migrate status
+func (c Disks) GetMigrateStatus(ctx context.Context, req GetMigrateStatusRequest) (*MigrateStatus, error) {
+ err := validators.ValidateRequest(req)
+ if err != nil {
+ return nil, validators.ValidationErrors(validators.GetErrors(err))
+ }
+
+ url := "/cloudbroker/disks/migrate_status"
+
+ res, err := c.client.DecortApiCall(ctx, http.MethodGet, url, req)
+ if err != nil {
+ return nil, err
+ }
+
+ status := MigrateStatus{}
+
+ err = json.Unmarshal(res, &status)
+ if err != nil {
+ return nil, err
+ }
+
+ return &status, nil
+}
diff --git a/pkg/cloudbroker/disks/models.go b/pkg/cloudbroker/disks/models.go
index aa565aa..1ff9471 100644
--- a/pkg/cloudbroker/disks/models.go
+++ b/pkg/cloudbroker/disks/models.go
@@ -320,3 +320,20 @@ type ListTypes struct {
// Entry count
EntryCount uint64 `json:"entryCount"`
}
+
+type MigrateStatus struct {
+ // Type
+ Type int `json:"type"`
+
+ // Copy speed
+ Bandwidth int `json:"bandwidth"`
+
+ // Current progress
+ Cur interface{} `json:"cur"`
+
+ // Total size
+ End interface{} `json:"end"`
+
+ // Progress percent
+ ProgressPercent int `json:"progress_percent"`
+}
diff --git a/pkg/cloudbroker/image/create_image.go b/pkg/cloudbroker/image/create_image.go
index b9042c2..f56b8b3 100644
--- a/pkg/cloudbroker/image/create_image.go
+++ b/pkg/cloudbroker/image/create_image.go
@@ -11,7 +11,7 @@ import (
// CreateRequest struct to create image
type CreateRequest struct {
- // Name of the rescue disk
+ // Name of the image
// Required: true
Name string `url:"name" json:"name" validate:"required"`
diff --git a/tests/platform_upgrade/request_map.go b/tests/platform_upgrade/request_map.go
index 2785e4c..5e377f4 100644
--- a/tests/platform_upgrade/request_map.go
+++ b/tests/platform_upgrade/request_map.go
@@ -149,6 +149,8 @@ func getRequestsMapCloudAPI() map[string]interface{} {
"/restmachine/cloudapi/compute/changeLinkState": compute.ChangeLinkStateRequest{},
"/restmachine/cloudapi/compute/change_security_groups": compute.ChangeSecGroupsRequest{},
"/restmachine/cloudapi/compute/clone": compute.CloneRequest{},
+ "/restmachine/cloudapi/compute/clone_abort": compute.CloneAbortRequest{},
+ "/restmachine/cloudapi/compute/clone_status": compute.GetCloneStatusRequest{},
"/restmachine/cloudapi/compute/createTemplate": compute.CreateTemplateRequest{},
"/restmachine/cloudapi/compute/createTemplateFromBlank": compute.CreateTemplateFromBlankRequest{},
"/restmachine/cloudapi/compute/delete": compute.DeleteRequest{},
@@ -529,111 +531,113 @@ func getRequestsMapCloudbroker() map[string]interface{} {
"/restmachine/cloudbroker/backup/restoreDisksFromBackup": backup_cb.RestoreDisksFromBackupRequest{},
// compute_cb
- "/restmachine/cloudapi/compute/abort_shared_snapshot_merge": compute.AbortSharedSnapshotMergeRequest{},
- "/restmachine/cloudapi/compute/shared_snapshot_merge_status": compute.SharedSnapshotMergeStatusRequest{},
- "/restmachine/cloudbroker/compute/affinityGroupCheckStart": compute_cb.AffinityGroupCheckStartRequest{},
- "/restmachine/cloudbroker/compute/affinityLabelRemove": compute_cb.AffinityLabelRemoveRequest{},
- "/restmachine/cloudbroker/compute/affinityLabelSet": compute_cb.AffinityLabelSetRequest{},
- "/restmachine/cloudbroker/compute/affinityRelations": compute_cb.AffinityRelationsRequest{},
- "/restmachine/cloudbroker/compute/affinityRuleAdd": compute_cb.AffinityRuleAddRequest{},
- "/restmachine/cloudbroker/compute/affinityRuleRemove": compute_cb.AffinityRuleRemoveRequest{},
- "/restmachine/cloudbroker/compute/affinityRulesClear": compute_cb.AffinityRulesClearRequest{},
- "/restmachine/cloudbroker/compute/antiAffinityRuleAdd": compute_cb.AntiAffinityRuleAddRequest{},
- "/restmachine/cloudbroker/compute/antiAffinityRuleRemove": compute_cb.AntiAffinityRuleRemoveRequest{},
- "/restmachine/cloudbroker/compute/antiAffinityRulesClear": compute_cb.AffinityRulesClearRequest{},
- "/restmachine/cloudbroker/compute/attachGpu": compute_cb.AttachGPURequest{},
- "/restmachine/cloudbroker/compute/attachPciDevice": compute_cb.AttachPCIDeviceRequest{},
- "/restmachine/cloudbroker/compute/audits": compute_cb.AuditsRequest{},
- "/restmachine/cloudbroker/compute/bootDiskSet": compute_cb.BootDiskSetRequest{},
- "/restmachine/cloudbroker/compute/bootOrderGet": compute_cb.BootOrderGetRequest{},
- "/restmachine/cloudbroker/compute/bootOrderSet": compute_cb.BootOrderSetRequest{},
- "/restmachine/cloudbroker/compute/cdEject": compute_cb.CDEjectRequest{},
- "/restmachine/cloudbroker/compute/cdInsert": compute_cb.CDInsertRequest{},
- "/restmachine/cloudbroker/compute/changeLinkState": compute_cb.ChangeLinkStateRequest{},
- "/restmachine/cloudbroker/compute/change_mtu": compute_cb.ChangeMTURequest{},
- "/restmachine/cloudbroker/compute/change_security_groups": compute_cb.ChangeSecGroupsRequest{},
- "/restmachine/cloudbroker/compute/clone": compute_cb.CloneRequest{},
- "/restmachine/cloudbroker/compute/computeciSet": compute_cb.ComputeCISetRequest{},
- "/restmachine/cloudbroker/compute/computeciUnset": compute_cb.ComputeCIUnsetRequest{},
- "/restmachine/cloudbroker/compute/createTemplate": compute_cb.CreateTemplateRequest{},
- "/restmachine/cloudbroker/compute/createTemplateFromBlank": compute_cb.CreateTemplateFromBlankRequest{},
- "/restmachine/cloudbroker/compute/delete": compute_cb.DeleteRequest{},
- "/restmachine/cloudbroker/compute/deleteCustomFields": compute_cb.DeleteCustomFieldsRequest{},
- "/restmachine/cloudbroker/compute/detachGpu": compute_cb.DetachGPURequest{},
- "/restmachine/cloudbroker/compute/detachPciDevice": compute_cb.DetachPCIDeviceRequest{},
- "/restmachine/cloudbroker/compute/disable": compute_cb.DisableRequest{},
- "/restmachine/cloudbroker/compute/diskAdd": compute_cb.DiskAddRequest{},
- "/restmachine/cloudbroker/compute/diskAttach": compute_cb.DiskAttachRequest{},
- "/restmachine/cloudbroker/compute/diskDel": compute_cb.DiskDelRequest{},
- "/restmachine/cloudbroker/compute/diskDetach": compute_cb.DiskDetachRequest{},
- "/restmachine/cloudbroker/compute/diskMigrate": compute_cb.DiskMigrateRequest{},
- "/restmachine/cloudbroker/compute/diskResize": compute_cb.DiskResizeRequest{},
- "/restmachine/cloudbroker/compute/diskSwitchToReplication": compute_cb.DiskSwitchToReplicationRequest{},
- "/restmachine/cloudbroker/compute/diskQos": compute_cb.DiskQOSRequest{},
- "/restmachine/cloudbroker/compute/enable": compute_cb.EnableRequest{},
- "/restmachine/cloudbroker/compute/get": compute_cb.GetRequest{},
- "/restmachine/cloudbroker/compute/getAudits": compute_cb.GetAuditsRequest{},
- "/restmachine/cloudbroker/compute/getConsoleUrl": compute_cb.GetConsoleURLRequest{},
- "/restmachine/cloudbroker/compute/getCustomFields": compute_cb.GetCustomFieldsRequest{},
- "/restmachine/cloudbroker/compute/getLog": compute_cb.GetLogRequest{},
- "/restmachine/cloudbroker/compute/list": compute_cb.ListRequest{},
- "/restmachine/cloudbroker/compute/listDeleted": compute_cb.ListDeletedRequest{},
- "/restmachine/cloudbroker/compute/listPciDevice": compute_cb.ListPCIDeviceRequest{},
- "/restmachine/cloudbroker/compute/listVGpu": compute_cb.ListVGPURequest{},
- "/restmachine/cloudbroker/compute/massDelete": compute_cb.MassDeleteRequest{},
- "/restmachine/cloudbroker/compute/massStart": compute_cb.MassStartRequest{},
- "/restmachine/cloudbroker/compute/massStop": compute_cb.MassStopRequest{},
- "/restmachine/cloudbroker/compute/massReboot": compute_cb.MassRebootRequest{},
- "/restmachine/cloudbroker/compute/migrate": compute_cb.MigrateRequest{},
- "/restmachine/cloudbroker/compute/migrateStorage": compute_cb.MigrateStorageRequest{},
- "/restmachine/cloudbroker/compute/migrateStorageAbort": compute_cb.MigrateStorageAbortRequest{},
- "/restmachine/cloudbroker/compute/migrateStorageCleanup": compute_cb.MigrateStorageCleanUpRequest{},
- "/restmachine/cloudbroker/compute/migrateStorageInfo": compute_cb.MigrateStorageInfoRequest{},
- "/restmachine/cloudbroker/compute/migrate_storage_list": compute_cb.MigrateStorageListRequest{},
- "/restmachine/cloudbroker/compute/moveToRg": compute_cb.MoveToRGRequest{},
- "/restmachine/cloudbroker/compute/netAttach": compute_cb.NetAttachRequest{},
- "/restmachine/cloudbroker/compute/netDetach": compute_cb.NetDetachRequest{},
- "/restmachine/cloudbroker/compute/netQos": compute_cb.NetQOSRequest{},
- "/restmachine/cloudbroker/compute/pfwAdd": compute_cb.PFWAddRequest{},
- "/restmachine/cloudbroker/compute/pfwDel": compute_cb.PFWDelRequest{},
- "/restmachine/cloudbroker/compute/pfwList": compute_cb.PFWListRequest{},
- "/restmachine/cloudbroker/compute/pause": compute_cb.PauseRequest{},
- "/restmachine/cloudbroker/compute/pinToStack": compute_cb.PinToStackRequest{},
- "/restmachine/cloudbroker/compute/powerCycle": compute_cb.PowerCycleRequest{},
- "/restmachine/cloudbroker/compute/raiseDown": EmptyStruct{},
- "/restmachine/cloudbroker/compute/reboot": compute_cb.RebootRequest{},
- "/restmachine/cloudbroker/compute/redeploy": compute_cb.RedeployRequest{},
- "/restmachine/cloudbroker/compute/reset": compute_cb.ResetRequest{},
- "/restmachine/cloudbroker/compute/resize": compute_cb.ResizeRequest{},
- "/restmachine/cloudbroker/compute/restore": compute_cb.RestoreRequest{},
- "/restmachine/cloudbroker/compute/resume": compute_cb.ResumeRequest{},
- "/restmachine/cloudbroker/compute/setCustomFields": compute_cb.SetCustomFieldsRequest{},
- "/restmachine/cloudbroker/compute/snapshotCreate": compute_cb.SnapshotCreateRequest{},
- "/restmachine/cloudbroker/compute/snapshotDelete": compute_cb.SnapshotDeleteRequest{},
- "/restmachine/cloudbroker/compute/snapshotEvictDisk": compute_cb.SnapshotEvictDiskRequest{},
- "/restmachine/cloudbroker/compute/snapshotList": compute_cb.SnapshotListRequest{},
- "/restmachine/cloudbroker/compute/snapshotRollback": compute_cb.SnapshotRollbackRequest{},
- "/restmachine/cloudbroker/compute/snapshotUsage": compute_cb.SnapshotUsageRequest{},
- "/restmachine/cloudbroker/compute/start": compute_cb.StartRequest{},
- "/restmachine/cloudbroker/compute/start_migration_in": compute_cb.StartMigrationINRequest{},
- "/restmachine/cloudbroker/compute/stop": compute_cb.StopRequest{},
- "/restmachine/cloudbroker/compute/stop_migration_in": compute_cb.StopMigrationINRequest{},
- "/restmachine/cloudbroker/compute/tagAdd": compute_cb.TagAddRequest{},
- "/restmachine/cloudbroker/compute/tagRemove": compute_cb.TagRemoveRequest{},
- "/restmachine/cloudbroker/compute/unpinFromStack": compute_cb.UnpinFromStackRequest{},
- "/restmachine/cloudbroker/compute/update": compute_cb.UpdateRequest{},
- "/restmachine/cloudbroker/compute/userGrant": compute_cb.UserGrantRequest{},
- "/restmachine/cloudbroker/compute/userList": compute_cb.UserListRequest{},
- "/restmachine/cloudbroker/compute/userRevoke": compute_cb.UserRevokeRequest{},
- "/restmachine/cloudbroker/compute/userUpdate": compute_cb.UserUpdateRequest{},
- "/restmachine/cloudbroker/compute/changeIp": compute_cb.ChangeIPRequest{},
- "/restmachine/cloudbroker/compute/changeMac": compute_cb.ChangeMACRequest{},
- "/restmachine/cloudbroker/compute/setNetConfig": compute_cb.SetNetConfigRequest{},
- "/restmachine/cloudbroker/compute/guest_agent_disable": compute_cb.GuestAgentDisableRequest{},
- "/restmachine/cloudbroker/compute/guest_agent_enable": compute_cb.GuestAgentEnableRequest{},
- "/restmachine/cloudbroker/compute/guest_agent_execute": compute_cb.GuestAgentExecuteRequest{},
- "/restmachine/cloudbroker/compute/guest_agent_feature_get": compute_cb.GuestAgentFeatureGetRequest{},
- "/restmachine/cloudbroker/compute/guest_agent_feature_update": compute_cb.GuestAgentFeatureUpdateRequest{},
+ "/restmachine/cloudbroker/compute/abort_shared_snapshot_merge": compute_cb.AbortSharedSnapshotMergeRequest{},
+ "/restmachine/cloudbroker/compute/shared_snapshot_merge_status": compute_cb.SharedSnapshotMergeStatusRequest{},
+ "/restmachine/cloudbroker/compute/affinityGroupCheckStart": compute_cb.AffinityGroupCheckStartRequest{},
+ "/restmachine/cloudbroker/compute/affinityLabelRemove": compute_cb.AffinityLabelRemoveRequest{},
+ "/restmachine/cloudbroker/compute/affinityLabelSet": compute_cb.AffinityLabelSetRequest{},
+ "/restmachine/cloudbroker/compute/affinityRelations": compute_cb.AffinityRelationsRequest{},
+ "/restmachine/cloudbroker/compute/affinityRuleAdd": compute_cb.AffinityRuleAddRequest{},
+ "/restmachine/cloudbroker/compute/affinityRuleRemove": compute_cb.AffinityRuleRemoveRequest{},
+ "/restmachine/cloudbroker/compute/affinityRulesClear": compute_cb.AffinityRulesClearRequest{},
+ "/restmachine/cloudbroker/compute/antiAffinityRuleAdd": compute_cb.AntiAffinityRuleAddRequest{},
+ "/restmachine/cloudbroker/compute/antiAffinityRuleRemove": compute_cb.AntiAffinityRuleRemoveRequest{},
+ "/restmachine/cloudbroker/compute/antiAffinityRulesClear": compute_cb.AffinityRulesClearRequest{},
+ "/restmachine/cloudbroker/compute/attachGpu": compute_cb.AttachGPURequest{},
+ "/restmachine/cloudbroker/compute/attachPciDevice": compute_cb.AttachPCIDeviceRequest{},
+ "/restmachine/cloudbroker/compute/audits": compute_cb.AuditsRequest{},
+ "/restmachine/cloudbroker/compute/bootDiskSet": compute_cb.BootDiskSetRequest{},
+ "/restmachine/cloudbroker/compute/bootOrderGet": compute_cb.BootOrderGetRequest{},
+ "/restmachine/cloudbroker/compute/bootOrderSet": compute_cb.BootOrderSetRequest{},
+ "/restmachine/cloudbroker/compute/cdEject": compute_cb.CDEjectRequest{},
+ "/restmachine/cloudbroker/compute/cdInsert": compute_cb.CDInsertRequest{},
+ "/restmachine/cloudbroker/compute/changeLinkState": compute_cb.ChangeLinkStateRequest{},
+ "/restmachine/cloudbroker/compute/change_mtu": compute_cb.ChangeMTURequest{},
+ "/restmachine/cloudbroker/compute/change_security_groups": compute_cb.ChangeSecGroupsRequest{},
+ "/restmachine/cloudbroker/compute/clone": compute_cb.CloneRequest{},
+ "/restmachine/cloudbroker/compute/clone_abort": compute_cb.CloneAbortRequest{},
+ "/restmachine/cloudbroker/compute/clone_status": compute_cb.GetCloneStatusRequest{},
+ "/restmachine/cloudbroker/compute/computeciSet": compute_cb.ComputeCISetRequest{},
+ "/restmachine/cloudbroker/compute/computeciUnset": compute_cb.ComputeCIUnsetRequest{},
+ "/restmachine/cloudbroker/compute/createTemplate": compute_cb.CreateTemplateRequest{},
+ "/restmachine/cloudbroker/compute/createTemplateFromBlank": compute_cb.CreateTemplateFromBlankRequest{},
+ "/restmachine/cloudbroker/compute/delete": compute_cb.DeleteRequest{},
+ "/restmachine/cloudbroker/compute/deleteCustomFields": compute_cb.DeleteCustomFieldsRequest{},
+ "/restmachine/cloudbroker/compute/detachGpu": compute_cb.DetachGPURequest{},
+ "/restmachine/cloudbroker/compute/detachPciDevice": compute_cb.DetachPCIDeviceRequest{},
+ "/restmachine/cloudbroker/compute/disable": compute_cb.DisableRequest{},
+ "/restmachine/cloudbroker/compute/diskAdd": compute_cb.DiskAddRequest{},
+ "/restmachine/cloudbroker/compute/diskAttach": compute_cb.DiskAttachRequest{},
+ "/restmachine/cloudbroker/compute/diskDel": compute_cb.DiskDelRequest{},
+ "/restmachine/cloudbroker/compute/diskDetach": compute_cb.DiskDetachRequest{},
+ "/restmachine/cloudbroker/compute/diskMigrate": compute_cb.DiskMigrateRequest{},
+ "/restmachine/cloudbroker/compute/diskResize": compute_cb.DiskResizeRequest{},
+ "/restmachine/cloudbroker/compute/diskSwitchToReplication": compute_cb.DiskSwitchToReplicationRequest{},
+ "/restmachine/cloudbroker/compute/diskQos": compute_cb.DiskQOSRequest{},
+ "/restmachine/cloudbroker/compute/enable": compute_cb.EnableRequest{},
+ "/restmachine/cloudbroker/compute/get": compute_cb.GetRequest{},
+ "/restmachine/cloudbroker/compute/getAudits": compute_cb.GetAuditsRequest{},
+ "/restmachine/cloudbroker/compute/getConsoleUrl": compute_cb.GetConsoleURLRequest{},
+ "/restmachine/cloudbroker/compute/getCustomFields": compute_cb.GetCustomFieldsRequest{},
+ "/restmachine/cloudbroker/compute/getLog": compute_cb.GetLogRequest{},
+ "/restmachine/cloudbroker/compute/list": compute_cb.ListRequest{},
+ "/restmachine/cloudbroker/compute/listDeleted": compute_cb.ListDeletedRequest{},
+ "/restmachine/cloudbroker/compute/listPciDevice": compute_cb.ListPCIDeviceRequest{},
+ "/restmachine/cloudbroker/compute/listVGpu": compute_cb.ListVGPURequest{},
+ "/restmachine/cloudbroker/compute/massDelete": compute_cb.MassDeleteRequest{},
+ "/restmachine/cloudbroker/compute/massStart": compute_cb.MassStartRequest{},
+ "/restmachine/cloudbroker/compute/massStop": compute_cb.MassStopRequest{},
+ "/restmachine/cloudbroker/compute/massReboot": compute_cb.MassRebootRequest{},
+ "/restmachine/cloudbroker/compute/migrate": compute_cb.MigrateRequest{},
+ "/restmachine/cloudbroker/compute/migrateStorage": compute_cb.MigrateStorageRequest{},
+ "/restmachine/cloudbroker/compute/migrateStorageAbort": compute_cb.MigrateStorageAbortRequest{},
+ "/restmachine/cloudbroker/compute/migrateStorageCleanup": compute_cb.MigrateStorageCleanUpRequest{},
+ "/restmachine/cloudbroker/compute/migrateStorageInfo": compute_cb.MigrateStorageInfoRequest{},
+ "/restmachine/cloudbroker/compute/migrate_storage_list": compute_cb.MigrateStorageListRequest{},
+ "/restmachine/cloudbroker/compute/moveToRg": compute_cb.MoveToRGRequest{},
+ "/restmachine/cloudbroker/compute/netAttach": compute_cb.NetAttachRequest{},
+ "/restmachine/cloudbroker/compute/netDetach": compute_cb.NetDetachRequest{},
+ "/restmachine/cloudbroker/compute/netQos": compute_cb.NetQOSRequest{},
+ "/restmachine/cloudbroker/compute/pfwAdd": compute_cb.PFWAddRequest{},
+ "/restmachine/cloudbroker/compute/pfwDel": compute_cb.PFWDelRequest{},
+ "/restmachine/cloudbroker/compute/pfwList": compute_cb.PFWListRequest{},
+ "/restmachine/cloudbroker/compute/pause": compute_cb.PauseRequest{},
+ "/restmachine/cloudbroker/compute/pinToStack": compute_cb.PinToStackRequest{},
+ "/restmachine/cloudbroker/compute/powerCycle": compute_cb.PowerCycleRequest{},
+ "/restmachine/cloudbroker/compute/raiseDown": EmptyStruct{},
+ "/restmachine/cloudbroker/compute/reboot": compute_cb.RebootRequest{},
+ "/restmachine/cloudbroker/compute/redeploy": compute_cb.RedeployRequest{},
+ "/restmachine/cloudbroker/compute/reset": compute_cb.ResetRequest{},
+ "/restmachine/cloudbroker/compute/resize": compute_cb.ResizeRequest{},
+ "/restmachine/cloudbroker/compute/restore": compute_cb.RestoreRequest{},
+ "/restmachine/cloudbroker/compute/resume": compute_cb.ResumeRequest{},
+ "/restmachine/cloudbroker/compute/setCustomFields": compute_cb.SetCustomFieldsRequest{},
+ "/restmachine/cloudbroker/compute/snapshotCreate": compute_cb.SnapshotCreateRequest{},
+ "/restmachine/cloudbroker/compute/snapshotDelete": compute_cb.SnapshotDeleteRequest{},
+ "/restmachine/cloudbroker/compute/snapshotEvictDisk": compute_cb.SnapshotEvictDiskRequest{},
+ "/restmachine/cloudbroker/compute/snapshotList": compute_cb.SnapshotListRequest{},
+ "/restmachine/cloudbroker/compute/snapshotRollback": compute_cb.SnapshotRollbackRequest{},
+ "/restmachine/cloudbroker/compute/snapshotUsage": compute_cb.SnapshotUsageRequest{},
+ "/restmachine/cloudbroker/compute/start": compute_cb.StartRequest{},
+ "/restmachine/cloudbroker/compute/start_migration_in": compute_cb.StartMigrationINRequest{},
+ "/restmachine/cloudbroker/compute/stop": compute_cb.StopRequest{},
+ "/restmachine/cloudbroker/compute/stop_migration_in": compute_cb.StopMigrationINRequest{},
+ "/restmachine/cloudbroker/compute/tagAdd": compute_cb.TagAddRequest{},
+ "/restmachine/cloudbroker/compute/tagRemove": compute_cb.TagRemoveRequest{},
+ "/restmachine/cloudbroker/compute/unpinFromStack": compute_cb.UnpinFromStackRequest{},
+ "/restmachine/cloudbroker/compute/update": compute_cb.UpdateRequest{},
+ "/restmachine/cloudbroker/compute/userGrant": compute_cb.UserGrantRequest{},
+ "/restmachine/cloudbroker/compute/userList": compute_cb.UserListRequest{},
+ "/restmachine/cloudbroker/compute/userRevoke": compute_cb.UserRevokeRequest{},
+ "/restmachine/cloudbroker/compute/userUpdate": compute_cb.UserUpdateRequest{},
+ "/restmachine/cloudbroker/compute/changeIp": compute_cb.ChangeIPRequest{},
+ "/restmachine/cloudbroker/compute/changeMac": compute_cb.ChangeMACRequest{},
+ "/restmachine/cloudbroker/compute/setNetConfig": compute_cb.SetNetConfigRequest{},
+ "/restmachine/cloudbroker/compute/guest_agent_disable": compute_cb.GuestAgentDisableRequest{},
+ "/restmachine/cloudbroker/compute/guest_agent_enable": compute_cb.GuestAgentEnableRequest{},
+ "/restmachine/cloudbroker/compute/guest_agent_execute": compute_cb.GuestAgentExecuteRequest{},
+ "/restmachine/cloudbroker/compute/guest_agent_feature_get": compute_cb.GuestAgentFeatureGetRequest{},
+ "/restmachine/cloudbroker/compute/guest_agent_feature_update": compute_cb.GuestAgentFeatureUpdateRequest{},
// disks
"/restmachine/cloudbroker/disks/change_disk_storage_policy": disks_cb.ChangeDiskStoragePolicyRequest{},
@@ -664,6 +668,9 @@ func getRequestsMapCloudbroker() map[string]interface{} {
"/restmachine/cloudbroker/disks/snapshotDelete": disks_cb.SnapshotDeleteRequest{},
"/restmachine/cloudbroker/disks/snapshotRollback": disks_cb.SnapshotRollbackRequest{},
"/restmachine/cloudbroker/disks/unshare": disks_cb.UnshareRequest{},
+ "/restmachine/cloudbroker/disks/migrate": disks_cb.MigrateRequest{},
+ "/restmachine/cloudbroker/disks/migrate_abort": disks_cb.MigrateAbortRequest{},
+ "/restmachine/cloudbroker/disks/migrate_status": disks_cb.GetMigrateStatusRequest{},
// dpdknet
"/restmachine/cloudbroker/dpdknet/get": dpdknet_cb.GetRequest{},