v1.8.1
This commit is contained in:
@@ -27,7 +27,7 @@ type CreateDiskBackupRequest struct {
|
||||
type wrapperCreateDiskBackupRequest struct {
|
||||
CreateDiskBackupRequest
|
||||
|
||||
Async bool `url:"async"`
|
||||
AsyncMode bool `url:"asyncMode"`
|
||||
}
|
||||
|
||||
// CreateDiskBackup creates disk backup
|
||||
@@ -39,7 +39,7 @@ func (b Backup) CreateDiskBackup(ctx context.Context, req CreateDiskBackupReques
|
||||
|
||||
reqWrapped := wrapperCreateDiskBackupRequest{
|
||||
CreateDiskBackupRequest: req,
|
||||
Async: false,
|
||||
AsyncMode: false,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/createDiskBackup"
|
||||
@@ -68,7 +68,7 @@ func (b Backup) CreateDiskBackupAsync(ctx context.Context, req CreateDiskBackupR
|
||||
|
||||
reqWrapped := wrapperCreateDiskBackupRequest{
|
||||
CreateDiskBackupRequest: req,
|
||||
Async: true,
|
||||
AsyncMode: true,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/createDiskBackup"
|
||||
|
||||
@@ -29,7 +29,7 @@ type CreateDisksBackupRequest struct {
|
||||
type wrapperCreateDisksBackupRequest struct {
|
||||
CreateDisksBackupRequest
|
||||
|
||||
Async bool `url:"async"`
|
||||
AsyncMode bool `url:"asyncMode"`
|
||||
}
|
||||
|
||||
// CreateDisksBackup creates disks backup
|
||||
@@ -41,7 +41,7 @@ func (b Backup) CreateDisksBackup(ctx context.Context, req CreateDisksBackupRequ
|
||||
|
||||
reqWrapped := wrapperCreateDisksBackupRequest{
|
||||
CreateDisksBackupRequest: req,
|
||||
Async: false,
|
||||
AsyncMode: false,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/createDisksBackup"
|
||||
@@ -70,7 +70,7 @@ func (b Backup) CreateDisksBackupAsync(ctx context.Context, req CreateDisksBacku
|
||||
|
||||
reqWrapped := wrapperCreateDisksBackupRequest{
|
||||
CreateDisksBackupRequest: req,
|
||||
Async: true,
|
||||
AsyncMode: true,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/createDisksBackup"
|
||||
|
||||
@@ -21,7 +21,7 @@ type DeleteDiskBackupRequest struct {
|
||||
type wrapperDeleteDiskBackupRequest struct {
|
||||
DeleteDiskBackupRequest
|
||||
|
||||
Async bool `url:"async"`
|
||||
AsyncMode bool `url:"asyncMode"`
|
||||
}
|
||||
|
||||
// DeleteDiskBackup deletes disk backup
|
||||
@@ -33,7 +33,7 @@ func (b Backup) DeleteDiskBackup(ctx context.Context, req DeleteDiskBackupReques
|
||||
|
||||
reqWrapped := wrapperDeleteDiskBackupRequest{
|
||||
DeleteDiskBackupRequest: req,
|
||||
Async: false,
|
||||
AsyncMode: false,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/deleteDiskBackup"
|
||||
@@ -60,7 +60,7 @@ func (b Backup) DeleteDiskBackupAsync(ctx context.Context, req DeleteDiskBackupR
|
||||
|
||||
reqWrapped := wrapperDeleteDiskBackupRequest{
|
||||
DeleteDiskBackupRequest: req,
|
||||
Async: true,
|
||||
AsyncMode: true,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/deleteDiskBackup"
|
||||
|
||||
@@ -27,7 +27,7 @@ type RestoreDiskFromBackupRequest struct {
|
||||
type wrapperRestoreDiskFromBackupRequest struct {
|
||||
RestoreDiskFromBackupRequest
|
||||
|
||||
Async bool `url:"async"`
|
||||
AsyncMode bool `url:"asyncMode"`
|
||||
}
|
||||
|
||||
// RestoreDiskFromBackup restores disk from backup
|
||||
@@ -39,7 +39,7 @@ func (b Backup) RestoreDiskFromBackup(ctx context.Context, req RestoreDiskFromBa
|
||||
|
||||
reqWrapped := wrapperRestoreDiskFromBackupRequest{
|
||||
RestoreDiskFromBackupRequest: req,
|
||||
Async: false,
|
||||
AsyncMode: false,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/restoreDiskFromBackup"
|
||||
@@ -68,7 +68,7 @@ func (b Backup) RestoreDiskFromBackupAsync(ctx context.Context, req RestoreDiskF
|
||||
|
||||
reqWrapped := wrapperRestoreDiskFromBackupRequest{
|
||||
RestoreDiskFromBackupRequest: req,
|
||||
Async: true,
|
||||
AsyncMode: true,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/restoreDiskFromBackup"
|
||||
|
||||
@@ -32,7 +32,7 @@ type RestoreDisksFromBackupRequest struct {
|
||||
type wrapperRestoreDisksFromBackupRequest struct {
|
||||
RestoreDisksFromBackupRequest
|
||||
|
||||
Async bool `url:"async"`
|
||||
AsyncMode bool `url:"asyncMode"`
|
||||
}
|
||||
|
||||
// RestoreDisksFromBackup restores disks from backup
|
||||
@@ -44,7 +44,7 @@ func (b Backup) RestoreDisksFromBackup(ctx context.Context, req RestoreDisksFrom
|
||||
|
||||
reqWrapped := wrapperRestoreDisksFromBackupRequest{
|
||||
RestoreDisksFromBackupRequest: req,
|
||||
Async: false,
|
||||
AsyncMode: false,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/restoreDisksFromBackup"
|
||||
@@ -73,7 +73,7 @@ func (b Backup) RestoreDisksFromBackupAsync(ctx context.Context, req RestoreDisk
|
||||
|
||||
reqWrapped := wrapperRestoreDisksFromBackupRequest{
|
||||
RestoreDisksFromBackupRequest: req,
|
||||
Async: true,
|
||||
AsyncMode: true,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/backup/restoreDisksFromBackup"
|
||||
|
||||
@@ -27,7 +27,7 @@ type CreateTemplateRequest struct {
|
||||
type wrapperCreateTemplateRequest struct {
|
||||
CreateTemplateRequest
|
||||
|
||||
Async bool `url:"async"`
|
||||
AsyncMode bool `url:"asyncMode"`
|
||||
}
|
||||
|
||||
// CreateTemplateAsync create template from compute instance
|
||||
@@ -39,7 +39,7 @@ func (c Compute) CreateTemplateAsync(ctx context.Context, req CreateTemplateRequ
|
||||
|
||||
reqWrapped := wrapperCreateTemplateRequest{
|
||||
CreateTemplateRequest: req,
|
||||
Async: true,
|
||||
AsyncMode: true,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/compute/createTemplate"
|
||||
@@ -63,7 +63,7 @@ func (c Compute) CreateTemplate(ctx context.Context, req CreateTemplateRequest)
|
||||
|
||||
reqWrapped := wrapperCreateTemplateRequest{
|
||||
CreateTemplateRequest: req,
|
||||
Async: false,
|
||||
AsyncMode: false,
|
||||
}
|
||||
|
||||
url := "/cloudbroker/compute/createTemplate"
|
||||
|
||||
@@ -440,7 +440,7 @@ type ItemDisk struct {
|
||||
RealityDeviceNumber uint64 `json:"realityDeviceNumber"`
|
||||
|
||||
// Replication
|
||||
Replication interface{} `json:"replication"`
|
||||
Replication ItemReplication `json:"replication"`
|
||||
|
||||
// Reference ID
|
||||
ReferenceID string `json:"referenceId"`
|
||||
@@ -485,6 +485,26 @@ type ItemDisk struct {
|
||||
VMID uint64 `json:"vmid"`
|
||||
}
|
||||
|
||||
type ItemReplication struct {
|
||||
// DiskID
|
||||
DiskID uint64 `json:"diskId"`
|
||||
|
||||
// PoolID
|
||||
PoolID string `json:"poolId"`
|
||||
|
||||
// Role
|
||||
Role string `json:"role"`
|
||||
|
||||
// SelfVolumeID
|
||||
SelfVolumeID string `json:"selfVolumeId"`
|
||||
|
||||
// StorageID
|
||||
StorageID string `json:"storageId"`
|
||||
|
||||
// VolumeID
|
||||
VolumeID string `json:"volumeId"`
|
||||
}
|
||||
|
||||
// List disks
|
||||
type ListDisks []ItemDisk
|
||||
|
||||
@@ -706,6 +726,9 @@ type InfoCompute struct {
|
||||
// Resource name
|
||||
ResName string `json:"resName"`
|
||||
|
||||
// Reserved Node Cpus
|
||||
ReservedNodeCpus []uint64 `json:"reservedNodeCpus"`
|
||||
|
||||
// Resource group ID
|
||||
RGID uint64 `json:"rgId"`
|
||||
|
||||
@@ -919,6 +942,9 @@ type RecordCompute struct {
|
||||
// Resource name
|
||||
ResName string `json:"resName"`
|
||||
|
||||
// Reserved Node Cpus
|
||||
ReservedNodeCpus []uint64 `json:"reservedNodeCpus"`
|
||||
|
||||
// Resource group ID
|
||||
RGID uint64 `json:"rgId"`
|
||||
|
||||
@@ -1010,6 +1036,7 @@ type ListComputes struct {
|
||||
EntryCount uint64 `json:"entryCount"`
|
||||
}
|
||||
|
||||
// Short information about audit
|
||||
// Short information about audit
|
||||
type ItemAudit struct {
|
||||
// Epoch
|
||||
|
||||
@@ -16,9 +16,10 @@ type NetAttachRequest struct {
|
||||
|
||||
// Network type
|
||||
// 'EXTNET' for connect to external network directly
|
||||
// and 'VINS' for connect to ViNS
|
||||
// 'VINS' for connect to ViNS
|
||||
// 'VFNIC' for connect to vfpool
|
||||
// Required: true
|
||||
NetType string `url:"netType" json:"netType" validate:"computeNetType"`
|
||||
NetType string `url:"netType" json:"netType" validate:"computex86NetType"`
|
||||
|
||||
// Network ID for connect to
|
||||
// For EXTNET - external network ID
|
||||
|
||||
@@ -18,6 +18,11 @@ type StopRequest struct {
|
||||
// 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"`
|
||||
|
||||
// Reason for action
|
||||
// Required: false
|
||||
Reason string `url:"reason,omitempty" json:"reason,omitempty"`
|
||||
|
||||
@@ -22,6 +22,24 @@ type UpdateRequest struct {
|
||||
// Required: false
|
||||
Description string `url:"desc,omitempty" json:"desc,omitempty"`
|
||||
|
||||
// Rule for VM placement with NUMA affinity.
|
||||
// Possible values - none (placement without NUMA affinity),
|
||||
// strict (strictly with NUMA affinity, if not possible - do not start VM),
|
||||
// loose (use NUMA affinity if possible)
|
||||
// Required: false
|
||||
// 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
|
||||
// Required: false
|
||||
// Default: false
|
||||
CPUPin bool `url:"cpupin" json:"cpupin"`
|
||||
|
||||
// Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node
|
||||
// Required: false
|
||||
// Default: false
|
||||
HPBacked bool `url:"hpBacked" json:"hpBacked"`
|
||||
|
||||
// Reason for action
|
||||
// Required: false
|
||||
Reason string `url:"reason,omitempty" json:"reason,omitempty"`
|
||||
|
||||
41
pkg/cloudbroker/disks/depresent.go
Normal file
41
pkg/cloudbroker/disks/depresent.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package disks
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// DepresentRequest struct to depresent disk from node
|
||||
type DepresentRequest struct {
|
||||
// ID of the disk to depresent
|
||||
// Required: true
|
||||
DiskID uint64 `url:"diskId" json:"diskId" validate:"required"`
|
||||
|
||||
// ID of the node to depresent disk from
|
||||
// Required: true
|
||||
NodeID uint64 `url:"nodeId" json:"nodeId" validate:"required"`
|
||||
}
|
||||
|
||||
// Depresent depresents disk from node
|
||||
func (d Disks) Depresent(ctx context.Context, req DepresentRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/disks/depresent"
|
||||
|
||||
res, err := d.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
|
||||
}
|
||||
@@ -57,7 +57,7 @@ type FromPlatformDiskRequest struct {
|
||||
// List of types of compute suitable for image
|
||||
// Example: [ "KVM_X86" ]
|
||||
// Required: false
|
||||
Drivers []string `url:"drivers" json:"drivers" validate:"min=1,max=2,imageDrivers"`
|
||||
Drivers []string `url:"drivers,omitempty" json:"drivers,omitempty"`
|
||||
|
||||
// Does this machine supports hot resize
|
||||
// Required: false
|
||||
|
||||
@@ -32,7 +32,7 @@ type ListRequest struct {
|
||||
|
||||
// Find by shared, true or false
|
||||
// Required: false
|
||||
Shared bool `url:"shared,omitempty" json:"shared,omitempty"`
|
||||
Shared interface{} `url:"shared,omitempty" json:"shared,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// ID of the account the disks belong to
|
||||
// Required: false
|
||||
|
||||
@@ -28,7 +28,7 @@ type ListDeletedRequest struct {
|
||||
|
||||
// Find by shared, true or false
|
||||
// Required: false
|
||||
Shared bool `url:"shared,omitempty" json:"shared,omitempty"`
|
||||
Shared interface{} `url:"shared,omitempty" json:"shared,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// ID of the account the disks belong to
|
||||
// Required: false
|
||||
|
||||
@@ -138,7 +138,7 @@ type InfoDisk struct {
|
||||
ReferenceID string `json:"referenceId"`
|
||||
|
||||
// Replication
|
||||
Replication interface{} `json:"replication"`
|
||||
Replication ItemReplication `json:"replication"`
|
||||
|
||||
// Resource ID
|
||||
ResID string `json:"resId"`
|
||||
@@ -177,6 +177,26 @@ type InfoDisk struct {
|
||||
VMID uint64 `json:"vmid"`
|
||||
}
|
||||
|
||||
type ItemReplication struct {
|
||||
// DiskID
|
||||
DiskID uint64 `json:"diskId"`
|
||||
|
||||
// PoolID
|
||||
PoolID string `json:"poolId"`
|
||||
|
||||
// Role
|
||||
Role string `json:"role"`
|
||||
|
||||
// SelfVolumeID
|
||||
SelfVolumeID string `json:"selfVolumeId"`
|
||||
|
||||
// StorageID
|
||||
StorageID string `json:"storageId"`
|
||||
|
||||
// VolumeID
|
||||
VolumeID string `json:"volumeId"`
|
||||
}
|
||||
|
||||
// Detailed indormation about disk
|
||||
type RecordDisk struct {
|
||||
// Device name
|
||||
|
||||
41
pkg/cloudbroker/disks/present.go
Normal file
41
pkg/cloudbroker/disks/present.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package disks
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"repository.basistech.ru/BASIS/decort-golang-sdk/internal/validators"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
// PresentRequest struct to present disk to node
|
||||
type PresentRequest struct {
|
||||
// ID of the disk to present
|
||||
// Required: true
|
||||
DiskID uint64 `url:"diskId" json:"diskId" validate:"required"`
|
||||
|
||||
// ID of the node to present disk to
|
||||
// Required: true
|
||||
NodeID uint64 `url:"nodeId" json:"nodeId" validate:"required"`
|
||||
}
|
||||
|
||||
// Present presents disk to node
|
||||
func (d Disks) Present(ctx context.Context, req PresentRequest) (bool, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return false, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/disks/present"
|
||||
|
||||
res, err := d.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
|
||||
}
|
||||
@@ -15,23 +15,18 @@ type ReplicationStatusRequest struct {
|
||||
}
|
||||
|
||||
// ReplicationStatus get replication status
|
||||
func (d Disks) ReplicationStatus(ctx context.Context, req ReplicationStatusRequest) (interface{}, error) {
|
||||
func (d Disks) ReplicationStatus(ctx context.Context, req ReplicationStatusRequest) (string, error) {
|
||||
err := validators.ValidateRequest(req)
|
||||
if err != nil {
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
return "", validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/disks/replicationStatus"
|
||||
|
||||
res, err := d.client.DecortApiCall(ctx, http.MethodPost, url, req)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return "", err
|
||||
}
|
||||
|
||||
// result, err := strconv.ParseBool(string(res))
|
||||
// if err != nil {
|
||||
// return nil, err
|
||||
// }
|
||||
|
||||
return res, nil
|
||||
return string(res), nil
|
||||
}
|
||||
|
||||
@@ -42,6 +42,10 @@ type ListRequest struct {
|
||||
// Required: false
|
||||
ByID uint64 `url:"by_id,omitempty" json:"by_id,omitempty"`
|
||||
|
||||
// Find by list of clientIds
|
||||
// Required: false
|
||||
ClientIDs []uint64 `url:"clientIds,omitempty" json:"clientIds,omitempty"`
|
||||
|
||||
// Sort by one of supported fields, format +|-(field)
|
||||
// Required: false
|
||||
SortBy string `url:"sortBy,omitempty" json:"sortBy,omitempty" validate:"omitempty,sortBy"`
|
||||
@@ -88,6 +92,10 @@ func (f FLIPGroup) ListRaw(ctx context.Context, req ListRequest) ([]byte, error)
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
if err := validators.ValidateRequest(req); err != nil {
|
||||
return nil, validators.ValidationErrors(validators.GetErrors(err))
|
||||
}
|
||||
|
||||
url := "/cloudbroker/flipgroup/list"
|
||||
|
||||
res, err := f.client.DecortApiCall(ctx, http.MethodPost, url, req)
|
||||
|
||||
@@ -31,6 +31,7 @@ type ListRequest struct {
|
||||
Size uint64 `url:"size,omitempty" json:"size,omitempty"`
|
||||
|
||||
// Find by active True or False.
|
||||
// Default: true
|
||||
// Required: false
|
||||
Active bool `url:"active" json:"active"`
|
||||
}
|
||||
|
||||
@@ -48,15 +48,15 @@ type ListRequest struct {
|
||||
|
||||
// Find by public True or False
|
||||
// Required: false
|
||||
Public bool `url:"public,omitempty" json:"public,omitempty"`
|
||||
Public interface{} `url:"public,omitempty" json:"public,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Find by hot resize True or False
|
||||
// Required: false
|
||||
HotResize bool `url:"hotResize,omitempty" json:"hotResize,omitempty"`
|
||||
HotResize interface{} `url:"hotResize,omitempty" json:"hotResize,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Find by bootable True or False
|
||||
// Required: false
|
||||
Bootable bool `url:"bootable,omitempty" json:"bootable,omitempty"`
|
||||
Bootable interface{} `url:"bootable,omitempty" json:"bootable,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Sort by one of supported fields, format +|-(field)
|
||||
// Required: false
|
||||
|
||||
39
pkg/cloudbroker/image/upload_image_file.go
Normal file
39
pkg/cloudbroker/image/upload_image_file.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package image
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"os"
|
||||
)
|
||||
|
||||
// UploadImageFileResponse struct to enable image
|
||||
type UploadImageFileResponse struct {
|
||||
// ImageFileUri
|
||||
ImageFileUri string `json:"image_file_uri"`
|
||||
}
|
||||
|
||||
// UploadImageFile uploads file image to platform
|
||||
func (i Image) UploadImageFile(ctx context.Context, filePath string) (string, error) {
|
||||
file, err := os.ReadFile(filePath)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("can not read file %v", err)
|
||||
}
|
||||
|
||||
url := "/cloudbroker/image/uploadImageFile"
|
||||
|
||||
res, err := i.client.DecortApiCall(ctx, http.MethodPost, url, file)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
result := UploadImageFileResponse{}
|
||||
|
||||
err = json.Unmarshal(res, &result)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return result.ImageFileUri, nil
|
||||
}
|
||||
@@ -14,7 +14,8 @@ type Interface struct {
|
||||
// Should be one of:
|
||||
// - VINS
|
||||
// - EXTNET
|
||||
NetType string `url:"netType" json:"netType" validate:"required,kvmNetType"`
|
||||
// - VFNIC
|
||||
NetType string `url:"netType" json:"netType" validate:"required,kvmx86NetType"`
|
||||
|
||||
// Network ID for connect to,
|
||||
// for EXTNET - external network ID,
|
||||
@@ -74,10 +75,14 @@ type CreateRequest struct {
|
||||
// Required: true
|
||||
RAM uint64 `url:"ram" json:"ram" validate:"required"`
|
||||
|
||||
// If True, the imageId, bootDisk, sepId, pool parameters are ignored and the compute is created without a boot disk in the stopped state
|
||||
// Required: false
|
||||
WithoutBootDisk bool `url:"withoutBootDisk" json:"withoutBootDisk"`
|
||||
|
||||
// ID of the OS image to base this VM on;
|
||||
// Could be boot disk image or CD-ROM image
|
||||
// Required: true
|
||||
ImageID uint64 `url:"imageId" json:"imageId" validate:"required"`
|
||||
// Required: false
|
||||
ImageID uint64 `url:"imageId,omitempty" json:"imageId,omitempty"`
|
||||
|
||||
// Size of the boot disk in GB
|
||||
// Required: false
|
||||
@@ -136,6 +141,24 @@ type CreateRequest struct {
|
||||
// Required: false
|
||||
Driver string `url:"driver,omitempty" json:"driver,omitempty"`
|
||||
|
||||
// Rule for VM placement with NUMA affinity.
|
||||
// Possible values - none (placement without NUMA affinity),
|
||||
// strict (strictly with NUMA affinity, if not possible - do not start VM),
|
||||
// loose (use NUMA affinity if possible)
|
||||
// Required: false
|
||||
// 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
|
||||
// Required: false
|
||||
// Default: false
|
||||
CPUPin bool `url:"cpupin" json:"cpupin"`
|
||||
|
||||
// Use Huge Pages to allocate RAM of the virtual machine. The system must be pre-configured by allocating Huge Pages on the physical node
|
||||
// Required: false
|
||||
// Default: false
|
||||
HPBacked bool `url:"hpBacked" json:"hpBacked"`
|
||||
|
||||
// Reason for action
|
||||
// Required: false
|
||||
Reason string `url:"reason,omitempty" json:"reason,omitempty"`
|
||||
|
||||
@@ -28,18 +28,22 @@ type CreateBlankRequest struct {
|
||||
// Required: true
|
||||
RAM uint64 `url:"ram" json:"ram" validate:"required"`
|
||||
|
||||
// If True, the imageId, bootDisk, sepId, pool parameters are ignored and the compute is created without a boot disk in the stopped state
|
||||
// Required: false
|
||||
WithoutBootDisk bool `url:"withoutBootDisk" json:"withoutBootDisk"`
|
||||
|
||||
// Size of the boot disk in GB
|
||||
// Required: true
|
||||
BootDisk uint64 `url:"bootDisk" json:"bootDisk" validate:"required"`
|
||||
// Required: false
|
||||
BootDisk uint64 `url:"bootDisk,omitempty" json:"bootDisk,omitempty"`
|
||||
|
||||
// ID of SEP to create boot disk on.
|
||||
// Uses images SEP ID if not set
|
||||
// Required: true
|
||||
SEPID uint64 `url:"sepId" json:"sepId" validate:"required"`
|
||||
// Required: false
|
||||
SEPID uint64 `url:"sepId,omitempty" json:"sepId,omitempty"`
|
||||
|
||||
// Pool to use if sepId is set, can be also empty if needed to be chosen by system
|
||||
// Required: true
|
||||
Pool string `url:"pool" json:"pool" validate:"required"`
|
||||
// Required: false
|
||||
Pool string `url:"pool,omitempty" json:"pool,omitempty"`
|
||||
|
||||
// Slice of structs with data disk description. Each disk has parameters: required - diskName, size; optional - sepId, pool, desc and imageId.
|
||||
// If not specified, compute will be created without disks.
|
||||
|
||||
@@ -31,9 +31,13 @@ type MassCreateRequest struct {
|
||||
// Required: true
|
||||
RAM uint64 `url:"ram" json:"ram" validate:"required"`
|
||||
|
||||
// Image ID
|
||||
// Required: true
|
||||
ImageID uint64 `url:"imageId" json:"imageId" validate:"required"`
|
||||
// If True, the imageId, bootDisk, sepId, pool parameters are ignored and the compute is created without a boot disk in the stopped state
|
||||
// Required: false
|
||||
WithoutBootDisk bool `url:"withoutBootDisk" json:"withoutBootDisk"`
|
||||
|
||||
// ID of the OS image to base this VM on; Could be boot disk image or CD-ROM image
|
||||
// Required: false
|
||||
ImageID uint64 `url:"imageId,omitempty" json:"imageId,omitempty"`
|
||||
|
||||
// Size of the boot disk in GB
|
||||
// Required: false
|
||||
|
||||
@@ -102,7 +102,7 @@ type ConsumedResourcesInfo struct {
|
||||
// Information about node CPU
|
||||
type CpuInfo struct {
|
||||
// Clock Speed
|
||||
ClockSpeed uint64 `json:"clockSpeed"`
|
||||
ClockSpeed float64 `json:"clockSpeed"`
|
||||
|
||||
// CoreCount
|
||||
CoreCount uint64 `json:"coreCount"`
|
||||
|
||||
@@ -22,10 +22,6 @@ type ListLBRequest struct {
|
||||
// Required: false
|
||||
Name string `url:"name,omitempty" json:"name,omitempty"`
|
||||
|
||||
// Find by account ID
|
||||
// Required: false
|
||||
AccountID uint64 `url:"accountId,omitempty" json:"accountId,omitempty"`
|
||||
|
||||
// Find by tech status
|
||||
// Required: false
|
||||
TechStatus string `url:"techStatus,omitempty" json:"techStatus,omitempty"`
|
||||
|
||||
@@ -14,14 +14,17 @@ type ListRequest struct {
|
||||
// Required: false
|
||||
TaskID string `url:"taskId,omitempty" json:"taskId,omitempty"`
|
||||
|
||||
// Find by auditId
|
||||
// Required: false
|
||||
AuditID string `url:"auditId,omitempty" json:"auditId,omitempty"`
|
||||
|
||||
// Find by status
|
||||
// Required: false
|
||||
Status string `url:"status,omitempty" json:"status,omitempty"`
|
||||
|
||||
// Find by completed True or False
|
||||
// Default: false
|
||||
// Required: false
|
||||
Completed bool `url:"completed" json:"completed"`
|
||||
Completed interface{} `url:"completed,omitempty" json:"completed,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Sort by one of supported fields, format +|-(field)
|
||||
// Required: false
|
||||
@@ -29,19 +32,21 @@ type ListRequest struct {
|
||||
|
||||
// Find all tasks after point in time (unixtime)
|
||||
// Required: false
|
||||
UpdateTimeAt uint64 `url:"page,updateTimeAt" json:"updateTimeAt,omitempty"`
|
||||
UpdateTimeAt uint64 `url:"updateTimeAt,omitempty" json:"updateTimeAt,omitempty"`
|
||||
|
||||
// Find all tasks before point in time (unixtime)
|
||||
// Required: false
|
||||
UpdateTimeTo uint64 `url:"page,updateTimeTo" json:"updateTimeTo,omitempty"`
|
||||
UpdateTimeTo uint64 `url:"updateTimeTo,omitempty" json:"updateTimeTo,omitempty"`
|
||||
|
||||
// Page number
|
||||
// Default: 0
|
||||
// Default: 0
|
||||
// Required: false
|
||||
Page uint64 `url:"page,omitempty" json:"page,omitempty"`
|
||||
|
||||
// Page size
|
||||
// Default: 0
|
||||
// Default: 0
|
||||
// Required: false
|
||||
Size uint64 `url:"size,omitempty" json:"size,omitempty"`
|
||||
}
|
||||
|
||||
@@ -16,11 +16,11 @@ type ListRequest struct {
|
||||
|
||||
// Find by active. True or False.
|
||||
// Required: false
|
||||
Active bool `url:"active,omitempty" json:"active,omitempty"`
|
||||
Active interface{} `url:"active,omitempty" json:"active,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Find by serviceaccount. True or False.
|
||||
// Required: false
|
||||
ServiceAccount bool `url:"serviceaccount,omitempty" json:"serviceaccount,omitempty"`
|
||||
ServiceAccount interface{} `url:"serviceaccount,omitempty" json:"serviceaccount,omitempty" validate:"omitempty,isBool"`
|
||||
|
||||
// Sort by one of supported fields, format +|-(field)
|
||||
// Required: false
|
||||
|
||||
@@ -15,8 +15,8 @@ type DNSApplyRequest struct {
|
||||
VINSID uint64 `url:"vinsId" json:"vinsId" validate:"required"`
|
||||
|
||||
// List of DNS ip address
|
||||
// Required: true
|
||||
DNSList []string `url:"dnsList" json:"dnsList" validate:"required"`
|
||||
// Required: false
|
||||
DNSList []string `url:"dnsList" json:"dnsList"`
|
||||
}
|
||||
|
||||
// DNSApply applies new DNS list in VINS
|
||||
|
||||
@@ -30,6 +30,10 @@ type ListRequest struct {
|
||||
// Required: false
|
||||
ExtIP string `url:"extIp,omitempty" json:"extIp,omitempty"`
|
||||
|
||||
// Find by VNF Device id
|
||||
// Required: false
|
||||
VNFDevID uint64 `url:"vnfdevId,omitempty" json:"vnfdevId,omitempty"`
|
||||
|
||||
// Include deleted
|
||||
// Required: false
|
||||
IncludeDeleted bool `url:"includeDeleted,omitempty" json:"includeDeleted,omitempty"`
|
||||
|
||||
Reference in New Issue
Block a user