v1.14.7
This commit is contained in:
67
CHANGELOG.md
67
CHANGELOG.md
@@ -1,4 +1,4 @@
|
||||
## Version 1.14.6
|
||||
## Version 1.14.7
|
||||
|
||||
Методы `Audits` в cloudapi/compute, cloudbroker/compute, cloudapi/account, cloudbroker/account, cloudapi/vins, cloudbroker/vins, cloudapi/rg и cloudbroker/rg стали deprecated и в следующих версиях будут удалены, вместо них необходимо использовать метод `List` в cloudapi/audit и cloudbroker/audit с соответствующими фильтрами
|
||||
Методы `AccessGrant`, `AccessGrantToPool`, `AccessRevoke`, `AccessRevokeToPool` в cloudbroker/sep стали deprecated и в следующих версиях будут удалены
|
||||
@@ -9,69 +9,12 @@
|
||||
|
||||
### Добавлено
|
||||
|
||||
#### extnet
|
||||
#### SDN Hypervisors
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-825 | Опциональное поле `EnableSecGroups` в структуру запроса `CreateRequest` в cloudbroker/extnet |
|
||||
| BGOS-518 | Группа методов Hypervisors |
|
||||
|
||||
#### grid
|
||||
#### SDN Version
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-828 | Вычисляемое поле `ZeroAccessEnabled` в структуру ответа `ItemLocation` в cloudbroker/grid |
|
||||
|
||||
#### dpdknet
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-825 | Опциональное поле `EnableSecGroups` в структуру запроса `CreateRequest` в cloudbroker/dpdknet |
|
||||
|
||||
### sep
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-832 | Метод `AddPoolAsync` в cloudbroker/sep |
|
||||
|
||||
#### vins
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-825 | Опциональное поле `EnableSecGroups` в структуру запроса `CreateInAccountRequest` в cloudbroker/vins и cloudapi/vins |
|
||||
| BGOS-825 | Опциональное поле `EnableSecGroups` в структуру запроса `CreateInRGRequest` в cloudbroker/vins и cloudapi/vins |
|
||||
|
||||
|
||||
### Изменено
|
||||
|
||||
#### compute
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-827 | Описание поля `EnableSecGroups` в структуре запроса `NetAttachRequest` в cloudapi/compute и в cloudbroker/compute |
|
||||
|
||||
#### kvmx86
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-827 | Описание поля `EnableSecGroups` в структуре `Interface` в структуре запроса `CreateRequest` и `CreateBlankRequest` в cloudapi/kvmx86 и в cloudbroker/kvmx86 |
|
||||
| BGOS-827 | Описание поля `EnableSecGroups` в структуре `InterfaceMassCreate` в структурах запроса `MassCreateRequest` в cloudbroker/kvmx86 |
|
||||
|
||||
#### lb
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-830 | Тип ответа метода `HighlyAvailable` в cloudapi/lb с uint64 на bool |
|
||||
|
||||
#### sep
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-834 | Тип ответа метода `DelConsumerNodes` с bool на interface в cloudbroker/sep |
|
||||
|
||||
#### sep
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-833 | Тип ответа метода `ConfigFieldEdit` с bool на структуру `RecordConfigFieldEdit` в cloudbroker/sep |
|
||||
|
||||
### Удалено
|
||||
|
||||
#### grid
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-826 | Структура запроса `AddRequest` и метод `Add` в cloudbroker/grid |
|
||||
|
||||
#### sep
|
||||
| Идентификатор<br>задачи | Описание |
|
||||
| --- | --- |
|
||||
| BGOS-832 | Опциональное поле `Sync` из структуры запроса `AddPoolRequest` в cloudbroker/sep |
|
||||
| BGOS-838 | Группа методов Version |
|
||||
|
||||
@@ -182,12 +182,14 @@ go get -u repository.basistech.ru/BASIS/decort-golang-sdk
|
||||
- `Address pool` - управление пулами адресов;
|
||||
- `DefaultSecurityPolicies` - управление политиками хранения по умолчанию;
|
||||
- `ExtNet` - управление виртуальными сетями, отвечающими за внешний доступ;
|
||||
- `Hypervisors` - управление гипервизорами;
|
||||
- `FloatingIPs` - управление плавающими IP-адресами;
|
||||
- `Logical ports` - управление логическими портами;
|
||||
- `NetworkObjectGroups` - управление группами объектов сети;
|
||||
- `Routers` - управление роутерами;
|
||||
- `SecurityPolicies` - управление политиками хранения;
|
||||
- `Segments` - управление сегментами;
|
||||
- `Version` - получение информации о версии SDN;
|
||||
|
||||
## Работа с библиотекой
|
||||
|
||||
@@ -383,12 +385,14 @@ func main() {
|
||||
- `pkg/sdn/adrspools` - для `Address pool`
|
||||
- `pkg/sdn/defsecpolicies` - для `DefaultSecurityPolicies`
|
||||
- `pkg/sdn/external_networks` - для `ExtNet`
|
||||
- `pkg/sdn/hypervisors` - для `Hypervisors`
|
||||
- `pkg/sdn/flips` - для `FloatingIPs`
|
||||
- `pkg/sdn/logicalports` - для `Logical ports`
|
||||
- `pkg/sdn/netobjgroups` - для `NetworkObjectGroups`
|
||||
- `pkg/sdn/routers` - для `Routers`
|
||||
- `pkg/sdn/secpolicies` - для `SecurityPolicies`
|
||||
- `pkg/sdn/segments` - для `Segments`
|
||||
- `pkg/sdn/version` - для `Version`
|
||||
|
||||
Все поля структуры имеют описание, в которых содержится:
|
||||
|
||||
@@ -584,12 +588,14 @@ func main() {
|
||||
- `.AddressPool()` - для работы с `Addres pool`
|
||||
- `.DefaultSecurityPolicies()` - для работы с `DefaultSecurityPolicies`
|
||||
- `.ExtNet()` - для работы с `ExtNet`
|
||||
- `.Hypervisors()` - для работы с `Hypervisors`
|
||||
- `.FloatingIPs()` - для работы с `FloatingIPs`
|
||||
- `.LogicalPorts()` - для работы с `Logical ports`
|
||||
- `.NetworkObjectGroups()` - для работы с `NetworkObjectGroups`
|
||||
- `.Routers()` - для работы с `Routers`
|
||||
- `.SecurityPolicies()` - для работы с `SecurityPolicies`
|
||||
- `.Segments()` - для работы с `Segments`
|
||||
- `.Version()` - для работы с `Version`
|
||||
|
||||
3. Вызвать метод, отвечающий за выполнение запроса и передать в него:
|
||||
|
||||
|
||||
10
pkg/sdn/hypervisors.go
Normal file
10
pkg/sdn/hypervisors.go
Normal file
@@ -0,0 +1,10 @@
|
||||
package sdn
|
||||
|
||||
import (
|
||||
hv "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/hypervisors"
|
||||
)
|
||||
|
||||
// Accessing the SDN method group
|
||||
func (sdn *SDN) Hypervisors() *hv.Hypervisors {
|
||||
return hv.New(sdn.client)
|
||||
}
|
||||
30
pkg/sdn/hypervisors/connect_node.go
Normal file
30
pkg/sdn/hypervisors/connect_node.go
Normal file
@@ -0,0 +1,30 @@
|
||||
package hypervisors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/constants"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
)
|
||||
|
||||
// ConnectNodeRequest to connect a node
|
||||
type ConnectNodeRequest struct {
|
||||
// Node to connect
|
||||
// Required: true
|
||||
NodeID uint64 `url:"node_id" json:"node_id" validate:"required"`
|
||||
}
|
||||
|
||||
func (hv Hypervisors) ConnectNode(ctx context.Context, req ConnectNodeRequest) (string, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return "", validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
url := "/sdn/hypervisor/connect_node"
|
||||
result, err := hv.client.DecortApiCallCtype(ctx, http.MethodPost, url, constants.MIMEJSON, req)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return string(result), nil
|
||||
}
|
||||
43
pkg/sdn/hypervisors/delete.go
Normal file
43
pkg/sdn/hypervisors/delete.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package hypervisors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/constants"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
)
|
||||
|
||||
// DeleteRequest to delete a hypervisor
|
||||
type DeleteRequest struct {
|
||||
// Name of a hypervisor
|
||||
// Required: true
|
||||
Name string `url:"name" json:"name" validate:"required"`
|
||||
}
|
||||
|
||||
// Delete a hypervisor
|
||||
func (hv Hypervisors) Delete(ctx context.Context, req DeleteRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/sdn/hypervisor/delete"
|
||||
|
||||
res, err := hv.client.DecortApiCallCtype(ctx, http.MethodDelete, url, constants.MIMEJSON, req)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
if string(res) == "" {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
result, err := strconv.ParseBool(string(res))
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
return result, nil
|
||||
}
|
||||
50
pkg/sdn/hypervisors/get.go
Normal file
50
pkg/sdn/hypervisors/get.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package hypervisors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
)
|
||||
|
||||
// GetRequest struct to get information about hypervisor
|
||||
type GetRequest struct {
|
||||
// Name
|
||||
// Required: true
|
||||
Name string `url:"name" json:"name" validate:"required"`
|
||||
|
||||
// Port info (available options: detailed, general)
|
||||
// Required: false
|
||||
PortInfo string `url:"port_info,omitempty" json:"port_info,omitempty"`
|
||||
}
|
||||
|
||||
// Get gets current configuration of a hypervisor as a RecordHypervisor
|
||||
func (hv Hypervisors) Get(ctx context.Context, req GetRequest) (*RecordHypervisor, error) {
|
||||
res, err := hv.GetRaw(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := RecordHypervisor{}
|
||||
|
||||
err = json.Unmarshal(res, &info)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &info, nil
|
||||
}
|
||||
|
||||
// GetRaw gets information about a hypervisor as an array of bytes
|
||||
func (hv Hypervisors) GetRaw(ctx context.Context, req GetRequest) ([]byte, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/sdn/hypervisor/get"
|
||||
|
||||
res, err := hv.client.DecortApiCall(ctx, http.MethodGet, url, req)
|
||||
return res, err
|
||||
}
|
||||
17
pkg/sdn/hypervisors/hypervisors.go
Normal file
17
pkg/sdn/hypervisors/hypervisors.go
Normal file
@@ -0,0 +1,17 @@
|
||||
package hypervisors
|
||||
|
||||
import (
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/interfaces"
|
||||
)
|
||||
|
||||
// Structure for creating request to hypervisors
|
||||
type Hypervisors struct {
|
||||
client interfaces.Caller
|
||||
}
|
||||
|
||||
// Builder for hypervisors endpoints
|
||||
func New(client interfaces.Caller) *Hypervisors {
|
||||
return &Hypervisors{
|
||||
client,
|
||||
}
|
||||
}
|
||||
90
pkg/sdn/hypervisors/list.go
Normal file
90
pkg/sdn/hypervisors/list.go
Normal file
@@ -0,0 +1,90 @@
|
||||
package hypervisors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
)
|
||||
|
||||
// ListRequest struct to get a list of hypervisors
|
||||
type ListRequest struct {
|
||||
// Page
|
||||
// Required: false
|
||||
Page uint64 `url:"page,omitempty" json:"page,omitempty"`
|
||||
|
||||
// Per page
|
||||
// Required: false
|
||||
PerPage uint64 `url:"per_page,omitempty" json:"per_page,omitempty"`
|
||||
|
||||
// Sort by (available options: name, hostname, last_sync, display_name, ip, created_at, updated_at)
|
||||
// Required: false
|
||||
SortBy string `url:"sort_by,omitempty" json:"sort_by,omitempty"`
|
||||
|
||||
// Sort order (available options: asc, desc)
|
||||
// Required: false
|
||||
SortOrder string `url:"sort_order,omitempty" json:"sort_order,omitempty"`
|
||||
|
||||
// Port info (available options: detailed, general)
|
||||
// Required: false
|
||||
PortInfo string `url:"port_info,omitempty" json:"port_info,omitempty"`
|
||||
|
||||
// Hostname
|
||||
// Required: false
|
||||
Hostname string `url:"hostname,omitempty" json:"hostname,omitempty"`
|
||||
|
||||
// Display name
|
||||
// Required: false
|
||||
DisplayName string `url:"display_name,omitempty" json:"display_name,omitempty"`
|
||||
|
||||
// IP
|
||||
// Required: false
|
||||
IP string `url:"ip,omitempty" json:"ip,omitempty"`
|
||||
|
||||
// Created from
|
||||
// Required: false
|
||||
CreatedFrom string `url:"created_from,omitempty" json:"created_from,omitempty"`
|
||||
|
||||
// Created to
|
||||
// Required: false
|
||||
CreatedTo string `url:"created_to,omitempty" json:"created_to,omitempty"`
|
||||
|
||||
// Updated from
|
||||
// Required: false
|
||||
UpdatedFrom string `url:"updated_from,omitempty" json:"updated_from,omitempty"`
|
||||
|
||||
// Updated to
|
||||
// Required: false
|
||||
UpdatedTo string `url:"updated_to,omitempty" json:"updated_to,omitempty"`
|
||||
}
|
||||
|
||||
// List of hypervisors
|
||||
func (hv Hypervisors) List(ctx context.Context, req ListRequest) (HypervisorsList, error) {
|
||||
res, err := hv.ListRaw(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
hvs := HypervisorsList{}
|
||||
|
||||
err = json.Unmarshal(res, &hvs)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return hvs, nil
|
||||
}
|
||||
|
||||
// ListRaw gets a list of all hypervisors as an array of bytes
|
||||
func (hv Hypervisors) ListRaw(ctx context.Context, req ListRequest) ([]byte, error) {
|
||||
|
||||
if err := validators.ValidateRequest(req); err != nil {
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/sdn/hypervisor/list"
|
||||
|
||||
res, err := hv.client.DecortApiCall(ctx, http.MethodGet, url, req)
|
||||
return res, err
|
||||
}
|
||||
31
pkg/sdn/hypervisors/models.go
Normal file
31
pkg/sdn/hypervisors/models.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package hypervisors
|
||||
|
||||
// Main information about hypervisor
|
||||
type RecordHypervisor struct {
|
||||
// Created at
|
||||
CreatedAt string `json:"created_at"`
|
||||
|
||||
// Display name
|
||||
DisplayName string `json:"display_name"`
|
||||
|
||||
// Hostname
|
||||
Hostname string `json:"hostname"`
|
||||
|
||||
// IP
|
||||
IP string `json:"ip"`
|
||||
|
||||
// Synced at
|
||||
SyncedAt string `json:"synced_at"`
|
||||
|
||||
// Name
|
||||
Name string `json:"name"`
|
||||
|
||||
// Ports
|
||||
Ports []string `json:"ports"`
|
||||
|
||||
// Status
|
||||
Status string `json:"status"`
|
||||
}
|
||||
|
||||
// List of hypervisors
|
||||
type HypervisorsList []RecordHypervisor
|
||||
50
pkg/sdn/hypervisors/update_display_name.go
Normal file
50
pkg/sdn/hypervisors/update_display_name.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package hypervisors
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
)
|
||||
|
||||
// UpdateDisplayNameRequest struct to update display name for a hypervisor
|
||||
type UpdateDisplayNameRequest struct {
|
||||
// Current name of the hypervisor
|
||||
// Required: true
|
||||
Name string `url:"name" json:"name" validate:"required"`
|
||||
|
||||
// New display name to set
|
||||
// Required: true
|
||||
DisplayName string `url:"display_name" json:"display_name" validate:"required"`
|
||||
}
|
||||
|
||||
// UpdateDisplayName updates display name for a hypervisor
|
||||
func (hv Hypervisors) UpdateDisplayName(ctx context.Context, req UpdateDisplayNameRequest) (*RecordHypervisor, error) {
|
||||
res, err := hv.UpdateDisplayNameRaw(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := RecordHypervisor{}
|
||||
|
||||
err = json.Unmarshal(res, &info)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &info, nil
|
||||
}
|
||||
|
||||
// UpdateDisplayNameRaw update display name for a hypervisor and get its information as an array of bytes
|
||||
func (hv Hypervisors) UpdateDisplayNameRaw(ctx context.Context, req UpdateDisplayNameRequest) ([]byte, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/sdn/hypervisor/update_display_name"
|
||||
|
||||
res, err := hv.client.DecortApiCall(ctx, http.MethodPut, url, req)
|
||||
return res, err
|
||||
}
|
||||
10
pkg/sdn/version.go
Normal file
10
pkg/sdn/version.go
Normal file
@@ -0,0 +1,10 @@
|
||||
package sdn
|
||||
|
||||
import (
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/version"
|
||||
)
|
||||
|
||||
// Accessing the SDN method group
|
||||
func (sdn *SDN) Version() *version.Version {
|
||||
return version.New(sdn.client)
|
||||
}
|
||||
33
pkg/sdn/version/get.go
Normal file
33
pkg/sdn/version/get.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package version
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Get gets SDN version info as a RecordVersion struct
|
||||
func (v Version) Get(ctx context.Context) (*RecordVersion, error) {
|
||||
res, err := v.GetRaw(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
info := RecordVersion{}
|
||||
|
||||
err = json.Unmarshal(res, &info)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &info, nil
|
||||
}
|
||||
|
||||
// GetRaw gets SDN version info as an array of bytes
|
||||
func (v Version) GetRaw(ctx context.Context) ([]byte, error) {
|
||||
|
||||
url := "/sdn/version/get"
|
||||
|
||||
res, err := v.client.DecortApiCall(ctx, http.MethodGet, url, nil)
|
||||
return res, err
|
||||
}
|
||||
25
pkg/sdn/version/models.go
Normal file
25
pkg/sdn/version/models.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package version
|
||||
|
||||
// Version info of the SDN platform
|
||||
type RecordVersion struct {
|
||||
// Core component version info
|
||||
Core ComponentVersion `json:"core"`
|
||||
|
||||
// Director component version info
|
||||
Director ComponentVersion `json:"director"`
|
||||
}
|
||||
|
||||
// Version info of a single component
|
||||
type ComponentVersion struct {
|
||||
// Branch name
|
||||
Branch string `json:"branch"`
|
||||
|
||||
// Build time
|
||||
BuildTime string `json:"build_time"`
|
||||
|
||||
// Commit hash
|
||||
Commit string `json:"commit"`
|
||||
|
||||
// Version string
|
||||
Version string `json:"version"`
|
||||
}
|
||||
18
pkg/sdn/version/version.go
Normal file
18
pkg/sdn/version/version.go
Normal file
@@ -0,0 +1,18 @@
|
||||
// API Actor API for managing SDN version
|
||||
package version
|
||||
|
||||
import (
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/interfaces"
|
||||
)
|
||||
|
||||
// Structure for creating request to version
|
||||
type Version struct {
|
||||
client interfaces.Caller
|
||||
}
|
||||
|
||||
// Builder for version endpoints
|
||||
func New(client interfaces.Caller) *Version {
|
||||
return &Version{
|
||||
client,
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,7 @@ import (
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/acsgroups"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/adrspools"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/defsecpolicies"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/hypervisors"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/logicalports"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/routers"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/secpolicies"
|
||||
@@ -59,6 +60,7 @@ import (
|
||||
extnet_sdn "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/extnet"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/flips"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/netobjgroups"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/version"
|
||||
)
|
||||
|
||||
// TestGetListCloudAPI tests platforms responses vs. json tags of golang structures in cloudapi get/list methods
|
||||
@@ -1025,6 +1027,26 @@ func TestGetListSDNAPI(t *testing.T) {
|
||||
t.Errorf("Can not test segments get because list is empty")
|
||||
}
|
||||
|
||||
// Hypervisors
|
||||
// List
|
||||
bytes, err = client.SDN().Hypervisors().ListRaw(context.Background(), hypervisors.ListRequest{})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
getResult("Hypervisors list", bytes, hypervisors.HypervisorsList{}, t)
|
||||
// Get
|
||||
listHypervisors, _ := client.SDN().Hypervisors().List(context.Background(), hypervisors.ListRequest{})
|
||||
if len(listHypervisors) > 0 {
|
||||
id := listHypervisors[0].Name
|
||||
bytes, err = client.SDN().Hypervisors().GetRaw(context.Background(), hypervisors.GetRequest{Name: id})
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
getResult("Hypervisors get", bytes, hypervisors.RecordHypervisor{}, t)
|
||||
} else {
|
||||
t.Errorf("Can not test Hypervisors get because listHypervisors list is empty")
|
||||
}
|
||||
|
||||
// FloatingIPs
|
||||
// List
|
||||
bytes, err = client.SDN().FloatingIPs().ListRaw(context.Background(), flips.ListRequest{})
|
||||
@@ -1084,6 +1106,13 @@ func TestGetListSDNAPI(t *testing.T) {
|
||||
} else {
|
||||
t.Errorf("Can not test routers get because routerList list is empty")
|
||||
}
|
||||
|
||||
// Version
|
||||
bytes, err = client.SDN().Version().GetRaw(context.Background())
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
getResult("Version get", bytes, version.RecordVersion{}, t)
|
||||
}
|
||||
|
||||
// TestRequestsCloudAPI tests platform requests vs. golang request structures in sdk for cloudapi requests
|
||||
|
||||
@@ -72,6 +72,7 @@ import (
|
||||
|
||||
extnet_sdn "repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/extnet"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/flips"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/hypervisors"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/pkg/sdn/netobjgroups"
|
||||
)
|
||||
|
||||
@@ -1167,6 +1168,13 @@ func getRequestsMapSDN() map[string]interface{} {
|
||||
"/restmachine/sdn/floating_ip/list": flips.ListRequest{},
|
||||
"/restmachine/sdn/floating_ip/update": flips.UpdateRequest{},
|
||||
|
||||
// hypervisors
|
||||
"/restmachine/sdn/hypervisor/connect_node": hypervisors.ConnectNodeRequest{},
|
||||
"/restmachine/sdn/hypervisor/delete": hypervisors.DeleteRequest{},
|
||||
"/restmachine/sdn/hypervisor/get": hypervisors.GetRequest{},
|
||||
"/restmachine/sdn/hypervisor/list": hypervisors.ListRequest{},
|
||||
"/restmachine/sdn/hypervisor/update_display_name": hypervisors.UpdateDisplayNameRequest{},
|
||||
|
||||
// network object groups
|
||||
"/restmachine/sdn/network_object_group/attach_external_network_ports": netobjgroups.AttachExtNetPortsRequest{},
|
||||
"/restmachine/sdn/network_object_group/attach_logical_ports": netobjgroups.AttachLogicalPortsRequest{},
|
||||
@@ -1210,5 +1218,8 @@ func getRequestsMapSDN() map[string]interface{} {
|
||||
"/restmachine/sdn/router/list": routers.ListRequest{},
|
||||
"/restmachine/sdn/router/policies/list": policies.ListRequest{},
|
||||
"/restmachine/sdn/router/update": routers.UpdateRequest{},
|
||||
|
||||
// version
|
||||
"/restmachine/sdn/version/get": nil,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user