diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fa98f4..216b8ac 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -## Version 1.13.0 +## Version 1.13.1 Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами Метод `ListNodes` в cloudbroker/image стал deprecated и в следующих версиях будет удалён @@ -9,60 +9,63 @@ ### Добавлено -#### kvmx86 -| Идентификатор
задачи | Описание | -| --- | ---| -| BGOS-665 | Опциональные поля `HPBacked`, `CPUPin`, `NumaAffinity` в структуру запроса `CreateBlankRequest` в cloudapi/kvmx86 и cloudbroker/kvmx86 | - -#### node +#### account | Идентификатор
задачи | Описание | | --- | ---| -| BGOS-664 | Методы `GetLogicalCoresCount`, `SetCpuAllocationRatio`, `SetMemAllocationRatio` и структуры `GetLogicalCoresCountRequest`,`SetCpuAllocationRatioRequest`,`SetMemAllocationRatioRequest` в cloudbroker/node| -| BGOS-666 | Поля `OpenvSwitchBridges`, `Description`, `SDNHypervisorName` в структуру ответа `RecordNode` и поля `OpenvSwitchBridges`, `APIUrl`, `Drivers`, `OldCompatLVMID` в структуру ответа `ItemNode` в cloudbroker/node | -| BGOS-676 | Поля `Flags`, `ModelName`, в структуру ответа `CpuInfo` и поля `CPUAllocationRatio`, `MemAllocationRatio`, `Packages` в структуру ответа `ItemNode` в cloudbroker/node | +| BGOS-686 | Поле `Policies` в структуры ответа `LimitsRG` в cloudapi/account и `Limits` в cloudbroker/account | - -#### compute +#### access groups | Идентификатор
задачи | Описание | -| --- | ---| -| BGOS-675 | Метод `ChangeReadOnly` в cloudbroker/compute | -| BGOS-675 | Поле `ReadOnly` в структуру `InfoCompute`, `RecordCompute`, `ItemCompute` в cloudbroker/compute и cloudapi/compute | - -### Изменено +| --- | --- | +| BGOS-693 | Поле `OwnerDisplayName` в структуру запроса `ListGroupsRequest` и поле `Comment` в структуру ответа `AccessGroupItem` | -#### Общее +#### backup | Идентификатор
задачи | Описание | | --- | --- | -| BGOS-664 | StackID был заменен на NodeID | +| BGOS-688 | Опциональное поле `NodeID` в структуры запросов `RestoreDiskFromBackupRequest` и `RestoreDisksFromBackupRequest` в cloudbroker/backup | #### node | Идентификатор
задачи | Описание | | --- | ---| -| BGOS-666 | Изменен json-тег поля `VCPU` на `vCPUs` в структуре `FreeResourcesInfo` в cloudbroker/node | +| BGOS-691 | Поле `UsableCPUs` в структурах ответа `RecordNode` и `ItemNode` в cloudbroker/node | -#### account +#### storage policy | Идентификатор
задачи | Описание | | --- | ---| -| BGOS-667 | Валидатор `accountCUType` теперь допускает значения `CU_M`, `CU_C`, `CU_D`, `CU_DM`, `CU_I`, `gpu_units` | +| BGOS-690 | Поле `SepTechStatus` в структуру `AccessSEPPool` в структуре ответа `ItemStoragePolicy` в cloudapi/stpolicy и в cloudbroker/stpolicy | -#### compute +#### user | Идентификатор
задачи | Описание | | --- | ---| -| BGOS-683 | Изменен тип поля `StoragePolicyID` с required на optional в структурах запроса `RedeployRequest` в cloudapi/compute и cloudbroker/compute | +| BGOS-692 | Поле `SortBy` в структуру запроса `GetAuditRequest` в cloudbroker/user | + +### Изменено + +#### user +| Идентификатор
задачи | Описание | +| --- | ---| +| BGOS-700 | Изменен тип поля `EmailAddress` с `[]string` на `string` в структуре запроса `CreateRequest` в cloudbroker/user | +| BGOS-700 | Изменен тип возвращаемого значения метода `Create` с `bool` на `string` в cloudbroker/user | ### Удалено #### account | Идентификатор
задачи | Описание | | --- | ---| -| BGOS-667 | Поле `MaxNetworkPeerTransfer` из структур запросов `UpdateRequest` и `CreateRequest` в cloudapi/account и cloudbroker/account | +| BGOS-686 | Поле `CUNP` из структуры ответа `ResourceLimits` в cloudapi/account и cloudbroker/account | +| BGOS-686 | Поле `ExtTraffic` из структур ответа `Resource` и `LimitsRG` в cloudapi/account и `Resource` и `Limits` в cloudbroker/account | + +#### grid +| Идентификатор
задачи | Описание | +| --- | --- | +| BGOS-686 | Поле `ExtTraffic` из структуры ответа `RecordResource` в cloudbroker/grid | #### rg | Идентификатор
задачи | Описание | | --- | ---| -| BGOS-670 | Поля `MaxNetworkPeerTransfer` из структур запроса `CreateRequest` и `UpdateRequest`, поле `CUNP` из структуры`ResourceLimits` в cloudapi/rg и cloudbroker/rg | +| BGOS-686 | Поле `ExtTraffic` из структур ответа `Resource` и `RecordResourceUsage` в cloudapi/rg и `Reservation` в cloudbroker/rg | -#### stack +#### user | Идентификатор
задачи | Описание | | --- | --- | -| BGOS-664 | Удалена группа stack | +| BGOS-686 | Поле `ExtTraffic` из структуры ответа `Resources` в cloudapi/user | diff --git a/pkg/cloudapi/account/models.go b/pkg/cloudapi/account/models.go index f72e377..529578c 100644 --- a/pkg/cloudapi/account/models.go +++ b/pkg/cloudapi/account/models.go @@ -68,9 +68,6 @@ type ResourceLimits struct { // RAM size, MB CUM float64 `json:"CU_M"` - // Traffic volume, GB - CUNP float64 `json:"CU_NP"` - // Number of graphics cores GPUUnits float64 `json:"gpu_units"` @@ -150,9 +147,6 @@ type Resource struct { // Number of External IPs ExtIPs int64 `json:"extips"` - // External traffic - ExtTraffic int64 `json:"exttraffic"` - // Number of grafic cores GPU int64 `json:"gpu"` @@ -554,9 +548,6 @@ type LimitsRG struct { // Number of External IPs ExtIPs int64 `json:"extips"` - // External traffic - ExtTraffic int64 `json:"exttraffic"` - // Number of grafic cores GPU int64 `json:"gpu"` @@ -565,6 +556,9 @@ type LimitsRG struct { // SEPs SEPs uint64 `json:"seps"` + + // Policies + Policies map[string]Policy `json:"policies"` } // Main information about resource group diff --git a/pkg/cloudapi/rg/models.go b/pkg/cloudapi/rg/models.go index 9313438..5c79e98 100644 --- a/pkg/cloudapi/rg/models.go +++ b/pkg/cloudapi/rg/models.go @@ -14,9 +14,6 @@ type Resource struct { // Number of External IPs ExtIPs int64 `json:"extips"` - // External traffic - ExtTraffic int64 `json:"exttraffic"` - // Number of grafic cores GPU int64 `json:"gpu"` @@ -846,9 +843,6 @@ type RecordResourceUsage struct { // Number of external IPs ExtIPs uint64 `json:"extips"` - // ExtraTraffic - ExtraTraffic uint64 `json:"exttraffic"` - // Number of GPU GPU uint64 `json:"gpu"` diff --git a/pkg/cloudapi/stpolicy/models.go b/pkg/cloudapi/stpolicy/models.go index 6d05abd..eaeb2bc 100644 --- a/pkg/cloudapi/stpolicy/models.go +++ b/pkg/cloudapi/stpolicy/models.go @@ -77,6 +77,9 @@ type AccessSEPPool struct { // Pool names PoolNames []string `json:"pool_names"` + + // Technical status of the SEP + SepTechStatus string `json:"sep_tech_status"` } type Usage struct { diff --git a/pkg/cloudapi/user/models.go b/pkg/cloudapi/user/models.go index 03f746c..d9c982c 100644 --- a/pkg/cloudapi/user/models.go +++ b/pkg/cloudapi/user/models.go @@ -156,9 +156,6 @@ type Resources struct { // ExtIPs ExtIPs uint64 `json:"extips"` - // ExtTraffic - ExtTraffic uint64 `json:"exttraffic"` - // GPU GPU uint64 `json:"gpu"` diff --git a/pkg/cloudbroker/account/models.go b/pkg/cloudbroker/account/models.go index 0e4c507..024ed9a 100644 --- a/pkg/cloudbroker/account/models.go +++ b/pkg/cloudbroker/account/models.go @@ -71,9 +71,6 @@ type Resource struct { // Number of External IPs ExtIPs int64 `json:"extips"` - // External traffic - ExtTraffic int64 `json:"exttraffic"` - // Number of grafic cores GPU int64 `json:"gpu"` @@ -143,9 +140,6 @@ type ResourceLimits struct { // CuM CuM float64 `json:"CU_M"` - // CuNP - CuNP float64 `json:"CU_NP"` - // GPUUnits GPUUnits float64 `json:"gpu_units"` @@ -480,9 +474,6 @@ type Limits struct { // External IPs ExtIPs int64 `json:"extips"` - // External traffic - ExtTraffic int64 `json:"exttraffic"` - // Number of GPU GPU int64 `json:"gpu"` @@ -491,6 +482,9 @@ type Limits struct { // SEPs number SEPs uint64 `json:"seps"` + + // Policies + Policies map[string]Policy `json:"policies"` } // Resources of resource group diff --git a/pkg/cloudbroker/backup/restore_disk_from_backup.go b/pkg/cloudbroker/backup/restore_disk_from_backup.go index de716b1..ce04722 100644 --- a/pkg/cloudbroker/backup/restore_disk_from_backup.go +++ b/pkg/cloudbroker/backup/restore_disk_from_backup.go @@ -14,6 +14,9 @@ type RestoreDiskFromBackupRequest struct { // Compute ID ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"` + // Node ID + NodeID uint64 `url:"nodeId,omitempty" json:"nodeId,omitempty"` + // Disk ID DiskID uint64 `url:"diskId" json:"diskId" validate:"required"` diff --git a/pkg/cloudbroker/backup/restore_disks_from_backup.go b/pkg/cloudbroker/backup/restore_disks_from_backup.go index 7c8991a..1e0d1c6 100644 --- a/pkg/cloudbroker/backup/restore_disks_from_backup.go +++ b/pkg/cloudbroker/backup/restore_disks_from_backup.go @@ -25,6 +25,9 @@ type RestoreDisksFromBackupRequest struct { // Compute ID ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"` + // Node ID + NodeID uint64 `url:"nodeId,omitempty" json:"nodeId,omitempty"` + //Backup files BackupFiles []BackupFile `url:"disks" json:"disks" validate:"required,dive"` } diff --git a/pkg/cloudbroker/grid/filter_test.go b/pkg/cloudbroker/grid/filter_test.go index f69a387..f9f9007 100644 --- a/pkg/cloudbroker/grid/filter_test.go +++ b/pkg/cloudbroker/grid/filter_test.go @@ -11,7 +11,6 @@ var grids = ListGrids{ DiskSize: 976, DiskSizeMax: 1200, ExtIPs: 132, - ExtTraffic: 0, GPU: 79500, RAM: 0, SEPs: map[string]map[string]DiskUsage{}, @@ -21,7 +20,6 @@ var grids = ListGrids{ DiskSize: 976, DiskSizeMax: 1200, ExtIPs: 132, - ExtTraffic: 0, GPU: 0, RAM: 152600, SEPs: map[string]map[string]DiskUsage{}, @@ -41,7 +39,6 @@ var grids = ListGrids{ DiskSize: 976, DiskSizeMax: 1200, ExtIPs: 132, - ExtTraffic: 0, GPU: 79500, RAM: 0, SEPs: map[string]map[string]DiskUsage{}, @@ -51,7 +48,6 @@ var grids = ListGrids{ DiskSize: 976, DiskSizeMax: 1200, ExtIPs: 132, - ExtTraffic: 0, GPU: 0, RAM: 152600, SEPs: map[string]map[string]DiskUsage{}, @@ -71,7 +67,6 @@ var grids = ListGrids{ DiskSize: 976, DiskSizeMax: 1200, ExtIPs: 132, - ExtTraffic: 0, GPU: 79500, RAM: 0, SEPs: map[string]map[string]DiskUsage{}, @@ -81,7 +76,6 @@ var grids = ListGrids{ DiskSize: 976, DiskSizeMax: 1200, ExtIPs: 132, - ExtTraffic: 0, GPU: 0, RAM: 152600, SEPs: map[string]map[string]DiskUsage{}, diff --git a/pkg/cloudbroker/grid/models.go b/pkg/cloudbroker/grid/models.go index 9f5a6ed..c72102a 100644 --- a/pkg/cloudbroker/grid/models.go +++ b/pkg/cloudbroker/grid/models.go @@ -43,9 +43,6 @@ type RecordResource struct { // External IPs ExtIPs uint64 `json:"extips"` - // External traffic - ExtTraffic uint64 `json:"exttraffic"` - // Number of GPU GPU uint64 `json:"gpu"` diff --git a/pkg/cloudbroker/node/models.go b/pkg/cloudbroker/node/models.go index 4af8b4b..d1b7e84 100644 --- a/pkg/cloudbroker/node/models.go +++ b/pkg/cloudbroker/node/models.go @@ -82,6 +82,9 @@ type RecordNode struct { // SDN Hypervisor Name SDNHypervisorName string `json:"sdn_hypervisor_name"` + + // CPU used by the node + UsableCPUs []string `json:"usable_cpus"` } // Resource consumption of the node @@ -291,10 +294,13 @@ type ItemNode struct { CPUAllocationRatio float64 `json:"cpu_allocation_ratio"` // MemAllocationRatio - MemAllocationRatio float64 `json:"mem_allocation_ratio"` + // Packages Packages map[string]PackageInfo `json:"packages"` + + // CPU used by the node + UsableCPUs []string `json:"usable_cpus"` } type PackageInfo struct { diff --git a/pkg/cloudbroker/rg/models.go b/pkg/cloudbroker/rg/models.go index 2c5c584..438d255 100644 --- a/pkg/cloudbroker/rg/models.go +++ b/pkg/cloudbroker/rg/models.go @@ -35,9 +35,6 @@ type Reservation struct { // External IPs ExtIPs int64 `json:"extips"` - // External traffic - ExtTraffic int64 `json:"exttraffic"` - // Number of GPU GPU int64 `json:"gpu"` diff --git a/pkg/cloudbroker/stpolicy/models.go b/pkg/cloudbroker/stpolicy/models.go index bba1096..4a86b94 100644 --- a/pkg/cloudbroker/stpolicy/models.go +++ b/pkg/cloudbroker/stpolicy/models.go @@ -103,6 +103,9 @@ type AccessSEPPool struct { // Pool names PoolNames []string `json:"pool_names"` + + // Technical status of the SEP + SepTechStatus string `json:"sep_tech_status"` } type Usage struct { diff --git a/pkg/cloudbroker/user/create.go b/pkg/cloudbroker/user/create.go index c3b9383..9a130c2 100644 --- a/pkg/cloudbroker/user/create.go +++ b/pkg/cloudbroker/user/create.go @@ -3,7 +3,6 @@ package user import ( "context" "net/http" - "strconv" "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" ) @@ -14,9 +13,9 @@ type CreateRequest struct { // Required: true Username string `url:"username" json:"username" validate:"required"` - // Email addresses of the user. + // Email address of the user. // Required: true - EmailAddress []string `url:"emailaddress" json:"emailaddress" validate:"required"` + EmailAddress string `url:"emailaddress" json:"emailaddress" validate:"required"` // Password of user // Required: false @@ -34,23 +33,18 @@ type CreateRequest struct { } // Create creates a user. -func (u User) Create(ctx context.Context, req CreateRequest) (bool, error) { +func (u User) Create(ctx context.Context, req CreateRequest) (string, error) { err := validators.ValidateRequest(req) if err != nil { - return false, validators.ValidationErrors(validators.GetErrors(err)) + return "", validators.ValidationErrors(validators.GetErrors(err)) } url := "/cloudbroker/user/create" res, err := u.client.DecortApiCall(ctx, http.MethodPost, url, req) if err != nil { - return false, err + return "", err } - result, err := strconv.ParseBool(string(res)) - if err != nil { - return false, err - } - - return result, nil + return string(res), nil } diff --git a/pkg/cloudbroker/user/get_audit.go b/pkg/cloudbroker/user/get_audit.go index d3f3bc9..b7c6b2b 100644 --- a/pkg/cloudbroker/user/get_audit.go +++ b/pkg/cloudbroker/user/get_audit.go @@ -28,6 +28,11 @@ type GetAuditRequest struct { // Required: false TimestampTo uint64 `url:"timestampTo,omitempty" json:"timestampTo,omitempty"` + // Sort by a field, format +|-(field) + // Default: -timestamp + // Required: false + SortBy string `url:"sortBy,omitempty" json:"sortBy,omitempty" validate:"omitempty,sortBy"` + // Page number. // Required: false Page uint64 `url:"page,omitempty" json:"page,omitempty"` diff --git a/pkg/cloudbroker/user/models.go b/pkg/cloudbroker/user/models.go index b902362..901be3a 100644 --- a/pkg/cloudbroker/user/models.go +++ b/pkg/cloudbroker/user/models.go @@ -104,16 +104,16 @@ type ItemAudit struct { Call string `json:"Call"` // Response time - ResponseTime ResponseTime `json:"Response Time"` + ResponseTime ResponseTime `json:"responsetime"` // StatusCode - StatusCode StatusCode `json:"Status Code"` + StatusCode StatusCode `json:"statuscode"` // Guid GUID string `json:"Guid"` // Time - Time float64 `json:"Time"` + Time float64 `json:"timestampEnd"` } type ListAudits struct { diff --git a/pkg/sdn/acsgroups/list.go b/pkg/sdn/acsgroups/list.go index 38f82b2..836d5b9 100644 --- a/pkg/sdn/acsgroups/list.go +++ b/pkg/sdn/acsgroups/list.go @@ -22,6 +22,10 @@ type ListGroupsRequest struct { // Required: false DisplayName string `url:"display_name,omitempty" json:"display_name,omitempty"` + // Owner display name filter + // Required: false + OwnerDisplayName string `url:"owner_display_name,omitempty" json:"owner_display_name,omitempty"` + // Page number for pagination // Required: false Page uint64 `url:"page,omitempty" json:"page,omitempty"` diff --git a/pkg/sdn/acsgroups/models.go b/pkg/sdn/acsgroups/models.go index fb70f4a..6d59e01 100644 --- a/pkg/sdn/acsgroups/models.go +++ b/pkg/sdn/acsgroups/models.go @@ -1,8 +1,9 @@ package acsgroups type AccessGroupItem struct { - Name string `json:"display_name"` - ID string `json:"id"` + Name string `json:"display_name"` + ID string `json:"id"` + Comment string `json:"comment"` } type AccessGroupList struct {