- Fix allowed network plugin value from "weawenet" to "weavenet" in validators for cloudapi/k8s, cloudbroker/k8s and cloudbroker/k8ci
- Delete omitempty from json, url tags in field Permanently in model DeleteRequest in cloudbroker/k8ci
- Delete ItemAffinityGroup and ListAffinityGroup models and change Data field type in ListAffinityGroups model in order to fix panic for AffinityGroupsList method in cloudapi/rg
- [Пример выполнения запроса](#пример-выполнения-запроса)
## Установка
@ -113,8 +129,8 @@ go get -u repository.basistech.ru/BASIS/decort-golang-sdk
Алгоритм работы с библиотекой выглядит следующим образом:
1. Выполнение одного из действий:
- настройка конфигурации клиента;
- парсинг конфигурации из файла.
- настройка конфигурации клиента;
- парсинг конфигурации из файла.
2. Создание клиента.
3. Создание структуры запроса.
4. Выполнение запроса.
@ -156,7 +172,7 @@ func main(){
#### Парсинг конфигурации из файла
Также возможно создать переменную конфигурации из JSON или YAML файла, используя функцию `ParseConfigJSON` (или `ParseConfigYAML`) из пакета config.
Также возможно создать переменную конфигурации из JSON или YAML файла, используя функцию `ParseConfigJSON` (или `ParseConfigYAML`) из пакета config.
<br>
*См. пример файлов конфигурации ниже и в директории `samples/`.*
@ -167,7 +183,7 @@ import (
func main() {
// Парсинг конфигурации из JSON-файла
cfg := config.ParseConfigJSON("<PATH>")
cfg, _ := config.ParseConfigJSON("<PATH>")
}
```
@ -238,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`
Все поля структуры имеют описание, в которых содержится:
@ -420,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. Вызвать метод, отвечающий за выполнение запроса и передать в него:
@ -634,7 +650,7 @@ filtered := resp.
```go
func main() {
// Чтение конфигурации из файла
cfg := config.ParseConfigJSON("<PATH>")
cfg, _ := config.ParseConfigJSON("<PATH>")
// Создание клиента
client := decort.New(cfg)
@ -766,7 +782,7 @@ func main() {
```
### Получение списка уникальных идентификаторов (ID) объекта
### Получение списка уникальных идентификаторов ID объекта
Для всех структур, имеющих поля со списками объектов с уникальными числовыми идентификаторами (ID), добавлены методы IDs(), возвращающие массивы уникальных идентификаторов объектов в этих списках.
Работа с BVS клиентом применяется для пользователей, которые используют для авторизации BVS.
### Настройка параметров BVS в кабинете администратора
Для корректной работы функции обновления токена необходимо соблюдать следующие условия:
на странице администратора по следующему пути: домены-<имя вашего домена>-(символ i)-токены
- параметр "Время жизни токена доступа" - устанавливается для всего домена. Не применяется есть по следующему пути: безопасность-клиентские_системы-(символ i)-токены-"Время жизни токена доступа" не выставлено иное время, которое имеет больший приоритет для конкретной клиентской системы
- параметр "Время простоя сессии" - время жизни токена обновления. В случае указания количества минут меньше, чем время жизни токена, то обновление токена будет работать некорректно. Редомендуется указывать время или равное или больше времени жизни токена
- параметр "Максимальное время жизни сессии" - время в течение которого возможно производить обновление токена. Если данный параметр будет равен времени жизни токена, то обновление токена будет работать некорректно. Редомендуется указывать время больше времени жизни токена
### Настройка конфигурации BVS клиента
Сначала, необходимо создать переменную конфигурации клиента. Конфигурация состоит как из обязательных, так и необязательных полей.
Также возможно создать переменную конфигурации из JSON или YAML файла, используя функцию `ParseConfigBVSJSON` (или `ParseConfigBVSYAML`) из пакета config.
<br>
*См. пример файлов конфигурации ниже и в директории `samples/`.*
Создание клиента происходит с помощью функции-строителя `NewBVS` из основного пакета `decort-sdk`, для избежания проблем с именами, пакету можно присвоить алиас `decort`. Функция принимает конфигурацию, возвращает структуру `DecortClient`, с помощью которой можно взаимодействовать с платформой.
В случае указания значения в переменной конфигурации `PathCfg` токен и конфигурация будут записаны в файл в формате `json`, переменная `PathToken` служит для записи токена в файл в формате `json`
В случае указания значения в переменной конфигурации `PathCfg` обновленный токен и конфигурация будут записаны в файл в формате `json`, переменная `PathToken` служит для записи токена в файл в формате `json`