v11.0.0
This commit is contained in:
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityGroupCheckStartRequest struct to check all computes with current affinity label can start
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityLabelRemoveRequest struct for clear affinity label for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityLabelSetRequest struct to set affinity label for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityRelationsRequest struct to get dict of computes
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityRuleAddRequest struct to add affinity rule
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityRuleRemoveRequest struct to remove affinity rule
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AffinityRulesClearRequest struct to clear affinity rules
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AntiAffinityRuleAddRequest struct to add anti affinity rule
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AntiAffinityRulesClearRequest struct to clear anti affinity rules
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AntiAffinityRuleRemoveRequest struct to remove anti affinity rule
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AttachGPURequest struct to attach GPU for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AttachPCIDeviceRequest struct to attach PCI device
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// AuditsRequest struct to get audit records
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// BootDiskSetRequest struct to set boot disk for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// BootOrderGetRequest struct to get boot order
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// BootOrderSetRequest struct to set boot order
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// CDEjectRequest struct to eject CD image
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// CDInsertRequest struct to insert new CD image
|
||||
|
||||
@@ -5,30 +5,30 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ChangeIPRequest struct to change IP for network
|
||||
type ChangeIPRequest struct {
|
||||
// ID of compute instance
|
||||
// Required: true
|
||||
ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"`
|
||||
ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
|
||||
|
||||
// Network type
|
||||
// 'EXTNET' for connect to external network directly
|
||||
// 'VINS' for connect to ViNS
|
||||
// Required: true
|
||||
NetType string `url:"netType" json:"netType" validate:"computeNetType"`
|
||||
NetType string `url:"net_type" json:"net_type" validate:"computeNetType"`
|
||||
|
||||
// Network ID for connect to
|
||||
// For EXTNET - external network ID
|
||||
// For VINS - VINS ID
|
||||
// Required: true
|
||||
NetID uint64 `url:"netId" json:"netId" validate:"required"`
|
||||
NetID uint64 `url:"net_id" json:"net_id" validate:"required"`
|
||||
|
||||
// IP address to which we will change the existing one, it must be from the same subnet
|
||||
// Required: true
|
||||
IPAddr string `url:"ipAddr" json:"ipAddr" validate:"required"`
|
||||
IPAddr string `url:"ip_addr" json:"ip_addr" validate:"required"`
|
||||
}
|
||||
|
||||
// ChangeIP change reserved IP for compute instance
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ChangeLinkStateRequest struct for changing link state
|
||||
|
||||
46
pkg/cloudbroker/compute/change_mac.go
Normal file
46
pkg/cloudbroker/compute/change_mac.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ChangeMACRequest struct to change MAC for network
|
||||
type ChangeMACRequest struct {
|
||||
// ID of compute instance
|
||||
// Required: true
|
||||
ComputeID uint64 `url:"compute_id" json:"compute_id" validate:"required"`
|
||||
|
||||
// Current mac address
|
||||
// Required: true
|
||||
СurrentMAC string `url:"current_mac_address" json:"current_mac_address" validate:"required"`
|
||||
|
||||
// the MAC address to which we will change the existing one
|
||||
// Required: true
|
||||
NewMAC string `url:"new_mac_address" json:"new_mac_address" validate:"required"`
|
||||
}
|
||||
|
||||
// ChangeMAC change MAC for compute instance
|
||||
func (c Compute) ChangeMAC(ctx context.Context, req ChangeMACRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/compute/changeMac"
|
||||
|
||||
res, err := c.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
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// CloneRequest struct to clone compute instance
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// API Actor for managing Compute. This actor is a final API for admin to manage Compute
|
||||
package compute
|
||||
|
||||
import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/interfaces"
|
||||
import "repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/interfaces"
|
||||
|
||||
// Structure for creating request to compute
|
||||
type Compute struct {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ComputeCISetRequest struct to set compute CI
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ComputeCIUnsetRequest struct to unset compute CI
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// CreateTemplateRequest struct to create template
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// CreateTemplateFromBlankRequest struct to create template from boot disk of current compute
|
||||
@@ -39,10 +39,6 @@ type CreateTemplateFromBlankRequest struct {
|
||||
// Required: false
|
||||
AccountID uint64 `url:"accountId,omitempty" json:"accountId,omitempty"`
|
||||
|
||||
// SEP ID
|
||||
// Required: false
|
||||
SepID uint64 `url:"sepId,omitempty" json:"sepId,omitempty"`
|
||||
|
||||
// Pool for image create
|
||||
// Required: false
|
||||
PoolName string `url:"poolName,omitempty" json:"poolName,omitempty"`
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DeleteRequest struct to delete compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DeleteCustomFieldsRequest struct to delete compute's custom fields
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DetachGPURequest struct to detach VGPU for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DetachPCIDeviceRequest struct to detach PCI device
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DisableRequest struct to disable compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskAddRequest struct to create and attach disk to compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskAttachRequest struct to attach disk to compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskDelRequest struct to detach and delete disk from compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskDetachRequest struct to detach disk from compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskMigrateRequest struct to migrate compute's disk to target disk
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskQOSRequest struct to change QOS of the disk
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskResizeRequest struct to change disk size
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// DiskSwitchToReplicationRequest struct to switch disk to it's replication
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// EnableRequest struct to enable compute
|
||||
|
||||
@@ -3,9 +3,9 @@ package compute
|
||||
import (
|
||||
"context"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/interfaces"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/pkg/cloudbroker/k8s"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/pkg/cloudbroker/lb"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/interfaces"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudbroker/k8s"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/pkg/cloudbroker/lb"
|
||||
)
|
||||
|
||||
// FilterByID returns ListComputes with specified ID.
|
||||
@@ -168,3 +168,164 @@ func (lc ListComputes) FindOne() ItemCompute {
|
||||
|
||||
return lc.Data[0]
|
||||
}
|
||||
|
||||
// FilterByID returns ListDeletedComputes with specified ID.
|
||||
func (lc ListDeletedComputes) FilterByID(id uint64) ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
return ic.ID == id
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByName returns ListDeletedComputes with specified Name.
|
||||
func (lc ListDeletedComputes) FilterByName(name string) ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
return ic.Name == name
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByStatus returns ListDeletedComputes with specified Status.
|
||||
func (lc ListDeletedComputes) FilterByStatus(status string) ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
return ic.Status == status
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByTechStatus returns ListDeletedComputes with specified TechStatus.
|
||||
func (lc ListDeletedComputes) FilterByTechStatus(techStatus string) ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
return ic.TechStatus == techStatus
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByDiskID return ListDeletedComputes with specified DiskID.
|
||||
func (lc ListDeletedComputes) FilterByDiskID(diskID uint64) ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
for _, disk := range ic.Disks {
|
||||
if disk.ID == diskID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByK8SID returns master and worker nodes (ListDeletedComputes) inside specified K8S cluster.
|
||||
func (lc ListDeletedComputes) FilterByK8SID(ctx context.Context, k8sID uint64, decortClient interfaces.Caller) (*ListDeletedComputes, error) {
|
||||
caller := k8s.New(decortClient)
|
||||
|
||||
req := k8s.GetRequest{
|
||||
K8SID: k8sID,
|
||||
}
|
||||
|
||||
cluster, err := caller.Get(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
for _, info := range cluster.K8SGroups.Masters.DetailedInfo {
|
||||
if info.ID == ic.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
for _, worker := range cluster.K8SGroups.Workers {
|
||||
for _, info := range worker.DetailedInfo {
|
||||
if info.ID == ic.ID {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
result := lc.FilterFunc(predicate)
|
||||
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// K8SMasters is used to filter master nodes. Best used after FilterByK8SID function.
|
||||
func (lc ListDeletedComputes) FilterByK8SMasters() ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
for _, rule := range ic.AntiAffinityRules {
|
||||
if rule.Value == "master" {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// K8SMasters is used to filter worker nodes. Best used after FilterByK8SID function.
|
||||
func (lc ListDeletedComputes) FilterByK8SWorkers() ListDeletedComputes {
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
for _, rule := range ic.AntiAffinityRules {
|
||||
if rule.Value == "worker" {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
return lc.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByLBID is used to filter ListDeletedComputes used by specified Load Balancer.
|
||||
func (lc ListDeletedComputes) FilterByLBID(ctx context.Context, lbID uint64, decortClient interfaces.Caller) (*ListDeletedComputes, error) {
|
||||
caller := lb.New(decortClient)
|
||||
|
||||
req := lb.GetRequest{
|
||||
LBID: lbID,
|
||||
}
|
||||
|
||||
foundLB, err := caller.Get(ctx, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
predicate := func(ic ItemDeletedCompute) bool {
|
||||
return ic.ID == foundLB.PrimaryNode.ComputeID || ic.ID == foundLB.SecondaryNode.ComputeID
|
||||
}
|
||||
|
||||
result := lc.FilterFunc(predicate)
|
||||
|
||||
return &result, nil
|
||||
}
|
||||
|
||||
// FilterFunc allows filtering ListDeletedComputes based on a user-specified predicate.
|
||||
func (lc ListDeletedComputes) FilterFunc(predicate func(ItemDeletedCompute) bool) ListDeletedComputes {
|
||||
var result ListDeletedComputes
|
||||
|
||||
for _, item := range lc.Data {
|
||||
if predicate(item) {
|
||||
result.Data = append(result.Data, item)
|
||||
}
|
||||
}
|
||||
|
||||
result.EntryCount = uint64(len(result.Data))
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// FindOne returns first found ItemDeletedCompute
|
||||
// If none was found, returns an empty struct.
|
||||
func (lc ListDeletedComputes) FindOne() ItemDeletedCompute {
|
||||
if len(lc.Data) == 0 {
|
||||
return ItemDeletedCompute{}
|
||||
}
|
||||
|
||||
return lc.Data[0]
|
||||
}
|
||||
|
||||
@@ -9,8 +9,7 @@ var computes = ListComputes{
|
||||
{
|
||||
Disks: []InfoDisk{
|
||||
{
|
||||
ID: 65191,
|
||||
PCISlot: 6,
|
||||
ID: 65191,
|
||||
},
|
||||
},
|
||||
InfoCompute: InfoCompute{
|
||||
@@ -67,7 +66,7 @@ var computes = ListComputes{
|
||||
MigrationJob: 0,
|
||||
Milestones: 363500,
|
||||
Name: "test",
|
||||
Pinned: false,
|
||||
PinnedToStack: 1,
|
||||
RAM: 4096,
|
||||
ReferenceID: "c7cb19ac-af4a-4067-852f-c5572949207e",
|
||||
Registered: true,
|
||||
@@ -92,8 +91,7 @@ var computes = ListComputes{
|
||||
{
|
||||
Disks: []InfoDisk{
|
||||
{
|
||||
ID: 65248,
|
||||
PCISlot: 6,
|
||||
ID: 65248,
|
||||
},
|
||||
},
|
||||
InfoCompute: InfoCompute{
|
||||
@@ -132,7 +130,7 @@ var computes = ListComputes{
|
||||
MigrationJob: 0,
|
||||
Milestones: 363853,
|
||||
Name: "compute_2",
|
||||
Pinned: false,
|
||||
PinnedToStack: 1,
|
||||
RAM: 4096,
|
||||
ReferenceID: "a542c449-5b1c-4f90-88c5-7bb5f8ae68ff",
|
||||
Registered: true,
|
||||
@@ -248,3 +246,244 @@ func TestSortingByCPU(t *testing.T) {
|
||||
t.Fatal("expected 6 CPU cores, found: ", actual.Data[0].CPUs)
|
||||
}
|
||||
}
|
||||
|
||||
var deleteComputes = ListDeletedComputes{
|
||||
Data: []ItemDeletedCompute{
|
||||
{
|
||||
Disks: []InfoDisk{
|
||||
{
|
||||
ID: 65191,
|
||||
},
|
||||
},
|
||||
InfoCompute: InfoCompute{
|
||||
ACL: []interface{}{},
|
||||
AccountID: 132847,
|
||||
AccountName: "std_2",
|
||||
AffinityLabel: "",
|
||||
AffinityRules: []ItemRule{
|
||||
{
|
||||
GUID: "",
|
||||
Key: "aff_key",
|
||||
Mode: "ANY",
|
||||
Policy: "RECOMMENDED",
|
||||
Topology: "compute",
|
||||
Value: "aff_val",
|
||||
},
|
||||
},
|
||||
AffinityWeight: 0,
|
||||
AntiAffinityRules: []ItemRule{
|
||||
{
|
||||
GUID: "",
|
||||
Key: "antiaff_key",
|
||||
Mode: "ANY",
|
||||
Policy: "RECOMMENDED",
|
||||
Topology: "compute",
|
||||
Value: "antiaff_val",
|
||||
},
|
||||
},
|
||||
Arch: "X86_64",
|
||||
BootOrder: []string{
|
||||
"hd", "cdrom",
|
||||
},
|
||||
BootDiskSize: 0,
|
||||
CloneReference: 0,
|
||||
Clones: []uint64{},
|
||||
ComputeCIID: 0,
|
||||
CPUs: 4,
|
||||
CreatedBy: "timofey_tkachev_1@decs3o",
|
||||
CreatedTime: 1676975175,
|
||||
CustomFields: map[string]interface{}{},
|
||||
DeletedBy: "",
|
||||
DeletedTime: 0,
|
||||
Description: "",
|
||||
Devices: nil,
|
||||
Driver: "KVM_X86",
|
||||
GID: 212,
|
||||
GUID: 48500,
|
||||
ID: 48500,
|
||||
ImageID: 9884,
|
||||
Interfaces: ListInterfaces{},
|
||||
LockStatus: "UNLOCKED",
|
||||
ManagerID: 0,
|
||||
ManagerType: "",
|
||||
MigrationJob: 0,
|
||||
Milestones: 363500,
|
||||
Name: "test",
|
||||
RAM: 4096,
|
||||
ReferenceID: "c7cb19ac-af4a-4067-852f-c5572949207e",
|
||||
Registered: true,
|
||||
ResName: "compute-48500",
|
||||
RGID: 79724,
|
||||
RGName: "std_broker2",
|
||||
SnapSets: ListSnapshots{},
|
||||
StatelessSEPID: 0,
|
||||
StatelessSEPType: "",
|
||||
Status: "ENABLED",
|
||||
Tags: map[string]interface{}{},
|
||||
TechStatus: "STOPPED",
|
||||
TotalDiskSize: 2,
|
||||
UpdatedBy: "",
|
||||
UpdatedTime: 1677058904,
|
||||
UserManaged: true,
|
||||
VGPUs: []uint64{},
|
||||
VINSConnected: 0,
|
||||
VirtualImageID: 0,
|
||||
},
|
||||
},
|
||||
{
|
||||
Disks: []InfoDisk{
|
||||
{
|
||||
ID: 65248,
|
||||
},
|
||||
},
|
||||
InfoCompute: InfoCompute{
|
||||
ACL: []interface{}{},
|
||||
AccountID: 132848,
|
||||
AccountName: "std_broker",
|
||||
AffinityLabel: "",
|
||||
AffinityRules: []ItemRule{},
|
||||
AffinityWeight: 0,
|
||||
AntiAffinityRules: []ItemRule{},
|
||||
Arch: "X86_64",
|
||||
BootOrder: []string{
|
||||
"hd", "cdrom",
|
||||
},
|
||||
BootDiskSize: 0,
|
||||
CloneReference: 0,
|
||||
Clones: []uint64{},
|
||||
ComputeCIID: 0,
|
||||
CPUs: 6,
|
||||
CreatedBy: "timofey_tkachev_1@decs3o",
|
||||
CreatedTime: 1677579436,
|
||||
CustomFields: map[string]interface{}{},
|
||||
DeletedBy: "",
|
||||
DeletedTime: 0,
|
||||
Description: "",
|
||||
Devices: nil,
|
||||
Driver: "KVM_X86",
|
||||
GID: 212,
|
||||
GUID: 48556,
|
||||
ID: 48556,
|
||||
ImageID: 9884,
|
||||
Interfaces: ListInterfaces{},
|
||||
LockStatus: "UNLOCKED",
|
||||
ManagerID: 0,
|
||||
ManagerType: "",
|
||||
MigrationJob: 0,
|
||||
Milestones: 363853,
|
||||
Name: "compute_2",
|
||||
RAM: 4096,
|
||||
ReferenceID: "a542c449-5b1c-4f90-88c5-7bb5f8ae68ff",
|
||||
Registered: true,
|
||||
ResName: "compute-48556",
|
||||
RGID: 79727,
|
||||
RGName: "sdk_negative_fields_test",
|
||||
SnapSets: ListSnapshots{},
|
||||
StatelessSEPID: 0,
|
||||
StatelessSEPType: "",
|
||||
Status: "ENABLED",
|
||||
Tags: map[string]interface{}{},
|
||||
TechStatus: "STARTED",
|
||||
TotalDiskSize: 1,
|
||||
UpdatedBy: "",
|
||||
UpdatedTime: 1677579436,
|
||||
UserManaged: true,
|
||||
VGPUs: []uint64{},
|
||||
VINSConnected: 0,
|
||||
VirtualImageID: 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
EntryCount: 2,
|
||||
}
|
||||
|
||||
func TestFilterDeleteByID(t *testing.T) {
|
||||
actual := deleteComputes.FilterByID(48500).FindOne()
|
||||
|
||||
if actual.ID != 48500 {
|
||||
t.Fatal("expected ID 48500, found: ", actual.ID)
|
||||
}
|
||||
|
||||
actualEmpty := deleteComputes.FilterByID(0)
|
||||
|
||||
if len(actualEmpty.Data) != 0 {
|
||||
t.Fatal("expected empty, actual: ", len(actualEmpty.Data))
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterDeleteByName(t *testing.T) {
|
||||
actual := deleteComputes.FilterByName("compute_2").FindOne()
|
||||
|
||||
if actual.Name != "compute_2" {
|
||||
t.Fatal("expected compute with name 'test', found: ", actual.Name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterDeleteByStatus(t *testing.T) {
|
||||
actual := deleteComputes.FilterByStatus("ENABLED")
|
||||
|
||||
for _, item := range actual.Data {
|
||||
if item.Status != "ENABLED" {
|
||||
t.Fatal("expected ENABLED status, found: ", item.Status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterDeleteByTechStatus(t *testing.T) {
|
||||
actual := deleteComputes.FilterByTechStatus("STARTED").FindOne()
|
||||
|
||||
if actual.ID != 48556 {
|
||||
t.Fatal("expected 48556 with STARTED techStatus, found: ", actual.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterDeleteByDiskID(t *testing.T) {
|
||||
actual := deleteComputes.FilterByDiskID(65248).FindOne()
|
||||
|
||||
if actual.ID != 48556 {
|
||||
t.Fatal("expected 48556 with DiskID 65248, found: ", actual.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterDeleteFunc(t *testing.T) {
|
||||
actual := deleteComputes.FilterFunc(func(ic ItemDeletedCompute) bool {
|
||||
return ic.Registered == true
|
||||
})
|
||||
|
||||
if len(actual.Data) != 2 {
|
||||
t.Fatal("expected 2 elements found, actual: ", len(actual.Data))
|
||||
}
|
||||
|
||||
for _, item := range actual.Data {
|
||||
if item.Registered != true {
|
||||
t.Fatal("expected Registered to be true, actual: ", item.Registered)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeleteSortingByCreatedTime(t *testing.T) {
|
||||
actual := deleteComputes.SortByCreatedTime(false)
|
||||
|
||||
if actual.Data[0].Name != "test" {
|
||||
t.Fatal("expected 'test', found: ", actual.Data[0].Name)
|
||||
}
|
||||
|
||||
actual = deleteComputes.SortByCreatedTime(true)
|
||||
if actual.Data[0].Name != "compute_2" {
|
||||
t.Fatal("expected 'compute_2', found: ", actual.Data[0].Name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeleteSortingByCPU(t *testing.T) {
|
||||
actual := deleteComputes.SortByCPU(false)
|
||||
|
||||
if actual.Data[0].CPUs != 4 {
|
||||
t.Fatal("expected 4 CPU cores, found: ", actual.Data[0].CPUs)
|
||||
}
|
||||
|
||||
actual = deleteComputes.SortByCPU(true)
|
||||
|
||||
if actual.Data[0].CPUs != 6 {
|
||||
t.Fatal("expected 6 CPU cores, found: ", actual.Data[0].CPUs)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// GetRequest to get information about compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// GetAuditsRequest struct to get compute audits
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// GetConsoleURLRequest struct to get console URL
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// GetCustomFieldsRequest struct to get Compute's customFields
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// GetLogRequest struct to get compute logs
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ListRequest struct to get list of available computes
|
||||
@@ -54,6 +54,10 @@ type ListRequest struct {
|
||||
// Required: false
|
||||
CDImageID uint64 `url:"cdImageId,omitempty" json:"cdImageId,omitempty"`
|
||||
|
||||
// Find by stack name
|
||||
// Required: false
|
||||
StackName string `url:"stackName,omitempty" json:"stackName,omitempty"`
|
||||
|
||||
// Find by external network name
|
||||
// Required: false
|
||||
ExtNetName string `url:"extNetName,omitempty" json:"extNetName,omitempty"`
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ListDeletedRequest struct to get deleted computes list
|
||||
@@ -60,7 +60,7 @@ type ListDeletedRequest struct {
|
||||
}
|
||||
|
||||
// ListDeleted gets list all deleted computes
|
||||
func (c Compute) ListDeleted(ctx context.Context, req ListDeletedRequest) (*ListComputes, error) {
|
||||
func (c Compute) ListDeleted(ctx context.Context, req ListDeletedRequest) (*ListDeletedComputes, error) {
|
||||
|
||||
if err := validators.ValidateRequest(req); err != nil {
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
@@ -73,7 +73,7 @@ func (c Compute) ListDeleted(ctx context.Context, req ListDeletedRequest) (*List
|
||||
return nil, err
|
||||
}
|
||||
|
||||
list := ListComputes{}
|
||||
list := ListDeletedComputes{}
|
||||
|
||||
err = json.Unmarshal(res, &list)
|
||||
if err != nil {
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ListPCIDeviceRequest struct to get list of PCI devices
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ListVGPURequest struct to get list of GPU for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MassDeleteRequest struct to delete several computes
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MassRebootRequest struct to reboot several computes
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
)
|
||||
|
||||
// MassRepairBootFSRequest struct to repair boot disk filesystem on several computes
|
||||
type MassRepairBootFSRequest struct {
|
||||
// IDs of compute instances which boot file systems will be repaired
|
||||
// Required: true
|
||||
ComputeIDs []uint64 `url:"computeIds" json:"computeIds" validate:"min=1"`
|
||||
}
|
||||
|
||||
// MassRepairBootFS repairs boot disk filesystem on several computes
|
||||
func (c Compute) MassRepairBootFS(ctx context.Context, req MassRepairBootFSRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/compute/massRepairBootFs"
|
||||
|
||||
res, err := c.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
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MassStartRequest struct to start several computes
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MassStopRequest struct to stop several computes
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MigrateRequest struct to migrate compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MigrateStorageRequest struct for migration
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MigrateStorageAbortRequest struct to abort migration
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MigrateStorageCleanUpRequest struct to cleanup resources after finished migration
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MigrateStorageInfoRequest struct to get info about migration
|
||||
|
||||
@@ -425,13 +425,13 @@ type ItemDisk struct {
|
||||
Password string `json:"passwd"`
|
||||
|
||||
// PCI slot
|
||||
PCISlot int64 `json:"pciSlot"`
|
||||
PCISlot int64 `json:"pci_slot"`
|
||||
|
||||
// Pool
|
||||
Pool string `json:"pool"`
|
||||
|
||||
// Present to
|
||||
PresentTo []uint64 `json:"presentTo"`
|
||||
PresentTo map[string]uint64 `json:"presentTo"`
|
||||
|
||||
// Purge attempts
|
||||
PurgeAttempts uint64 `json:"purgeAttempts"`
|
||||
@@ -469,6 +469,9 @@ type ItemDisk struct {
|
||||
// Size used
|
||||
SizeUsed float64 `json:"sizeUsed"`
|
||||
|
||||
// Size available
|
||||
SizeAvailable float64 `json:"sizeAvailable"`
|
||||
|
||||
// List detailed snapshots
|
||||
Snapshots ListDetailedSnapshots `json:"snapshots"`
|
||||
|
||||
@@ -482,7 +485,7 @@ type ItemDisk struct {
|
||||
Type string `json:"type"`
|
||||
|
||||
// Updated by
|
||||
UpdatedBy uint64 `json:"updatedBy,omitempty"`
|
||||
UpdatedBy string `json:"updatedBy"`
|
||||
|
||||
// Virtual machine ID
|
||||
VMID uint64 `json:"vmid"`
|
||||
@@ -633,6 +636,9 @@ type InfoCompute struct {
|
||||
// Boot order
|
||||
BootOrder []string `json:"bootOrder"`
|
||||
|
||||
// Boot type
|
||||
BootType string `json:"bootType"`
|
||||
|
||||
// Boot disk size
|
||||
BootDiskSize uint64 `json:"bootdiskSize"`
|
||||
|
||||
@@ -690,6 +696,9 @@ type InfoCompute struct {
|
||||
// HPBacked
|
||||
HPBacked bool `json:"hpBacked"`
|
||||
|
||||
// Hot resize
|
||||
HotResize bool `json:"hotResize"`
|
||||
|
||||
// ID
|
||||
ID uint64 `json:"id"`
|
||||
|
||||
@@ -699,6 +708,9 @@ type InfoCompute struct {
|
||||
// List interfaces
|
||||
Interfaces ListInterfaces `json:"interfaces"`
|
||||
|
||||
// Loader type
|
||||
LoaderType string `json:"loaderType"`
|
||||
|
||||
// Lock status
|
||||
LockStatus string `json:"lockStatus"`
|
||||
|
||||
@@ -720,6 +732,9 @@ type InfoCompute struct {
|
||||
// Need reboot
|
||||
NeedReboot bool `json:"needReboot"`
|
||||
|
||||
// network interface naming
|
||||
NetworkInterfaceNaming string `json:"networkInterfaceNaming"`
|
||||
|
||||
// Numa Affinity
|
||||
NumaAffinity string `json:"numaAffinity"`
|
||||
|
||||
@@ -729,8 +744,8 @@ type InfoCompute struct {
|
||||
// List OS users
|
||||
OSUsers ListOSUsers `json:"osUsers"`
|
||||
|
||||
// Pinned
|
||||
Pinned bool `json:"pinned"`
|
||||
// Pinned to stack
|
||||
PinnedToStack int64 `json:"pinnedToStack"`
|
||||
|
||||
// PreferredCPU
|
||||
PreferredCPU []int64 `json:"preferredCpu"`
|
||||
@@ -861,6 +876,9 @@ type RecordCompute struct {
|
||||
// Boot order
|
||||
BootOrder []string `json:"bootOrder"`
|
||||
|
||||
// Boot type
|
||||
BootType string `json:"bootType"`
|
||||
|
||||
// Boot disk size
|
||||
BootDiskSize uint64 `json:"bootdiskSize"`
|
||||
|
||||
@@ -921,6 +939,9 @@ type RecordCompute struct {
|
||||
// HPBacked
|
||||
HPBacked bool `json:"hpBacked"`
|
||||
|
||||
// Hot resize
|
||||
HotResize bool `json:"hotResize"`
|
||||
|
||||
// ID
|
||||
ID uint64 `json:"id"`
|
||||
|
||||
@@ -933,6 +954,9 @@ type RecordCompute struct {
|
||||
// List interfaces
|
||||
Interfaces ListInterfaces `json:"interfaces"`
|
||||
|
||||
// Loader type
|
||||
LoaderType string `json:"loaderType"`
|
||||
|
||||
// Lock status
|
||||
LockStatus string `json:"lockStatus"`
|
||||
|
||||
@@ -972,6 +996,9 @@ type RecordCompute struct {
|
||||
// Need reboot
|
||||
NeedReboot bool `json:"needReboot"`
|
||||
|
||||
// network interface naming
|
||||
NetworkInterfaceNaming string `json:"networkInterfaceNaming"`
|
||||
|
||||
// NumaAffinity
|
||||
NumaAffinity string `json:"numaAffinity"`
|
||||
|
||||
@@ -981,8 +1008,8 @@ type RecordCompute struct {
|
||||
// List OS users
|
||||
OSUsers ListOSUsers `json:"osUsers"`
|
||||
|
||||
// Pinned
|
||||
Pinned bool `json:"pinned"`
|
||||
// Pinned to stack
|
||||
PinnedToStack int64 `json:"pinnedToStack"`
|
||||
|
||||
// PreferredCPU
|
||||
PreferredCPU []int64 `json:"preferredCpu"`
|
||||
@@ -1047,8 +1074,8 @@ type RecordCompute struct {
|
||||
// Userdata
|
||||
Userdata interface{} `json:"userdata"`
|
||||
|
||||
// List VGPU IDs
|
||||
VGPUs []uint64 `json:"vgpus"`
|
||||
// List VGPU
|
||||
VGPUs []VGPUItem `json:"vgpus"`
|
||||
|
||||
// Virtual image ID
|
||||
VirtualImageID uint64 `json:"virtualImageId"`
|
||||
@@ -1060,6 +1087,65 @@ type RecordCompute struct {
|
||||
VNCPassword string `json:"vncPasswd"`
|
||||
}
|
||||
|
||||
type VGPUItem struct {
|
||||
// ID
|
||||
ID uint64 `json:"id"`
|
||||
|
||||
// GID
|
||||
GID uint64 `json:"gid"`
|
||||
|
||||
// Type
|
||||
Type string `json:"type"`
|
||||
|
||||
// Mode
|
||||
Mode string `json:"mode"`
|
||||
|
||||
// Status
|
||||
Status string `json:"status"`
|
||||
|
||||
// ProfileID
|
||||
ProfileID uint64 `json:"profileId"`
|
||||
|
||||
// RAM
|
||||
RAM uint64 `json:"ram"`
|
||||
|
||||
// LastUpdateTime
|
||||
LastUpdateTime uint64 `json:"lastUpdateTime"`
|
||||
|
||||
// CreatedTime
|
||||
CreatedTime uint64 `json:"createdTime"`
|
||||
|
||||
// DeletedTime
|
||||
DeletedTime uint64 `json:"deletedTime"`
|
||||
|
||||
// VMID
|
||||
VMID uint64 `json:"vmid"`
|
||||
|
||||
// PGPuid
|
||||
PGPuid uint64 `json:"pgpuid"`
|
||||
|
||||
// ReferenceID
|
||||
ReferenceID string `json:"referenceId"`
|
||||
|
||||
// AccountID
|
||||
AccountID uint64 `json:"accountId"`
|
||||
|
||||
// RgID
|
||||
RgID uint64 `json:"rgId"`
|
||||
|
||||
// LastClaimedBy
|
||||
LastClaimedBy uint64 `json:"lastClaimedBy"`
|
||||
|
||||
// PCISlot
|
||||
PCISlot uint64 `json:"pciSlot"`
|
||||
|
||||
// BusNumber
|
||||
BusNumber uint64 `json:"bus_number"`
|
||||
|
||||
// GUID
|
||||
GUID uint64 `json:"guid"`
|
||||
}
|
||||
|
||||
// Information about of disk IDs
|
||||
type ListInfoDisks []InfoDisk
|
||||
|
||||
@@ -1071,6 +1157,24 @@ type ItemCompute struct {
|
||||
// Main information about compute
|
||||
InfoCompute
|
||||
|
||||
// NID
|
||||
NID uint64 `json:"nid"`
|
||||
|
||||
// Total disk size
|
||||
TotalDiskSize uint64 `json:"totalDisksSize"`
|
||||
|
||||
// VINS connected
|
||||
VINSConnected uint64 `json:"vinsConnected"`
|
||||
}
|
||||
|
||||
// Main information about compute for list
|
||||
type ItemDeletedCompute struct {
|
||||
// List of disk IDs
|
||||
Disks ListInfoDisks `json:"disks"`
|
||||
|
||||
// Main information about compute
|
||||
InfoCompute
|
||||
|
||||
// Total disk size
|
||||
TotalDiskSize uint64 `json:"totalDisksSize"`
|
||||
|
||||
@@ -1080,14 +1184,8 @@ type ItemCompute struct {
|
||||
|
||||
// Information Disk
|
||||
type InfoDisk struct {
|
||||
// Bus number
|
||||
BusNumber uint64 `json:"bus_number"`
|
||||
|
||||
// ID
|
||||
ID uint64 `json:"id"`
|
||||
|
||||
// PCISlot
|
||||
PCISlot int64 `json:"pciSlot"`
|
||||
}
|
||||
|
||||
// List computes
|
||||
@@ -1099,6 +1197,15 @@ type ListComputes struct {
|
||||
EntryCount uint64 `json:"entryCount"`
|
||||
}
|
||||
|
||||
// List computes
|
||||
type ListDeletedComputes struct {
|
||||
// Data
|
||||
Data []ItemDeletedCompute `json:"data"`
|
||||
|
||||
// EntryCount
|
||||
EntryCount uint64 `json:"entryCount"`
|
||||
}
|
||||
|
||||
// Short information about audit
|
||||
type ItemAudit struct {
|
||||
// Epoch
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// MoveToRGRequest struct to move compute to new resource group
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// NetAttachRequest struct to attach network
|
||||
@@ -32,6 +32,10 @@ type NetAttachRequest struct {
|
||||
// Required: true
|
||||
IPAddr string `url:"ipAddr,omitempty" json:"ipAddr,omitempty"`
|
||||
|
||||
// MAC address
|
||||
// Required: false
|
||||
MACAddr string `url:"mac_addr,omitempty" json:"mac_addr,omitempty"`
|
||||
|
||||
// Used only for DPDK type, must be 1-9216
|
||||
// Required: false
|
||||
MTU uint64 `url:"mtu,omitempty" json:"mtu,omitempty" validate:"omitempty,mtu"`
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// NetDetachRequest struct to detach network from compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// NetQOSRequest struct for update QOS
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// PauseRequest struct to pause compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// PFWAddRequest struct to add port forward rule
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// PFWDelRequest struct to delete port forward rule
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// PFWListRequest struct to get list of port forwards
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// PinToStackRequest struct to pin compute to stack
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// PowerCycleRequest struct to force stop and start compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// RebootRequest struct to reboot compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// RedeployRequest struct for redeploy
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
)
|
||||
|
||||
// RegistrationRequest struct to set compute registered in RT
|
||||
type RegistrationRequest struct {
|
||||
// ID of the Compute
|
||||
// Required: true
|
||||
ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"`
|
||||
|
||||
// Unique compute registration key
|
||||
// Required: true
|
||||
RegistrationKey string `url:"registrationKey" json:"registrationKey" validate:"required"`
|
||||
}
|
||||
|
||||
// Registration sets compute registered in RT
|
||||
func (c Compute) Registration(ctx context.Context, req RegistrationRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/compute/registration"
|
||||
|
||||
res, err := c.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
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package compute
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
)
|
||||
|
||||
// RepairBootFSRequest struct to repair filesystem
|
||||
type RepairBootFSRequest struct {
|
||||
// ID of compute instance
|
||||
// Required: true
|
||||
ComputeID uint64 `url:"computeId" json:"computeId" validate:"required"`
|
||||
}
|
||||
|
||||
// RepairBootFS repairs compute boot disk filesystem
|
||||
func (c Compute) RepairBootFS(ctx context.Context, req RepairBootFSRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/compute/repairBootFs"
|
||||
|
||||
res, err := c.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
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ResetRequest struct to reset compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ResizeRequest struct to resize compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// RestoreRequest struct to restore compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// ResumeRequest struct to resume compute
|
||||
|
||||
@@ -3,7 +3,7 @@ package compute
|
||||
import (
|
||||
"encoding/json"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/serialization"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/serialization"
|
||||
)
|
||||
|
||||
// Serialize returns JSON-serialized []byte. Used as a wrapper over json.Marshal and json.MarshalIndent functions.
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SetCustomFieldsRequest struct for setting customFields values for the Compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SetNetConfigRequest struct to Configure libvirt virtio interface parameters
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SnapshotCreateRequest struct to create snapshot
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SnapshotDeleteRequest struct to delete snapshot
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SnapshotEvictDiskRequest struct to evict specified disk
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SnapshotListRequest struct to get list of snapshots
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SnapshotRollbackRequest struct for rollback
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// SnapshotUsageRequest struct tto get compute snapshot real size on storage
|
||||
|
||||
@@ -96,3 +96,98 @@ func (lc ListComputes) SortByDeletedTime(inverse bool) ListComputes {
|
||||
|
||||
return lc
|
||||
}
|
||||
|
||||
// SortByCPU sorts ListDeletedComputes by the CPU core amount in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lc ListDeletedComputes) SortByCPU(inverse bool) ListDeletedComputes {
|
||||
if len(lc.Data) < 2 {
|
||||
return lc
|
||||
}
|
||||
|
||||
sort.Slice(lc.Data, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lc.Data[i].CPUs > lc.Data[j].CPUs
|
||||
}
|
||||
|
||||
return lc.Data[i].CPUs < lc.Data[j].CPUs
|
||||
})
|
||||
|
||||
return lc
|
||||
}
|
||||
|
||||
// SortByRAM sorts ListDeletedComputes by the RAM amount in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lc ListDeletedComputes) SortByRAM(inverse bool) ListDeletedComputes {
|
||||
if len(lc.Data) < 2 {
|
||||
return lc
|
||||
}
|
||||
|
||||
sort.Slice(lc.Data, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lc.Data[i].RAM > lc.Data[j].RAM
|
||||
}
|
||||
|
||||
return lc.Data[i].RAM < lc.Data[j].RAM
|
||||
})
|
||||
|
||||
return lc
|
||||
}
|
||||
|
||||
// SortByCreatedTime sorts ListDeletedComputes by the CreatedTime field in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lc ListDeletedComputes) SortByCreatedTime(inverse bool) ListDeletedComputes {
|
||||
if len(lc.Data) < 2 {
|
||||
return lc
|
||||
}
|
||||
|
||||
sort.Slice(lc.Data, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lc.Data[i].CreatedTime > lc.Data[j].CreatedTime
|
||||
}
|
||||
|
||||
return lc.Data[i].CreatedTime < lc.Data[j].CreatedTime
|
||||
})
|
||||
|
||||
return lc
|
||||
}
|
||||
|
||||
// SortByUpdatedTime sorts ListDeletedComputes by the UpdatedTime field in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lc ListDeletedComputes) SortByUpdatedTime(inverse bool) ListDeletedComputes {
|
||||
if len(lc.Data) < 2 {
|
||||
return lc
|
||||
}
|
||||
|
||||
sort.Slice(lc.Data, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lc.Data[i].UpdatedTime > lc.Data[j].UpdatedTime
|
||||
}
|
||||
|
||||
return lc.Data[i].UpdatedTime < lc.Data[j].UpdatedTime
|
||||
})
|
||||
|
||||
return lc
|
||||
}
|
||||
|
||||
// SortByDeletedTime sorts ListDeletedComputes by the DeletedTime field in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lc ListDeletedComputes) SortByDeletedTime(inverse bool) ListDeletedComputes {
|
||||
if len(lc.Data) < 2 {
|
||||
return lc
|
||||
}
|
||||
|
||||
sort.Slice(lc.Data, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lc.Data[i].DeletedTime > lc.Data[j].DeletedTime
|
||||
}
|
||||
|
||||
return lc.Data[i].DeletedTime < lc.Data[j].DeletedTime
|
||||
})
|
||||
|
||||
return lc
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// StartRequest struct to start compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// StopRequest struct to stop compute
|
||||
@@ -17,11 +17,6 @@ type StopRequest struct {
|
||||
// Force stop compute
|
||||
// Required: false
|
||||
Force bool `url:"force,omitempty" json:"force,omitempty"`
|
||||
|
||||
// whether to depresent compute disks from node or not
|
||||
// Default: true
|
||||
// Required: false
|
||||
Depresent bool `url:"depresent" json:"depresent"`
|
||||
}
|
||||
|
||||
// Stop stops compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// TagAddRequest struct to add tag to compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// TagRemoveRequest struct to remove tag from compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// UnpinFromStackRequest struct to unpin from stack
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// UpdateRequest struct to update compute
|
||||
@@ -30,28 +30,41 @@ type UpdateRequest struct {
|
||||
// Default: none
|
||||
NumaAffinity string `url:"numaAffinity,omitempty" json:"numaAffinity,omitempty" validate:"omitempty,numaAffinity"`
|
||||
|
||||
// Run VM on dedicated CPUs. To use this feature, the system must be pre-configured by allocating CPUs on the physical node
|
||||
// Run VM on dedicated CPUs. To use this feature, the system must be pre-configured by allocating CPUs on the physical node, true or false
|
||||
// Required: false
|
||||
// Default: false
|
||||
CPUPin bool `url:"cpupin" json:"cpupin"`
|
||||
CPUPin interface{} `url:"cpupin,omitempty" json:"cpupin,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Type of the emulated system, Q35 or i440fx
|
||||
// Required: false
|
||||
Chipset string `url:"chipset,omitempty" json:"chipset,omitempty" validate:"omitempty,chipset"`
|
||||
|
||||
// Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node
|
||||
// Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node, true or false
|
||||
// Required: false
|
||||
// Default: false
|
||||
HPBacked bool `url:"hpBacked" json:"hpBacked"`
|
||||
HPBacked interface{} `url:"hpBacked,omitempty" json:"hpBacked,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Auto start when node restarted
|
||||
// Auto start when node restarted, true or false
|
||||
// Required: false
|
||||
// Default: false
|
||||
AutoStart bool `url:"autoStart" json:"autoStart"`
|
||||
AutoStart interface{} `url:"autoStart,omitempty" json:"autoStart,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Recommended isolated CPUs. Field is ignored if compute.cpupin=False or compute.pinned=False
|
||||
// Required: false
|
||||
PreferredCPU []int64 `url:"preferredCpu,omitempty" json:"preferredCpu,omitempty" validate:"omitempty,preferredCPU"`
|
||||
|
||||
// VM type linux, windows or unknown
|
||||
// Required: false
|
||||
LoaderType string `url:"loaderType,omitempty" json:"loaderType,omitempty" validate:"omitempty,loaderType"`
|
||||
|
||||
// Boot type of image bios or uefi
|
||||
// Required: false
|
||||
BootType string `url:"bootType,omitempty" json:"bootType,omitempty" validate:"omitempty,imageBootType"`
|
||||
|
||||
// Select a network interface naming pattern for your Linux machine. eth - onboard, ens - pci slot naming.
|
||||
// Required: false
|
||||
NetworkInterfaceNaming string `url:"networkInterfaceNaming,omitempty" json:"networkInterfaceNaming,omitempty" validate:"omitempty,networkInterfaceNaming"`
|
||||
|
||||
// Does this machine supports hot resize, true or false
|
||||
// Required: false
|
||||
HotResize interface{} `url:"hotResize,omitempty" json:"hotResize,omitempty" validate:"omitempty,isBool"`
|
||||
}
|
||||
|
||||
// Update updates some properties of the compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// UserGrantRequest struct to grant access to compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"encoding/json"
|
||||
"net/http"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// UserListRequest struct to get list of users for compute
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
"strconv"
|
||||
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v10/internal/validators"
|
||||
"repository.basistech.ru/BASIS/dynamix-golang-sdk/v11/internal/validators"
|
||||
)
|
||||
|
||||
// UserRevokeRequest struct to revoke user access
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user