types

package
v0.0.0-...-467a732 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2023 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidCapacity = errors.New("invalid capacity")
	ErrInvalidVolume   = errors.New("invalid volume")
	ErrInvalidStorage  = errors.New("invalid storage")
	ErrInvalidDisk     = errors.New("invalid disk")
	ErrInvalidParams   = errors.New("invalid io parameters")
)

Functions

This section is empty.

Types

type Disk

type Disk struct {
	Device    string   `json:"device" mapstructure:"device"`
	Mounts    []string `json:"mounts" mapstructure:"mounts"`
	ReadIOPS  int64    `json:"read_IOPS" mapstructure:"read_IOPS"`
	WriteIOPS int64    `json:"write_IOPS" mapstructure:"write_IOPS"`
	ReadBPS   int64    `json:"read_bps" mapstructure:"read_bps"`
	WriteBPS  int64    `json:"write_bps" mapstructure:"write_bps"`
}

Disk .

func (*Disk) DeepCopy

func (d *Disk) DeepCopy() *Disk

DeepCopy .

func (*Disk) Parse

func (d *Disk) Parse(s string) (err error)

Parse .

func (*Disk) String

func (d *Disk) String() string

String .

type Disks

type Disks []*Disk

Disks .

func (*Disks) Add

func (d *Disks) Add(d1 Disks)

Add .

func (Disks) DeepCopy

func (d Disks) DeepCopy() Disks

DeepCopy .

func (Disks) GetDiskByDevice

func (d Disks) GetDiskByDevice(device string) *Disk

GetDiskByDevice .

func (Disks) GetDiskByPath

func (d Disks) GetDiskByPath(path string) *Disk

GetDiskByPath .

func (*Disks) RemoveMounts

func (d *Disks) RemoveMounts() Disks

RemoveMounts remove mounts so Add / Sub won't affect the origin mounts

func (*Disks) Sub

func (d *Disks) Sub(d1 Disks)

Sub .

type EngineParams

type EngineParams struct {
	Volumes       []string          `json:"volumes" mapstructure:"volumes"`
	VolumeChanged bool              `json:"volume_changed" mapstructure:"volume_changed"` // indicates whether the realloc request includes new volumes
	Storage       int64             `json:"storage" mapstructure:"storage"`
	IOPSOptions   map[string]string `json:"iops_options" mapstructure:"iops_options"`
}

EngineParams .

type NodeResource

type NodeResource struct {
	Volumes Volumes `json:"volumes" mapstructure:"volumes"`
	Disks   Disks   `json:"disks" mapstructure:"disks"`
	Storage int64   `json:"storage" mapstructure:"storage"`
}

NodeResource .

func (*NodeResource) Add

func (n *NodeResource) Add(n1 *NodeResource)

Add .

func (*NodeResource) DeepCopy

func (n *NodeResource) DeepCopy() *NodeResource

DeepCopy .

func (*NodeResource) Parse

func (n *NodeResource) Parse(rawParams resourcetypes.RawParams) error

ParseFromRawParams .

func (*NodeResource) RemoveEmpty

func (n *NodeResource) RemoveEmpty()

RemoveEmpty .

func (*NodeResource) Sub

func (n *NodeResource) Sub(n1 *NodeResource)

Sub .

type NodeResourceInfo

type NodeResourceInfo struct {
	Capacity *NodeResource `json:"capacity"`
	Usage    *NodeResource `json:"usage"`
}

NodeResourceInfo .

func (*NodeResourceInfo) GetAvailableResource

func (n *NodeResourceInfo) GetAvailableResource() *NodeResource

GetAvailableResource .

func (*NodeResourceInfo) Validate

func (n *NodeResourceInfo) Validate() error

Validate .

type NodeResourceRequest

type NodeResourceRequest struct {
	Volumes Volumes  `json:"volumes"`
	Storage int64    `json:"storage"`
	Disks   Disks    `json:"disks"`
	RMDisks []string `json:"rm_disks"`

	RawParams resourcetypes.RawParams `json:"-"`
}

NodeResourceRequest includes all possible fields passed by eru-core for editing node, it not parsed!

func (*NodeResourceRequest) Parse

func (n *NodeResourceRequest) Parse(rawParams resourcetypes.RawParams) (err error)

Parse .

func (*NodeResourceRequest) SkipEmpty

func (n *NodeResourceRequest) SkipEmpty(nodeResource *NodeResource)

SkipEmpty used for setting node resource capacity in absolute mode

type VolumeBinding

type VolumeBinding struct {
	Source      string `json:"source" mapstructure:"source"`
	Destination string `json:"destination" mapstructure:"destination"`
	Flags       string `json:"flags" mapstructure:"flags"`
	SizeInBytes int64  `json:"size_in_bytes" mapstructure:"size_in_bytes"`
	ReadIOPS    int64  `json:"read_iops" mapstructure:"read_iops"`
	WriteIOPS   int64  `json:"write_iops" mapstructure:"write_iops"`
	ReadBPS     int64  `json:"read_bps" mapstructure:"read_bps"`
	WriteBPS    int64  `json:"write_bps" mapstructure:"write_bps"`
}

VolumeBinding src:dst[:flags][:size][:read_IOPS:write_IOPS:read_bytes:write_bytes]

func NewVolumeBinding

func NewVolumeBinding(volume string) (_ *VolumeBinding, err error)

NewVolumeBinding returns pointer of VolumeBinding

func (VolumeBinding) DeepCopy

func (vb VolumeBinding) DeepCopy() *VolumeBinding

DeepCopy .

func (VolumeBinding) GetMapKey

func (vb VolumeBinding) GetMapKey() [3]string

GetMapKey .

func (VolumeBinding) RequireIOPS

func (vb VolumeBinding) RequireIOPS() bool

