diff --git a/CHANGELOG.md b/CHANGELOG.md index 428a058..29f91d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,32 +1,12 @@ -## Version 1.12.6 +## Version 1.12.7 -Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами -Метод `ListStacks` в cloudbroker/image стал deprecated и в следующих версиях будет удалён +Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами +Метод `ListStacks` в cloudbroker/image стал deprecated и в следующих версиях будет удалён Методы `AccessGrant`, `AccessGrantToPool`, `AccessRevoke`, `AccessRevokeToPool` в cloudbroker/sep стали deprecated и в следующих версиях будут удалены ### Добавлено -#### общее -| Идентификатор
задачи | Описание | -| --- | --- | -| BGOS-638 | Добавлена поддержка версий 4.1.0 и 4.2.0 в функцию check | - -#### image -| Идентификатор
задачи | Описание | -| --- | --- | -| BGOS-481 | Метод `AsyncCreateCDROMImage` в cloudbroker/image | - -#### node -| Идентификатор
задачи | Описание | -| --- | --- | -| BGOS-634 | Метод `UpdateDescription` и структура запроса `UpdateDescriptionRequest` в cloudbroker/node | - -#### stpolicy -| Идентификатор
задачи | Описание | -| --- | --- | -| BGOS-636 | Вычисляемое поле `StoragePolicyID` в структуры ответа `InfoStoragePolicy` и `ItemStoragePolicy` в `cloudapi/stpolicy` и в cloudbroker/stpolicy | - -#### vins -| Идентификатор
задачи | Описание | -| --- | --- | -| BGOS-637 | Вычисляемое поле `LiveMigrationJobID` в структуры ответа `RecordVNFDev` в cloudapi/vins и в `VNFDev` cloudbroker/vins | +#### rg +| Идентификатор
задачи | Описание | +|-------------------------|--------------------------------------------------------| +| BGOS-641 | Методы `AddStoragePolicy` и `DelStoragePolicy` и структуры запроса `AddStoragePolicyRequest` и `DelStoragePolicyRequest` в cloudapi/rg | diff --git a/pkg/cloudapi/rg/add_storage_policy.go b/pkg/cloudapi/rg/add_storage_policy.go new file mode 100644 index 0000000..bac7cb3 --- /dev/null +++ b/pkg/cloudapi/rg/add_storage_policy.go @@ -0,0 +1,46 @@ +package rg + +import ( + "context" + "net/http" + "strconv" + + "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" +) + +// AddStoragePolicyRequest struct for adding storage policy to the resource group +type AddStoragePolicyRequest struct { + // ID of resource group to add to + // Required: true + RGID uint64 `url:"resgroup_id" json:"resgroup_id" validate:"required"` + + // ID of the storage policy to which to connect resource group + // Required: true + StoragePolicyID uint64 `url:"storage_policy_id" json:"storage_policy_id" validate:"required"` + + // Limit storage resources GB. Or -1 unlimit + // Required: false + Limit int `url:"limit,omitempty" json:"limit,omitempty"` +} + +// AddStoragePolicy add storage policy to the account. +func (r RG) AddStoragePolicy(ctx context.Context, req AddStoragePolicyRequest) (bool, error) { + err := validators.ValidateRequest(req) + if err != nil { + return false, validators.ValidationErrors(validators.GetErrors(err)) + } + + url := "/cloudapi/rg/add_storage_policy" + + res, err := r.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/cloudapi/rg/del_storage_policy.go b/pkg/cloudapi/rg/del_storage_policy.go new file mode 100644 index 0000000..fa56adb --- /dev/null +++ b/pkg/cloudapi/rg/del_storage_policy.go @@ -0,0 +1,42 @@ +package rg + +import ( + "context" + "net/http" + "strconv" + + "repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators" +) + +// DelStoragePolicyRequest struct for deleting storage policy to the resource group +type DelStoragePolicyRequest struct { + // ID of resource group + // Required: true + RGID uint64 `url:"resgroup_id" json:"resgroup_id" validate:"required"` + + // ID of the storage policy to which to disconnect account + // Required: true + StoragePolicyID uint64 `url:"storage_policy_id" json:"storage_policy_id" validate:"required"` +} + +// DelStoragePolicy delete storage policy to the account. +func (r RG) DelStoragePolicy(ctx context.Context, req DelStoragePolicyRequest) (bool, error) { + err := validators.ValidateRequest(req) + if err != nil { + return false, validators.ValidationErrors(validators.GetErrors(err)) + } + + url := "/cloudapi/rg/del_storage_policy" + + res, err := r.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/tests/platform_upgrade/request_map.go b/tests/platform_upgrade/request_map.go index 9ac22b6..d70ed26 100644 --- a/tests/platform_upgrade/request_map.go +++ b/tests/platform_upgrade/request_map.go @@ -385,6 +385,8 @@ func getRequestsMapCloudAPI() map[string]interface{} { "/restmachine/cloudapi/rg/update": rg.UpdateRequest{}, "/restmachine/cloudapi/rg/usage": rg.UsageRequest{}, "/restmachine/cloudapi/rg/removeDefNet": rg.RemoveDefNetRequest{}, + "/restmachine/cloudapi/rg/add_storage_policy": rg.AddStoragePolicyRequest{}, + "/restmachine/cloudapi/rg/del_storage_policy": rg.DelStoragePolicyRequest{}, // security_group "/restmachine/cloudapi/security_group/create": secgroup.CreateRequest{},