Documentation
¶
Index ¶
- Constants
- Variables
- func AggregateStrategyCheck(strategy string) (err error)
- type Aggregate
- type BaremetalDiskConfig
- type BaremetalStorage
- type CandidateDetailArgs
- type CandidateDetailResult
- type CandidateListArgs
- type CandidateListResult
- type CandidateListResultItem
- type CleanupArgs
- type CleanupResult
- type CompletedNotifyArgs
- type CompletedNotifyResult
- type Disk
- type ExpireArgs
- type ExpireResult
- type ForGuest
- type GroupRelation
- type HistoryArgs
- type HistoryDetail
- type HistoryDetailArgs
- type HistoryDetailResult
- type HistoryItem
- type HistoryResult
- type HistoryTask
- type IsolatedDevice
- type Meta
- type Network
- type ReservedResourcesArgs
- type ReservedResourcesResult
- type ResultResource
- type SchedData
- type SchedErrItem
- type SchedInfo
- type SchedNormalResultItem
- type SchedResult
- type SchedResultItem
- type SchedSuccItem
- type SchedTestResult
Constants ¶
View Source
const ( HostTypeHost = "host" HostTypeBaremetal = "baremetal" SchedTypeGuest = "guest" SchedTypeBaremetal = "baremetal" SchedTypeContainer = "container" SchedTypeEsxi = "esxi" SchedTypeHyperV = "hyperv" SchedTypeKvm = "kvm" HostHypervisorForKvm = "hypervisor" HostTypeAliyun = "aliyun" AggregateStrategyRequire = "require" AggregateStrategyExclude = "exclude" AggregateStrategyPrefer = "prefer" AggregateStrategyAvoid = "avoid" // Baremetal related const DISK_CONF_RAID0 = "raid0" DISK_CONF_RAID1 = "raid1" DISK_CONF_RAID5 = "raid5" DISK_CONF_RAID10 = "raid10" DISK_CONF_NONE = "none" DEFAULT_DISK_CONF = DISK_CONF_NONE DISK_TYPE_ROTATE = "rotate" DISK_TYPE_SSD = "ssd" DISK_TYPE_HYBRID = "hybrid" DEFAULT_DISK_TYPE = DISK_TYPE_ROTATE DISK_DRIVER_MEGARAID = "MegaRaid" DISK_DRIVER_LINUX = "Linux" DISK_DRIVER_HPSARAID = "HPSARaid" DISK_DRIVER_MPT2SAS = "Mpt2SAS" DISK_DRIVER_MARVELRAID = "MarvelRaid" DISK_DRIVER_PCIE = "PCIE" HDD_DISK_SPEC_TYPE = "HDD" SSD_DISK_SPEC_TYPE = "SSD" // passthrough device type DIRECT_PCI_TYPE = "PCI" GPU_HPC_TYPE = "GPU-HPC" GPU_VGA_TYPE = "GPU-VGA" USB_TYPE = "USB" NIC_TYPE = "NIC" // Hard code vendor const NVIDIA = "NVIDIA" AMD = "AMD" NVIDIA_VENDOR_ID = "10de" AMD_VENDOR_ID = "1002" )
View Source
const (
DefaultCandidateListArgsLimit = 20
)
Variables ¶
View Source
var ( AggregateStrategySets = sets.NewString( AggregateStrategyRequire, AggregateStrategyExclude, AggregateStrategyPrefer, AggregateStrategyAvoid, ) PublicCloudProviders = sets.NewString( HostTypeAliyun, ) BaremetalDefaultDiskConfig = BaremetalDiskConfig{ Type: DISK_TYPE_HYBRID, Conf: DISK_CONF_NONE, Count: 0, } ValidGpuTypes = sets.NewString( GPU_HPC_TYPE, GPU_VGA_TYPE, ) ValidPassthroughTypes = sets.NewString( DIRECT_PCI_TYPE, USB_TYPE, NIC_TYPE, ).Union(ValidGpuTypes) IsolatedVendorIDMap = map[string]string{ NVIDIA: NVIDIA_VENDOR_ID, AMD: AMD_VENDOR_ID, } IsolatedIDVendorMap = map[string]string{} )
Functions ¶
func AggregateStrategyCheck ¶
Types ¶
type Aggregate ¶
func NewSchedTagFromCmdline ¶
type BaremetalDiskConfig ¶
type BaremetalDiskConfig struct {
// disk type
Type string `json:"type"`
// raid config
Conf string `json:"conf"`
Count int64 `json:"count"`
Range []int64 `json:"range"`
Splits string `json:"splits"`
Adapter *int `json:"adapter"`
Driver string `json:"driver"`
Cachedbadbbu bool `json:"cachedbadbbu"`
Strip int64 `json:"strip"`
RA bool `json:"ra"`
WT bool `json:"wt"`
Direct bool `json:"direct"`
}
type BaremetalStorage ¶
type BaremetalStorage struct {
Slot int `json:"slot"`
Status string `json:"status"`
Rotate bool `json:"rotate"`
Adapter int `json:"adapter"`
Driver string `json:"driver"`
Model string `json:"model"`
Enclosure int `json:"enclousure"`
Size int64 `json:"size"`
MinStripSize int64 `json:"min_strip_size,omitempty"`
MaxStripSize int64 `json:"max_strip_size,omitempty"`
Index int64 `json:"index"`
}
type CandidateDetailArgs ¶
CandidateDetailArgs is a struct just for parsing candidate resource parameters.
func NewCandidateDetailArgs ¶
func NewCandidateDetailArgs(sjson *simplejson.Json, id string) (*CandidateDetailArgs, error)
NewCandidateDetailArgs provides a function that will parse candidate's args from a json data.
type CandidateDetailResult ¶
type CandidateDetailResult struct {
Candidate interface{} `json:"candidate"`
}
type CandidateListArgs ¶
type CandidateListArgs struct {
Type string
Zone string
Pool string
Limit int64
Offset int64
Avaliable bool
}
CandidateListArgs is a struct just for parsing candidate resource list parameters.
func NewCandidateListArgs ¶
func NewCandidateListArgs(sjson *simplejson.Json) (*CandidateListArgs, error)
NewCandidateListArgs provides a function that will parse candidate's list args from a json data.
type CandidateListResult ¶
type CandidateListResult struct {
Data []CandidateListResultItem `json:"data"`
Total int64 `json:"total"`
Limit int64 `json:"limit"`
Offset int64 `json:"offset"`
}
type CandidateListResultItem ¶
type CandidateListResultItem struct {
ID string `json:"id"`
Name string `json:"name"`
Cpu ResultResource `json:"cpu"`
Mem ResultResource `json:"mem"`
Storage ResultResource `json:"storage"`
Status string `json:"status"`
HostStatus string `json:"host_status"`
EnableStatus string `json:"enable_status"`
HostType string `json:"host_type"`
}
type CleanupArgs ¶
type CleanupArgs struct {
ResType string
}
func NewCleanupArgs ¶
func NewCleanupArgs(sjson *simplejson.Json) (*CleanupArgs, error)
type CleanupResult ¶
type CleanupResult struct {
}
type CompletedNotifyArgs ¶
type CompletedNotifyArgs struct {
SessionID string
}
func NewCompletedNotifyArgs ¶
func NewCompletedNotifyArgs(sjson *simplejson.Json, sessionId string) (*CompletedNotifyArgs, error)
type CompletedNotifyResult ¶
type CompletedNotifyResult struct {
}
type Disk ¶
type Disk struct {
Backend string `json:"backend"`
ImageID string `json:"image_id"`
Fs *string `json:"fs"`
Os string `json:"os"`
OSDistribution string `json:"os_distribution"`
OsVersion string `json:"os_version"`
Format string `json:"format"`
MountPoint *string `json:"mountpoint"`
Driver *string `json:"driver"`
Cache *string `json:"cache"`
ImageDiskFormat string `json:"image_disk_format"`
Size int64 `json:"size"`
Storage *string `json:"storage"`
}
type ExpireArgs ¶
type ExpireResult ¶
type ExpireResult struct {
}
type GroupRelation ¶
type HistoryArgs ¶
func NewHistoryArgs ¶
func NewHistoryArgs(sjson *simplejson.Json) (*HistoryArgs, error)
type HistoryDetail ¶
type HistoryDetailArgs ¶
func NewHistoryDetailArgs ¶
func NewHistoryDetailArgs(sjson *simplejson.Json, id string) (*HistoryDetailArgs, error)
type HistoryDetailResult ¶
type HistoryDetailResult struct {
Detail *HistoryDetail `json:"history"`
}
type HistoryItem ¶
type HistoryResult ¶
type HistoryResult struct {
Items []*HistoryItem `json:"data"`
Total int64 `json:"total"`
Offset int64 `json:"offset"`
Limit int64 `json:"limit"`
}
type HistoryTask ¶
type HistoryTask struct {
Type string `json:"type"`
Status string `json:"status"`
Data *SchedData `json:"data"`
Time string `json:"time"`
Consuming string `json:"consuming"`
//Result []SchedResultItem `json:"result"`
Result interface{} `json:"result"`
Error string `json:"error"`
Logs []string `json:"logs"`
}
type IsolatedDevice ¶
type Network ¶
type Network struct {
Idx string `json:"idx"`
TenantId string `json:"tenant_id"`
Private bool `json:"private"`
Ports int64 `json:"ports"`
Exit bool `json:"exit"`
Wire string `json:"wire"`
Mac string `json:"mac"`
Address string `json:"address"`
Address6 string `json:"address6"`
Driver string `json:"driver"`
BwLimit int64 `json:"bw_limit"`
Vip bool `json:"vip"`
Reserved bool `json:"reserved"`
}
type ReservedResourcesArgs ¶
type ReservedResourcesResult ¶
type ReservedResourcesResult struct {
Resources interface{} `json:"resources"`
}
type ResultResource ¶
type ResultResource struct {
Free float64 `json:"free"`
Reserved float64 `json:"reserverd"`
Total float64 `json:"total"`
}
func NewResultResource ¶
func NewResultResource(f, r, t float64) *ResultResource
func NewResultResourceInt64 ¶
func NewResultResourceInt64(f, r, t int64) *ResultResource
func NewResultResourceString ¶
func NewResultResourceString(free, reserverd, total string) (*ResultResource, error)
type SchedData ¶
type SchedData struct {
Tag string `json:"tag"`
Type string `json:"type"`
IsContainer bool `json:"is_container"`
Count int64 `json:"count"`
ZoneID string `json:"zone_id"`
PoolID string `json:"pool_id"`
HostID string `json:"host_id"`
Candidates []string `json:"candidates"`
OwnerTenantID string `json:"owner_tenant_id"`
OwnerUserID string `json:"owner_user_id"`
VMEMSize int64 `json:"vmem_size"`
VCPUCount int64 `json:"vcpu_count"`
Disks []*Disk `json:"disks"`
Name string `json:"name"`
Networks []*Network `json:"networks"`
IsolatedDevices []*IsolatedDevice `json:"isolated_devices"`
Aggregates []Aggregate `json:"aggregate_stategy"`
Meta Meta `json:"__meta__"`
ForGuests []*ForGuest `json:"for_guests"`
GuestStatus string `json:"guest_status"`
Hypervisor string `json:"hypervisor"`
// VM
Groups []string `json:"group"`
GroupRelations []GroupRelation `json:"group_relations"`
// baremental
BaremetalDiskConfigs []*BaremetalDiskConfig `json:"baremetal_disk_config"`
}
func NewSchedData ¶
func (*SchedData) AllDiskBackendSize ¶
func (*SchedData) IsPublicCloudProvider ¶
func (*SchedData) SkipDirtyMarkHost ¶
type SchedErrItem ¶
type SchedErrItem struct {
Error string `json:"error"`
}
type SchedInfo ¶
type SchedInfo struct {
Data *SchedData `json:"scheduler"`
IgnoreFilters map[string]bool `json:"ignore_filters"`
SessionID string `json:"session_id"`
IsSuggestion bool `json:"suggestion"`
ShowSuggestionDetails bool `json:"suggestion_details"`
SuggestionLimit int64 `json:"suggestion_limit"`
SuggestionAll bool `json:"suggestion_all"`
Raw string `json:"raw"`
BestEffort bool `json:"best_effort"`
}
func NewSchedInfo ¶
func NewSchedInfo(sjson *simplejson.Json, byTest bool) (*SchedInfo, error)
type SchedNormalResultItem ¶
type SchedResult ¶
type SchedResult struct {
Items []SchedResultItem `json:"scheduler"`
}
type SchedResultItem ¶
type SchedResultItem interface{}
type SchedSuccItem ¶
type SchedSuccItem struct {
Candidate SchedNormalResultItem `json:"candidate"`
}
type SchedTestResult ¶
Click to show internal directories.
Click to hide internal directories.