RequireIOPS returns true if volume binding requires IOPS / BPS

func (VolumeBinding) RequireSchedule

func (vb VolumeBinding) RequireSchedule() bool

RequireSchedule returns true if volume binding requires schedule

func (VolumeBinding) RequireScheduleMonopoly

func (vb VolumeBinding) RequireScheduleMonopoly() bool

RequireScheduleMonopoly returns true if volume binding requires monopoly schedule

func (VolumeBinding) RequireScheduleUnlimitedQuota

func (vb VolumeBinding) RequireScheduleUnlimitedQuota() bool

RequireScheduleUnlimitedQuota .

func (VolumeBinding) ToString

func (vb VolumeBinding) ToString(normalize bool) (volume string)

ToString returns volume string

func (VolumeBinding) ValidIOParameters

func (vb VolumeBinding) ValidIOParameters() bool

ValidIOParameters returns true if all io related parameters are valid

func (VolumeBinding) Validate

func (vb VolumeBinding) Validate() error

Validate return error if invalid

type VolumeBindings

type VolumeBindings []*VolumeBinding

VolumeBindings is a collection of VolumeBinding

func MergeVolumeBindings

func MergeVolumeBindings(vbs1 VolumeBindings, vbs2 ...VolumeBindings) (vbs VolumeBindings)

MergeVolumeBindings combines two VolumeBindings

func NewVolumeBindings

func NewVolumeBindings(volumes []string) (volumeBindings VolumeBindings, err error)

NewVolumeBindings return VolumeBindings of reference type

func (VolumeBindings) ApplyPlan

func (vbs VolumeBindings) ApplyPlan(plan VolumePlan) (res VolumeBindings)

ApplyPlan creates new VolumeBindings according to volume plan

func (VolumeBindings) MarshalJSON

func (vbs VolumeBindings) MarshalJSON() ([]byte, error)

MarshalJSON is used for encoding/json.Marshal

func (VolumeBindings) String

func (vbs VolumeBindings) String() string

func (VolumeBindings) TotalSize

func (vbs VolumeBindings) TotalSize() (total int64)

TotalSize .

func (*VolumeBindings) UnmarshalJSON

func (vbs *VolumeBindings) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON is used for encoding/json.Unmarshal

func (VolumeBindings) Validate

func (vbs VolumeBindings) Validate() error

Validate .

type VolumePlan

type VolumePlan map[*VolumeBinding]Volumes

VolumePlan is map from volume string to volumeMap: {"AUTO:/data:rw:100": Volumes{"/sda1": 100}}

func (VolumePlan) GetVolumes

func (p VolumePlan) GetVolumes(vb *VolumeBinding) (volMap Volumes, volume *VolumeBinding)

GetVolumes looks up Volumes according to volume destination directory

func (VolumePlan) MarshalJSON

func (p VolumePlan) MarshalJSON() ([]byte, error)

MarshalJSON .

func (VolumePlan) Merge

func (p VolumePlan) Merge(p2 VolumePlan)

Merge .

func (VolumePlan) String

func (p VolumePlan) String() string

String .

func (*VolumePlan) UnmarshalJSON

func (p *VolumePlan) UnmarshalJSON(b []byte) (err error)

UnmarshalJSON .

type Volumes

type Volumes map[string]int64

Volumes .

func (Volumes) Add

func (v Volumes) Add(v1 Volumes)

Add .

func (Volumes) DeepCopy

func (v Volumes) DeepCopy() Volumes

DeepCopy .

func (Volumes) GetDevice

func (v Volumes) GetDevice() string

GetDevice returns the first device

func (Volumes) GetSize

func (v Volumes) GetSize() int64

GetSize returns the first size

func (Volumes) Sub

func (v Volumes) Sub(v1 Volumes)

Sub .

func (Volumes) Total

func (v Volumes) Total() int64

Total .

type WorkloadResource

type WorkloadResource struct {
	VolumesRequest VolumeBindings `json:"volumes_request" mapstructure:"volumes_request"`
	VolumesLimit   VolumeBindings `json:"volumes_limit" mapstructure:"volumes_limit"`

	VolumePlanRequest VolumePlan `json:"volume_plan_request" mapstructure:"volume_plan_request"`
	VolumePlanLimit   VolumePlan `json:"volume_plan_limit" mapstructure:"volume_plan_limit"`

	StorageRequest int64 `json:"storage_request" mapstructure:"storage_request"`
	StorageLimit   int64 `json:"storage_limit" mapstructure:"storage_limit"`

	DisksRequest Disks `json:"disks_request" mapstructure:"disks_request"`
	DisksLimit   Disks `json:"disks_limit" mapstructure:"disks_limit"`
}

WorkloadResource .

func (*WorkloadResource) Parse

func (w *WorkloadResource) Parse(rawParams resourcetypes.RawParams) error

ParseFromRawParams .

type WorkloadResourceRequest

type WorkloadResourceRequest struct {
	VolumesRequest VolumeBindings `json:"volumes_request"`
	VolumesLimit   VolumeBindings `json:"volumes_limit"`
	StorageRequest int64          `json:"storage_request"`
	StorageLimit   int64          `json:"storage_limit"`
	// contains filtered or unexported fields
}

WorkloadResourceRequest .

func (*WorkloadResourceRequest) Parse

func (w *WorkloadResourceRequest) Parse(rawParams resourcetypes.RawParams) (err error)

ParseFromRawParams .

func (*WorkloadResourceRequest) SkipAddStorage

func (w *WorkloadResourceRequest) SkipAddStorage()

SkipAddStorage will skip adding volume size to storage request / limit (used in realloc)

func (*WorkloadResourceRequest) Validate

func (w *WorkloadResourceRequest) Validate() error

Validate .

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL