This commit is contained in:
asteam
2025-09-27 01:06:15 +03:00
parent 1ccc37a104
commit cf584c8123
1175 changed files with 11022 additions and 1832 deletions

213
README.md
View File

@@ -7,6 +7,7 @@ Dynamix SDK - это библиотека, написанная на языке
- Версия 9.0.х Dynamix-SDK соответствует 4.1.0 версии платформы
- Версия 10.0.х Dynamix-SDK соответствует 4.2.0 версии платформы
- Версия 11.0.х Dynamix-SDK соответствует 4.3.0 версии платформы
- Версия 12.0.х Dynamix-SDK соответствует 4.4.0 версии платформы
## Оглавление
@@ -76,7 +77,7 @@ Dynamix SDK - это библиотека, написанная на языке
Выполните команду в терминале:
```bash
go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v11
go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v12
```
## Список API
@@ -85,6 +86,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v11
- `cloudapi` - пользовательская группа, которая позволяет воспользоваться всем стардартным функционалом платформы;
- `cloudbroker` - административная группа, которая позволяет воспользоваться всем стандартным функционалом платформы и расширенными возможностями, включающими в себя управление пользователями, ресурсами, платформами размещения ресурсов и т.д.
- `sdn` - группа для работы с SDN;
### Cloudapi
@@ -107,11 +109,15 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v11
- `Locations` - получение информации о grid площадки;
- `Prometheus` - получение статистики prometheus;
- `RG` - управление ресурсными группами аккаунта;
- `Security group` управление группами безопасности;
- `SEP` - управление storage endpoint (sep);
- `Stack` - получение информации о вычислительных узлах;
- `Storage policy` получение информации о политиках хранения;
- `Tasks` - получение информации о ходе выполнения асинхронных задач (например, создание кластера);
- `Trunk` - получение информации о транковых портах;
- `VFPool` - управление пулом виртуальных сетевых функций;
- `VINS` - управление виртуальными изолированными сетями.
- `VINS` - управление виртуальными изолированными сетями;
- `Zone` - управление зонами.
### Cloudbroker
@@ -122,6 +128,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v11
- `Audit` - получение информации о событиях системы;
- `APIAccess` - управление доступом к API и его объектам;
- `Backup` - управление резервным копированием;
- `BService` - управление группами виртуальных машин (computes);
- `Compute` - управление виртуальными машинами (индивидуально);
- `Disks` - управление виртуальными дисками;
- `DPDK` - управление виртуальными сетями DPDK;
@@ -139,13 +146,24 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v11
- `Prometheus` - получение статистики prometheus;
- `Resmon` - получение статистики resource monitoring;
- `RG` - управление ресурсными группами аккаунта;
- `Security group` управление группами безопасности;
- `SEP` - управление storage endpoint (sep);
- `Stack` - получение информации о вычислительных узлах;
- `Storage policy` управление политиками хранения;
- `Tasks` - получение информации о ходе выполнения асинхронных задач (например, создание кластера);
- `Trunk` - управление транковыми портами;
- `User` - управление пользователями (индивидуально);
- `VGPU` - управление виртуальными графическими процессорами;
- `VFPool` - управление пулом виртуальных сетевых функций;
- `VINS` - управление виртуальными изолированными сетями.
- `Zone` - управление зонами.
### SDN
`SDN` позволяет выполнять запросы к группе пользовательских конечных точек
Данная группа ручек позволяет выполнять следующие операции в платформе:
- `AccessGroup` - управление группами доступа
## Работа с библиотекой
@@ -176,7 +194,7 @@ go get -u repository.basistech.ru/BASIS/dynamix-golang-sdk/v11
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main(){
@@ -201,7 +219,7 @@ func main(){
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main() {
@@ -246,8 +264,8 @@ sslSkipVerify: false
package main
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -273,6 +291,7 @@ func main() {
- `pkg/cloudapi` - для `cloudapi`
- `pkg/cloudbroker` - для `cloudbroker`
- `pkg/sdn` - для `sdn`
В каждом пакете находятся пакеты групп API:
@@ -293,16 +312,21 @@ func main() {
- `pkg/cloudapi/locations` - для `Locations`
- `pkg/cloudapi/prometheus` - для `Prometheus`
- `pkg/cloudapi/rg` - для `RG`
- `pkg/cloudapi/secgroup` - для `Security group`
- `pkg/cloudapi/sep` - для `SEP`
- `pkg/cloudapi/stack` - для `Stack`
- `pkg/cloudapi/stpolicy` - для `Storage policy`
- `pkg/cloudapi/tasks` - для `Tasks`
- `pkg/cloudapi/trunk` - для `Trunk`
- `pkg/cloudapi/vfpool` - для `VFPool`
- `pkg/cloudapi/vins` - для `VINS`
- `pkg/cloudapi/zone` - для `Zone`
- **cloudbroker**:
- `pkg/cloudbroker/account` - для `Account`
- `pkg/cloudbroker/audit` - для `Audit`
- `pkg/cloudbroker/apiaccess` - для `APIAccess`
- `pkg/cloudbroker/backup` - для `Backup`
- `pkg/cloudbroker/bservice` - для `Basic Service`
- `pkg/cloudbroker/compute` - для `Compute`
- `pkg/cloudbroker/disks` - для `Disks`
- `pkg/cloudbroker/dpdknet` - для `DPDK`
@@ -320,13 +344,19 @@ func main() {
- `pkg/cloudbroker/prometheus` - для `Prometheus`
- `pkg/cloudbroker/resmon` - для `Resmon`
- `pkg/cloudbroker/rg` - для `RG`
- `pkg/cloudbroker/secgroup` - для `Security group`
- `pkg/cloudbroker/sep` - для `SEP`
- `pkg/cloudbroker/stack` - для `Stack`
- `pkg/cloudbroker/stpolicy` - для `Storage policy`
- `pkg/cloudbroker/tasks` - для `Tasks`
- `pkg/cloudbroker/trunk` - для `Trunk`
- `pkg/cloudbroker/user` - для `User`
- `pkg/cloudbroker/vgpu` - для `VGPU`
- `pkg/cloudbroker/vfpool` - для `VFPool`
- `pkg/cloudbroker/vins` - для `VINS`
- `pkg/cloudbroker/zone` - для `Zone`
- **sdn**:
- `pkg/sdn/access_groups` - для `AccessGroups`
Все поля структуры имеют описание, в которых содержится:
@@ -426,9 +456,9 @@ type CreateRequest struct {
package main
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudapi/kvmx86"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudapi/kvmx86"
)
func main() {
@@ -460,7 +490,7 @@ func main() {
Чтобы выполнить запрос, необходимо:
1. Вызвать у клиента метод, отвечаеющий за определение группы API для взаимодействия, это может быть `.CloudAPI()`, либо `.CloudBroker()`. Данные методы возвращаеют соответствующие структуры, с помощью которых можно совершать запросы.
1. Вызвать у клиента метод, отвечающий за определение группы API для взаимодействия, это может быть `.CloudAPI()`, `.CloudBroker()` или `.SDN()`. Данные методы возвращают соответствующие структуры, с помощью которых можно совершать запросы.
2. Вызвать у возвращенной структуры метод, определяющий группу ручек для взаимодействия.
Доступные методы для `.CloudAPI()`:
@@ -481,11 +511,15 @@ func main() {
- `.Locations()` - для работы с `Locations`
- `.Prometheus()` - для работы с `Prometheus`
- `.RG()` - для работы с `RG`
- `.SecurityGroup()` - для работы с `Security Group`
- `.SEP()` - для работы с `SEP`
- `.Stack()` - для работы с `Stack`
- `.StPolicy()` - для работы с `Storage Policy`
- `.Tasks()` - для работы с `Tasks`
- `.Trunk()` - для работы с `Trunk`
- `.VFPool()` - для работы с `VFPool`
- `.VINS()` - для работы с `VINS`
- `.Zone()` - для работы с `Zone`
Доступные методы для `.CloudBroker()`:
@@ -493,6 +527,7 @@ func main() {
- `.Audit()` - для работы с `Audit`
- `.APIAccess()` - для работы с `APIAccess`
- `.Backup()` - для работы с `Backup`
- `.BService()` - для работы с `BService`
- `.Compute()` - для работы с `Compute`
- `.Disks()` - для работы с `Disks`
- `.DPDKNet()` - для работы с `DPDK`
@@ -510,13 +545,21 @@ func main() {
- `.Prometheus()` - для работы с `Prometheus`
- `.Resmon()` - для работы с `Resmon`
- `.RG()` - для работы с `RG`
- `.SecurityGroup()` - для работы с `Security Group`
- `.SEP()` - для работы с `SEP`
- `.Stack()` - для работы с `Stack`
- `.StPolicy()` - для работы с `Storage Policy`
- `.Tasks()` - для работы с `Tasks`
- `.Trunk()` - для работы с `Trunk`
- `.User()` - для работы с `User`
- `.VGPU()` - для работы с `VGPU`
- `.VFPool()` - для работы с `VFPool`
- `.VINS()` - для работы с `VINS`
- `.Zone()` - для работы с `Zone`
Доступные методы для `.SDN()`:
- `.AccessGroup()` - для работы с `AccessGroup`
3. Вызвать метод, отвечающий за выполнение запроса и передать в него:
@@ -542,9 +585,9 @@ import (
"log"
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudapi/kvmx86"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudapi/kvmx86"
)
func main() {
@@ -592,9 +635,9 @@ import (
"log"
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudapi/account"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudapi/account"
)
func main() {
@@ -772,9 +815,9 @@ import (
"context"
"log"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudbroker/compute"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudbroker/compute"
)
func main() {
@@ -830,9 +873,9 @@ import (
"log"
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudapi/bservice"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudapi/bservice"
)
func main() {
@@ -885,10 +928,10 @@ import (
"log"
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudapi/tasks"
tasks_cb "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudbroker/tasks"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudapi/tasks"
tasks_cb "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudbroker/tasks"
)
func main() {
@@ -968,7 +1011,7 @@ func main() {
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main(){
@@ -992,7 +1035,7 @@ func main(){
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main() {
@@ -1033,8 +1076,8 @@ sslSkipVerify: true
package main
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1061,8 +1104,8 @@ package main
import (
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1144,7 +1187,7 @@ func main() {
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main(){
@@ -1172,7 +1215,7 @@ func main(){
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main() {
@@ -1189,7 +1232,7 @@ func main() {
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main() {
@@ -1255,8 +1298,8 @@ func main() {
package main
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1289,8 +1332,8 @@ package main
import (
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1330,8 +1373,8 @@ package main
import (
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1369,8 +1412,8 @@ package main
import (
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1423,11 +1466,11 @@ import (
"log"
"os"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudbroker/kvmx86"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/internal/constants"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/internal/validators"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/pkg/cloudbroker/kvmx86"
)
func main() {
@@ -1489,7 +1532,7 @@ func main() {
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main(){
@@ -1522,8 +1565,8 @@ func main(){
package main
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
@@ -1554,46 +1597,46 @@ package main
import (
"fmt"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
decort "repository.basistech.ru/BASIS/dynamix-golang-sdk/v12"
)
func main() {
// Настройка конфигурации
legacyCfg := config.LegacyConfig{
Username: "<USERNAME>",
Password: "<PASSWORD>",
Domain: "dynamix",
DecortURL: "https://mr4.digitalenergy.online",
Retries: 5,
}
legacyCfg.SetTimeout(5 * time.Minute)
cfg := config.UniversalConfig{
LegacyConfig: &legacyCfg,
// Настройка конфигурации
legacyCfg := config.LegacyConfig{
Username: "<USERNAME>",
Password: "<PASSWORD>",
Domain: "dynamix",
DecortURL: "https://mr4.digitalenergy.online",
Retries: 5,
}
// Создание клиента
universalClient := decort.NewUniversal(cfg)
// Создание структуры запроса
// CreateRequest - реквест на создание виртуальной машины
req := kvmx86.CreateRequest{
RGID: 123,
Name: "compute",
CPU: 4,
RAM: 4096,
ImageID: 321,
}
legacyCfg.SetTimeout(5 * time.Minute)
// Выполнение запроса
res, err := universalClient.CloudAPI().KVMX86().Create(context.Background(), req)
if err != nil {
log.Fatal(err)
}
cfg := config.UniversalConfig{
LegacyConfig: &legacyCfg,
}
fmt.Println(res)
// Создание клиента
universalClient := decort.NewUniversal(cfg)
// Создание структуры запроса
// CreateRequest - реквест на создание виртуальной машины
req := kvmx86.CreateRequest{
RGID: 123,
Name: "compute",
CPU: 4,
RAM: 4096,
ImageID: 321,
}
// Выполнение запроса
res, err := universalClient.CloudAPI().KVMX86().Create(context.Background(), req)
if err != nil {
log.Fatal(err)
}
fmt.Println(res)
}
```
@@ -1607,7 +1650,7 @@ func main() {
```go
import (
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/config"
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v12/config"
)
func main(){