- Add refresh Token in BVS authorization mode and refactoring bvs_client
- Delete tag validate and omitempty in Permanently field, DeleteRequest model in cloudApi/k8s/delete cloudBroker/k8s/delete
- Add Page and Size fields into model AffinityGroupsListRequest in cloudbroker/rg/affinity_groups_list;
- Change type of Data field from for model ListAffinityGroup in cloudbroker/rg/affinity_groups_list for correct parsing;
- Add new models ListAffinityGroupItems and ItemAffinityGroup to support correct parsing for model ListAffinityGroup in cloudbroker/rg/affinity_groups_list;
- Add missing IDs() method for model ListAffinityGroupItems in cloudbroker/rg/affinity_groups_list;
- Add ResourceLimits field into model ItemResourceConsumption in cloudbroker/rg/models;
- Add LockStatus field into model ListRequest in cloudbroker/rg/list;
- Fix url for cloudbroker/grid/getDiagnosisGet
- Create ListUsers model with Data and EntryCount fields in cloudbroker/compute/models;
- Change type of return structure for UserList method from RecordACL to ListUsers in cloudbroker/compute/user_list;
- Create ListSnapShot model with Data and EntryCount fields in cloudbroker/compute/models;
- Change type of return structure for SnapshotList from ListSnapshots to *ListSnapShot in cloudbroker/compute/snapshot_list;
- Change json tag for TotalDiskSize field for model ItemCompute in cloudbroker/compute/models;
- Add NeedReboot and CdImageId fields for model InfoCompute in cloudbroker/compute/models;
- Reorganize ListPFW model by adding Data and EntryCount fields with json tags in cloudbroker/compute/models;
- Fix IDs() method for ListPFW model in cloudbroker/compute/ids;
- Change type of return structure for PFWList method from ListPFW to *ListPFW in cloudbroker/compute/pfw_list.
## Feature
- Add endpoints AccessAdd AccessRemote in cloudBroker/k8ci
- Add endpoints Audit in cloudBroker
- Add AuthBroker field to model RecordGrid in cloudbroker/grid/models
- Add AuthBroker field to model ItemGridList in cloudbroker/grid/models
- Add endpoints DeleteCustomFields in cloudbroker/compute
- Refactoring clients
- Add fields FrontendHAIP and BackendHAIP in model ItemLB in cloudbroker/rg and RecordLoadBalancer in cloudapi/rg
- Add field AuthBroker in ItemLocation model in cloudapi/locations
- [Пример выполнения запроса](#пример-выполнения-запроса)
## Установка
@ -114,8 +129,8 @@ go get -u repository.basistech.ru/BASIS/decort-golang-sdk
Алгоритм работы с библиотекой выглядит следующим образом:
1. Выполнение одного из действий:
- настройка конфигурации клиента;
- парсинг конфигурации из файла.
- настройка конфигурации клиента;
- парсинг конфигурации из файла.
2. Создание клиента.
3. Создание структуры запроса.
4. Выполнение запроса.
@ -157,7 +172,7 @@ func main(){
#### Парсинг конфигурации из файла
Также возможно создать переменную конфигурации из JSON или YAML файла, используя функцию `ParseConfigJSON` (или `ParseConfigYAML`) из пакета config.
Также возможно создать переменную конфигурации из JSON или YAML файла, используя функцию `ParseConfigJSON` (или `ParseConfigYAML`) из пакета config.
<br>
*См. пример файлов конфигурации ниже и в директории `samples/`.*
@ -239,48 +254,48 @@ func main() {
В каждом пакете находятся пакеты групп API:
- **cloudapi**:
- `pkg/cloudapi/account` - для `Account`
- `pkg/cloudapi/bservice` - для `Basic Service`
- `pkg/cloudapi/compute` - для `Compute`
- `pkg/cloudapi/disks` - для `Disks`
- `pkg/cloudapi/extnet` - для `ExtNet`
- `pkg/cloudapi/flipgroup` - для `FLIPGroup`
- `pkg/cloudapi/image` - для `Image`
- `pkg/cloudapi/k8ci` - для `K8CI`
- `pkg/cloudapi/k8s` - для `K8S`
- `pkg/cloudapi/kvmppc` - для `KVMPPC`
- `pkg/cloudapi/kvmx86` - для `KVMX86`
- `pkg/cloudapi/lb` - для `LB`
- `pkg/cloudapi/locations` - для `Locations`
- `pkg/cloudapi/rg` - для `RG`
- `pkg/cloudapi/sizes` - для `Sizes`
- `pkg/cloudapi/stack` - для `Stack`
- `pkg/cloudapi/tasks` - для `Tasks`
- `pkg/cloudapi/vins` - для `VINS`
- `pkg/cloudapi/account` - для `Account`
- `pkg/cloudapi/bservice` - для `Basic Service`
- `pkg/cloudapi/compute` - для `Compute`
- `pkg/cloudapi/disks` - для `Disks`
- `pkg/cloudapi/extnet` - для `ExtNet`
- `pkg/cloudapi/flipgroup` - для `FLIPGroup`
- `pkg/cloudapi/image` - для `Image`
- `pkg/cloudapi/k8ci` - для `K8CI`
- `pkg/cloudapi/k8s` - для `K8S`
- `pkg/cloudapi/kvmppc` - для `KVMPPC`
- `pkg/cloudapi/kvmx86` - для `KVMX86`
- `pkg/cloudapi/lb` - для `LB`
- `pkg/cloudapi/locations` - для `Locations`
- `pkg/cloudapi/rg` - для `RG`
- `pkg/cloudapi/sizes` - для `Sizes`
- `pkg/cloudapi/stack` - для `Stack`
- `pkg/cloudapi/tasks` - для `Tasks`
- `pkg/cloudapi/vins` - для `VINS`
- **cloudbroker**:
- `pkg/cloudbroker/account` - для `Account`
- `pkg/cloudbroker/apiaccess` - для `APIAccess`
- `pkg/cloudbroker/backup` - для `Backup`
- `pkg/cloudbroker/compute` - для `Compute`
- `pkg/cloudbroker/disks` - для `Disks`
- `pkg/cloudbroker/extnet` - для `ExtNet`
- `pkg/cloudbroker/flipgroup` - для `FLIPGroup`
- `pkg/cloudbroker/grid` - для `Grid`
- `pkg/cloudbroker/group` - для `Group`
- `pkg/cloudbroker/image` - для `Image`
- `pkg/cloudbroker/k8ci` - для `K8CI`
- `pkg/cloudbroker/k8s` - для `K8S`
- `pkg/cloudbroker/kvmppc` - для `KVMPPC`
- `pkg/cloudbroker/kvmx86` - для `KVMX86`
- `pkg/cloudbroker/lb` - для `LB`
- `pkg/cloudbroker/pcidevice` - для `PCIDevice`
- `pkg/cloudbroker/rg` - для `RG`
- `pkg/cloudbroker/sep` - для `SEP`
- `pkg/cloudbroker/stack` - для `Stack`
- `pkg/cloudbroker/tasks` - для `Tasks`
- `pkg/cloudbroker/user` - для `User`
- `pkg/cloudbroker/vgpu` - для `VGPU`
- `pkg/cloudbroker/vins` - для `VINS`
- `pkg/cloudbroker/account` - для `Account`
- `pkg/cloudbroker/apiaccess` - для `APIAccess`
- `pkg/cloudbroker/backup` - для `Backup`
- `pkg/cloudbroker/compute` - для `Compute`
- `pkg/cloudbroker/disks` - для `Disks`
- `pkg/cloudbroker/extnet` - для `ExtNet`
- `pkg/cloudbroker/flipgroup` - для `FLIPGroup`
- `pkg/cloudbroker/grid` - для `Grid`
- `pkg/cloudbroker/group` - для `Group`
- `pkg/cloudbroker/image` - для `Image`
- `pkg/cloudbroker/k8ci` - для `K8CI`
- `pkg/cloudbroker/k8s` - для `K8S`
- `pkg/cloudbroker/kvmppc` - для `KVMPPC`
- `pkg/cloudbroker/kvmx86` - для `KVMX86`
- `pkg/cloudbroker/lb` - для `LB`
- `pkg/cloudbroker/pcidevice` - для `PCIDevice`
- `pkg/cloudbroker/rg` - для `RG`
- `pkg/cloudbroker/sep` - для `SEP`
- `pkg/cloudbroker/stack` - для `Stack`
- `pkg/cloudbroker/tasks` - для `Tasks`
- `pkg/cloudbroker/user` - для `User`
- `pkg/cloudbroker/vgpu` - для `VGPU`
- `pkg/cloudbroker/vins` - для `VINS`
Все поля структуры имеют описание, в которых содержится:
@ -421,50 +436,50 @@ func main() {
Доступные методы для `.CloudAPI()`:
- `.Account()` - для работы с`Account`
- `.BService()` - для работы с`BService`
- `.Compute()` - для работы с`Compute`
- `.Disks()` - для работы с`Disks`
- `.ExtNet()` - для работы с`ExtNet`
- `.FLIPgroup()` - для работы с`FLIPGroup`
- `.Image()` - для работы с`Image`
- `.K8CI()` - для работы с`K8CI`
- `.K8S()` - для работы с`K8S`
- `.KVMPPC()` - для работы с`KVMPPC`
- `.KVMx86()` - для работы с`KVMX86`
- `.LB()` - для работы с`LB`
- `.Locations()` - для работы с`Locations`
- `.RG()` - для работы с`RG`
- `.Sizes()` - для работы с`Sizes`
- `.Stack()` - для работы с`Stack`
- `.Tasks()` - для работы с`Tasks`
- `.VINS()` - для работы с`VINS`
- `.Account()` - для работы с`Account`
- `.BService()` - для работы с`BService`
- `.Compute()` - для работы с`Compute`
- `.Disks()` - для работы с`Disks`
- `.ExtNet()` - для работы с`ExtNet`
- `.FLIPgroup()` - для работы с`FLIPGroup`
- `.Image()` - для работы с`Image`
- `.K8CI()` - для работы с`K8CI`
- `.K8S()` - для работы с`K8S`
- `.KVMPPC()` - для работы с`KVMPPC`
- `.KVMx86()` - для работы с`KVMX86`
- `.LB()` - для работы с`LB`
- `.Locations()` - для работы с`Locations`
- `.RG()` - для работы с`RG`
- `.Sizes()` - для работы с`Sizes`
- `.Stack()` - для работы с`Stack`
- `.Tasks()` - для работы с`Tasks`
- `.VINS()` - для работы с`VINS`
Доступные методы для `.CloudBroker()`:
- `.Account()` - для работы с`Account`
- `.APIAccess()` - для работы с`APIAccess`
- `.Backup()` - для работы с`Backup`
- `.Compute()` - для работы с`Compute`
- `.Disks()` - для работы с`Disks`
- `.ExtNet()` - для работы с`ExtNet`
- `.FLIPGroup()` - для работы с`FLIPGroup`
- `.Grid()` - для работы с`Grid`
- `.Group()` - для работы с`Group`
- `.Image()` - для работы с`Image`
- `.K8CI()` - для работы с`K8CI`
- `.K8S()` - для работы с`K8S`
- `.KVMPPC()` - для работы с`KVMPPC`
- `.KVMx86()` - для работы с`KVMX86`
- `.LB()` - для работы с`LB`
- `.PCIDevice()` - для работы с`PCIDevice`
- `.RG()` - для работы с`RG`
- `.SEP()` - для работы с`SEP`
- `.Stack()` - для работы с`Stack`
- `.Tasks()` - для работы с`Tasks`
- `.User()` - для работы с`User`
- `.VGPU()` - для работы с`VGPU`
- `.VINS()` - для работы с`VINS`
- `.Account()` - для работы с`Account`
- `.APIAccess()` - для работы с`APIAccess`
- `.Backup()` - для работы с`Backup`
- `.Compute()` - для работы с`Compute`
- `.Disks()` - для работы с`Disks`
- `.ExtNet()` - для работы с`ExtNet`
- `.FLIPGroup()` - для работы с`FLIPGroup`
- `.Grid()` - для работы с`Grid`
- `.Group()` - для работы с`Group`
- `.Image()` - для работы с`Image`
- `.K8CI()` - для работы с`K8CI`
- `.K8S()` - для работы с`K8S`
- `.KVMPPC()` - для работы с`KVMPPC`
- `.KVMx86()` - для работы с`KVMX86`
- `.LB()` - для работы с`LB`
- `.PCIDevice()` - для работы с`PCIDevice`
- `.RG()` - для работы с`RG`
- `.SEP()` - для работы с`SEP`
- `.Stack()` - для работы с`Stack`
- `.Tasks()` - для работы с`Tasks`
- `.User()` - для работы с`User`
- `.VGPU()` - для работы с`VGPU`
- `.VINS()` - для работы с`VINS`
3. Вызвать метод, отвечающий за выполнение запроса и передать в него:
@ -767,7 +782,7 @@ func main() {
```
### Получение списка уникальных идентификаторов (ID) объекта
### Получение списка уникальных идентификаторов ID объекта
Для всех структур, имеющих поля со списками объектов с уникальными числовыми идентификаторами (ID), добавлены методы IDs(), возвращающие массивы уникальных идентификаторов объектов в этих списках.
@ -916,7 +931,7 @@ func main() {
legacyCfg.SetTimeout(5 * time.Minute)
// Создание клиента
legacyClient := decort.NewLegacy(cfg)
legacyClient := decort.NewLegacy(legacyCfg)
}
```
@ -943,7 +958,7 @@ func main() {
}
// Создание клиента
legacyClient := decort.NewLegacy(cfg)
legacyClient := decort.NewLegacy(legacyCfg)
// Создание структуры запроса
// CreateRequest - реквест на создание виртуальной машины
В случае указания значения в переменной конфигурации `PathCfg` токен и конфигурация будут записаны в файл в формате `json`, переменная `PathToken` служит для записи токена в файл в формате `json`
В случае указания значения в переменной конфигурации `PathCfg` обновленный токен и конфигурация будут записаны в файл в формате `json`, переменная `PathToken` служит для записи токена в файл в формате `json`