 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- Variables
- func EventString(ev int) string
- func InitNetwork(bIface, bIP string, disableIptables bool) error
- func LazyVmLoop(vmId string, hub chan VmEvent, client chan *types.VmResponse, boot *BootConfig)
- func NewVmMessage(m *hyperstartapi.DecodedMessage) []byte
- func ReadVmMessage(conn *net.UnixConn) (*hyperstartapi.DecodedMessage, error)
- func SupportLazyMode() bool
- func TtyLiner(conn io.Reader, output chan string)
- func UnblockSend(ch chan *types.VmResponse, u *types.VmResponse)
- func VmAssociate(vmId string, hub chan VmEvent, client chan *types.VmResponse, ...)
- func VmLoop(vmId string, hub chan VmEvent, client chan *types.VmResponse, boot *BootConfig)
- type AttachCommand
- type BlockDescriptor
- type BlockdevInsertedEvent
- type BootConfig
- type CommandAck
- type CommandError
- type Container
- type ContainerCreatedEvent
- type ContainerInfo
- type ContainerUnmounted
- type DevSkipEvent
- type DeviceFailed
- type DriverContext
- type EmptyContext
- func (ec *EmptyContext) AddDisk(ctx *VmContext, sourceType string, blockInfo *BlockDescriptor)
- func (ec *EmptyContext) AddMem(ctx *VmContext, slot, size int, result chan<- error)
- func (ec *EmptyContext) AddNic(ctx *VmContext, host *HostNicInfo, guest *GuestNicInfo, result chan<- VmEvent)
- func (ec *EmptyContext) AllocateNetwork(vmId, requestedIP string, maps []pod.UserContainerPort) (*network.Settings, error)
- func (ec *EmptyContext) Associate(ctx *VmContext)
- func (ec *EmptyContext) BuildinNetwork() bool
- func (ec *EmptyContext) Close()
- func (ec *EmptyContext) ConfigureNetwork(vmId, requestedIP string, maps []pod.UserContainerPort, ...) (*network.Settings, error)
- func (ec *EmptyContext) Dump() (map[string]interface{}, error)
- func (ec *EmptyContext) Kill(ctx *VmContext)
- func (ec *EmptyContext) Launch(ctx *VmContext)
- func (ec *EmptyContext) Pause(ctx *VmContext, pause bool, result chan<- error)
- func (ec *EmptyContext) ReleaseNetwork(vmId, releasedIP string, maps []pod.UserContainerPort, file *os.File) error
- func (ec *EmptyContext) RemoveDisk(ctx *VmContext, blockInfo *BlockDescriptor, callback VmEvent)
- func (ec *EmptyContext) RemoveNic(ctx *VmContext, n *InterfaceCreated, callback VmEvent)
- func (ec *EmptyContext) Save(ctx *VmContext, path string, result chan<- error)
- func (ec *EmptyContext) SetCpus(ctx *VmContext, cpus int, result chan<- error)
- func (ec *EmptyContext) Shutdown(ctx *VmContext)
- func (ec *EmptyContext) Stats(ctx *VmContext) (*types.PodStats, error)
 
- type EmptyDriver
- type Fanout
- type GenericOperation
- type GetPodStatsCommand
- type GuestNicInfo
- type HandleEvent
- type HostNicInfo
- type HypervisorDriver
- type InitConnectedEvent
- type InitFailedEvent
- type InterfaceCreated
- type InterfaceReleased
- type Interrupted
- type LazyDriverContext
- type LogStatus
- type NetDevInsertedEvent
- type NetDevRemovedEvent
- type NewContainerCommand
- type OnlineCpuMemCommand
- type PersistInfo
- type PersistNetworkInfo
- type PersistVolumeInfo
- type PodFinished
- type PodStatus
- type PreparingItem
- type ReleaseVMCommand
- type ReplacePodCommand
- type RouteRule
- type RunPodCommand
- type RunningContainer
- type ShutdownCommand
- type StopPodCommand
- type TtyIO
- type Vm
- func (vm *Vm) AddCpu(totalCpu int) error
- func (vm *Vm) AddMem(totalMem int) error
- func (vm *Vm) AddNic(idx int, name string, info pod.UserInterface) error
- func (vm *Vm) AddProcess(container string, terminal bool, args []string, env []string, workdir string, ...) error
- func (vm *Vm) AssociateVm(mypod *PodStatus, data []byte) error
- func (vm *Vm) Attach(tty *TtyIO, container string, size *WindowSize) error
- func (vm *Vm) Exec(container, cmd string, terminal bool, tty *TtyIO) error
- func (vm *Vm) GenericOperation(name string, op func(ctx *VmContext, result chan<- error), states ...string) error
- func (vm *Vm) GetLogOutput(container, tag string, callback chan *types.VmResponse) (io.ReadCloser, io.ReadCloser, error)
- func (vm *Vm) GetResponseChan() (chan *types.VmResponse, error)
- func (vm *Vm) Kill() (int, string, error)
- func (vm *Vm) KillContainer(container string, signal syscall.Signal) error
- func (vm *Vm) Launch(b *BootConfig) (err error)
- func (vm *Vm) NewContainer(c *pod.UserContainer, info *ContainerInfo) error
- func (vm *Vm) OnlineCpuMem() error
- func (vm *Vm) Pause(pause bool) error
- func (vm *Vm) ReadFile(container, target string) ([]byte, error)
- func (vm *Vm) ReleaseResponseChan(ch chan *types.VmResponse)
- func (vm *Vm) ReleaseVm() (int, error)
- func (vm *Vm) Save(path string) error
- func (vm *Vm) SendGenericOperation(name string, op func(ctx *VmContext, result chan<- error), states ...string) <-chan error
- func (vm *Vm) SetCpus(cpus int) error
- func (vm *Vm) StartPod(mypod *PodStatus, userPod *pod.UserPod, cList []*ContainerInfo, ...) *types.VmResponse
- func (vm *Vm) Stats() *types.VmResponse
- func (vm *Vm) StopPod(mypod *PodStatus) *types.VmResponse
- func (vm *Vm) Tty(tag string, row, column int) error
- func (vm *Vm) WriteFile(container, target string, data []byte) error
 
- type VmContext
- func (ctx *VmContext) Become(handler stateHandler, desc string)
- func (ctx *VmContext) Close()
- func (ctx *VmContext) ConfigureInterface(index int, pciAddr int, name string, config pod.UserInterface, ...)
- func (ctx *VmContext) CreateInterface(index int, pciAddr int, name string)
- func (ctx *VmContext) InitDeviceContext(spec *pod.UserPod, wg *sync.WaitGroup, cInfo []*ContainerInfo, ...)
- func (ctx *VmContext) Lookup(container string) int
- func (ctx *VmContext) ReleaseInterface(index int, ipAddr string, file *os.File, maps []pod.UserContainerPort)
 
- type VmEvent
- type VmExit
- type VmHwStatus
- type VmKilledEvent
- type VmStartFailEvent
- type VmTimeout
- type VolumeInfo
- type VolumeReadyEvent
- type VolumeUnmounted
- type WindowSize
- type WindowSizeCommand
Constants ¶
      View Source
      
  
    const ( BaseDir = "/var/run/hyper" HyperSockName = "hyper.sock" TtySockName = "tty.sock" ConsoleSockName = "console.sock" DefaultKernel = "/var/lib/hyper/kernel" DefaultInitrd = "/var/lib/hyper/hyper-initrd.img" DetachKeys = "ctrl-p,ctrl-q" // cpu/mem hotplug constants DefaultMaxCpus = 8 // CONFIG_NR_CPUS hyperstart.git/build/kernel_config DefaultMaxMem = 32768 // size in MiB )
      View Source
      
  
    const ( EVENT_VM_START_FAILED = iota EVENT_VM_EXIT EVENT_VM_KILL EVENT_VM_TIMEOUT EVENT_POD_FINISH EVENT_INIT_CONNECTED EVENT_CONTAINER_ADD EVENT_CONTAINER_DELETE EVENT_VOLUME_ADD EVENT_BLOCK_INSERTED EVENT_DEV_SKIP EVENT_BLOCK_EJECTED EVENT_INTERFACE_ADD EVENT_INTERFACE_DELETE EVENT_INTERFACE_INSERTED EVENT_INTERFACE_EJECTED EVENT_SERIAL_ADD EVENT_SERIAL_DELETE EVENT_TTY_OPEN EVENT_TTY_CLOSE EVENT_PAUSE_RESULT COMMAND_RUN_POD COMMAND_REPLACE_POD COMMAND_STOP_POD COMMAND_SHUTDOWN COMMAND_RELEASE COMMAND_NEWCONTAINER COMMAND_ONLINECPUMEM COMMAND_ATTACH COMMAND_DETACH COMMAND_WINDOWSIZE COMMAND_ACK COMMAND_GET_POD_STATS COMMAND_PAUSEVM GENERIC_OPERATION ERROR_INIT_FAIL ERROR_QMP_FAIL ERROR_INTERRUPTED ERROR_CMD_FAIL )
      View Source
      
  const ( StateInit = "INIT" StatePreparing = "PREPARING" StateStarting = "STARTING" StateRunning = "RUNNING" StatePodStopping = "STOPPING" StateCleaning = "CLEANING" StateTerminating = "TERMINATING" StateDestroying = "DESTROYING" StateNone = "NONE" )
states
Variables ¶
      View Source
      
  
    var InterfaceCount int = 1
    
      View Source
      
  
var PciAddrFrom int = 0x05
    Functions ¶
func EventString ¶
func InitNetwork ¶
func LazyVmLoop ¶
func LazyVmLoop(vmId string, hub chan VmEvent, client chan *types.VmResponse, boot *BootConfig)
func NewVmMessage ¶
func NewVmMessage(m *hyperstartapi.DecodedMessage) []byte
func ReadVmMessage ¶
func ReadVmMessage(conn *net.UnixConn) (*hyperstartapi.DecodedMessage, error)
func SupportLazyMode ¶
func SupportLazyMode() bool
func UnblockSend ¶
func UnblockSend(ch chan *types.VmResponse, u *types.VmResponse)
func VmAssociate ¶
func VmLoop ¶
func VmLoop(vmId string, hub chan VmEvent, client chan *types.VmResponse, boot *BootConfig)
Types ¶
type AttachCommand ¶
type AttachCommand struct {
	Streams   *TtyIO
	Stderr    *TtyIO
	Size      *WindowSize
	Container string
}
    func (*AttachCommand) Event ¶
func (qe *AttachCommand) Event() int
type BlockDescriptor ¶
type BlockdevInsertedEvent ¶
type BlockdevInsertedEvent struct {
	Name       string
	SourceType string //image or volume
	DeviceName string
	ScsiId     int
	ScsiAddr   string // pass scsi addr to hyperstart
}
    func (*BlockdevInsertedEvent) Event ¶
func (qe *BlockdevInsertedEvent) Event() int
type BootConfig ¶
type CommandAck ¶
type CommandAck struct {
	// contains filtered or unexported fields
}
    func (*CommandAck) Event ¶
func (qe *CommandAck) Event() int
type CommandError ¶
type CommandError CommandAck
func (*CommandError) Event ¶
func (qe *CommandError) Event() int
type ContainerCreatedEvent ¶
type ContainerCreatedEvent struct {
	Index  int
	Id     string
	Rootfs string
	Image  string // if fstype is `dir`, this should be a path relative to share_dir
	// which described the mounted aufs or overlayfs dir.
	Fstype     string
	Workdir    string
	Entrypoint []string
	Cmd        []string
	Envs       map[string]string
}
    func (*ContainerCreatedEvent) Event ¶
func (qe *ContainerCreatedEvent) Event() int
type ContainerInfo ¶
type ContainerInfo struct {
	Id      string
	User    string
	MountId string
	Rootfs  string
	Image   string // if fstype is `dir`, this should be a path relative to share_dir
	// which described the mounted aufs or overlayfs dir.
	Fstype     string
	Workdir    string
	Entrypoint []string
	Cmd        []string
	Envs       map[string]string
	Initialize bool // need to initialize container environment in start
}
    type ContainerUnmounted ¶
func (*ContainerUnmounted) Event ¶
func (qe *ContainerUnmounted) Event() int
type DevSkipEvent ¶
type DevSkipEvent struct{}
    func (*DevSkipEvent) Event ¶
func (qe *DevSkipEvent) Event() int
type DeviceFailed ¶
type DeviceFailed struct {
	Session VmEvent
}
    func (*DeviceFailed) Event ¶
func (qe *DeviceFailed) Event() int
type DriverContext ¶
type DriverContext interface {
	Launch(ctx *VmContext)
	Associate(ctx *VmContext)
	Dump() (map[string]interface{}, error)
	AddDisk(ctx *VmContext, sourceType string, blockInfo *BlockDescriptor)
	RemoveDisk(ctx *VmContext, blockInfo *BlockDescriptor, callback VmEvent)
	AddNic(ctx *VmContext, host *HostNicInfo, guest *GuestNicInfo, result chan<- VmEvent)
	RemoveNic(ctx *VmContext, n *InterfaceCreated, callback VmEvent)
	SetCpus(ctx *VmContext, cpus int, result chan<- error)
	AddMem(ctx *VmContext, slot, size int, result chan<- error)
	Save(ctx *VmContext, path string, result chan<- error)
	Shutdown(ctx *VmContext)
	Kill(ctx *VmContext)
	Pause(ctx *VmContext, pause bool, result chan<- error)
	ConfigureNetwork(vmId, requestedIP string, maps []pod.UserContainerPort, config pod.UserInterface) (*network.Settings, error)
	AllocateNetwork(vmId, requestedIP string, maps []pod.UserContainerPort) (*network.Settings, error)
	ReleaseNetwork(vmId, releasedIP string, maps []pod.UserContainerPort, file *os.File) error
	Stats(ctx *VmContext) (*types.PodStats, error)
	Close()
}
    type EmptyContext ¶
type EmptyContext struct{}
    func (*EmptyContext) AddDisk ¶
func (ec *EmptyContext) AddDisk(ctx *VmContext, sourceType string, blockInfo *BlockDescriptor)
func (*EmptyContext) AddMem ¶
func (ec *EmptyContext) AddMem(ctx *VmContext, slot, size int, result chan<- error)
func (*EmptyContext) AddNic ¶
func (ec *EmptyContext) AddNic(ctx *VmContext, host *HostNicInfo, guest *GuestNicInfo, result chan<- VmEvent)
func (*EmptyContext) AllocateNetwork ¶
func (ec *EmptyContext) AllocateNetwork(vmId, requestedIP string, maps []pod.UserContainerPort) (*network.Settings, error)
func (*EmptyContext) Associate ¶
func (ec *EmptyContext) Associate(ctx *VmContext)
func (*EmptyContext) BuildinNetwork ¶
func (ec *EmptyContext) BuildinNetwork() bool
func (*EmptyContext) Close ¶
func (ec *EmptyContext) Close()
func (*EmptyContext) ConfigureNetwork ¶
func (ec *EmptyContext) ConfigureNetwork(vmId, requestedIP string, maps []pod.UserContainerPort, config pod.UserInterface) (*network.Settings, error)
func (*EmptyContext) Dump ¶
func (ec *EmptyContext) Dump() (map[string]interface{}, error)
func (*EmptyContext) Kill ¶
func (ec *EmptyContext) Kill(ctx *VmContext)
func (*EmptyContext) Launch ¶
func (ec *EmptyContext) Launch(ctx *VmContext)
func (*EmptyContext) Pause ¶
func (ec *EmptyContext) Pause(ctx *VmContext, pause bool, result chan<- error)
func (*EmptyContext) ReleaseNetwork ¶
func (ec *EmptyContext) ReleaseNetwork(vmId, releasedIP string, maps []pod.UserContainerPort, file *os.File) error
func (*EmptyContext) RemoveDisk ¶
func (ec *EmptyContext) RemoveDisk(ctx *VmContext, blockInfo *BlockDescriptor, callback VmEvent)
func (*EmptyContext) RemoveNic ¶
func (ec *EmptyContext) RemoveNic(ctx *VmContext, n *InterfaceCreated, callback VmEvent)
func (*EmptyContext) Save ¶
func (ec *EmptyContext) Save(ctx *VmContext, path string, result chan<- error)
func (*EmptyContext) SetCpus ¶
func (ec *EmptyContext) SetCpus(ctx *VmContext, cpus int, result chan<- error)
func (*EmptyContext) Shutdown ¶
func (ec *EmptyContext) Shutdown(ctx *VmContext)
type EmptyDriver ¶
type EmptyDriver struct{}
    func (*EmptyDriver) InitContext ¶
func (ed *EmptyDriver) InitContext(homeDir string) DriverContext
func (*EmptyDriver) Initialize ¶
func (ed *EmptyDriver) Initialize() error
func (*EmptyDriver) LoadContext ¶
func (ed *EmptyDriver) LoadContext(persisted map[string]interface{}) (DriverContext, error)
func (*EmptyDriver) SupportLazyMode ¶
func (ed *EmptyDriver) SupportLazyMode() bool
type Fanout ¶
type Fanout struct {
	// contains filtered or unexported fields
}
    func CreateFanout ¶
func CreateFanout(upstream chan *types.VmResponse, size int, block bool) *Fanout
CreateFanout create a new fanout, and if it is non-blocked, it will start the fanout goroutine at once, otherwise it will start the goroutine when it get the first client
type GenericOperation ¶
type GenericOperation struct {
	OpName string
	State  []string
	OpFunc func(ctx *VmContext, result chan<- error)
	Result chan<- error
}
    func (*GenericOperation) Event ¶
func (qe *GenericOperation) Event() int
type GetPodStatsCommand ¶
type GetPodStatsCommand struct {
	Id string
}
    func (*GetPodStatsCommand) Event ¶
func (qe *GetPodStatsCommand) Event() int
type HandleEvent ¶
type HandleEvent struct {
	Handle func(*types.VmResponse, interface{}, *PodStatus, *Vm) bool
	Data   interface{}
}
    type HostNicInfo ¶
type HypervisorDriver ¶
type HypervisorDriver interface {
	InitContext(homeDir string) DriverContext
	LoadContext(persisted map[string]interface{}) (DriverContext, error)
	BuildinNetwork() bool
	InitNetwork(bIface, bIP string, disableIptables bool) error
	SupportLazyMode() bool
}
    var HDriver HypervisorDriver
    type InitConnectedEvent ¶
type InitConnectedEvent struct {
	// contains filtered or unexported fields
}
    func (*InitConnectedEvent) Event ¶
func (qe *InitConnectedEvent) Event() int
type InitFailedEvent ¶
type InitFailedEvent struct {
	Reason string
}
    func (*InitFailedEvent) Event ¶
func (qe *InitFailedEvent) Event() int
type InterfaceCreated ¶
type InterfaceCreated struct {
	Index      int
	PCIAddr    int
	Fd         *os.File
	Bridge     string
	HostDevice string
	DeviceName string
	MacAddr    string
	IpAddr     string
	NetMask    string
	RouteTable []*RouteRule
}
    func (*InterfaceCreated) Event ¶
func (qe *InterfaceCreated) Event() int
type InterfaceReleased ¶
func (*InterfaceReleased) Event ¶
func (qe *InterfaceReleased) Event() int
type Interrupted ¶
type Interrupted struct {
	Reason string
}
    func (*Interrupted) Event ¶
func (qe *Interrupted) Event() int
type LazyDriverContext ¶
type LazyDriverContext interface {
	DriverContext
	LazyLaunch(ctx *VmContext)
	InitVM(ctx *VmContext) error
	LazyAddDisk(ctx *VmContext, name, sourceType, filename, format string, id int)
	LazyAddNic(ctx *VmContext, host *HostNicInfo, guest *GuestNicInfo)
}
    type NetDevInsertedEvent ¶
func (*NetDevInsertedEvent) Event ¶
func (qe *NetDevInsertedEvent) Event() int
type NetDevRemovedEvent ¶
type NetDevRemovedEvent struct {
	Index int
}
    func (*NetDevRemovedEvent) Event ¶
func (qe *NetDevRemovedEvent) Event() int
type NewContainerCommand ¶
type NewContainerCommand struct {
	// contains filtered or unexported fields
}
    func (*NewContainerCommand) Event ¶
func (qe *NewContainerCommand) Event() int
type OnlineCpuMemCommand ¶
type OnlineCpuMemCommand struct{}
    func (*OnlineCpuMemCommand) Event ¶
func (qe *OnlineCpuMemCommand) Event() int
type PersistInfo ¶
type PersistInfo struct {
	Id          string
	DriverInfo  map[string]interface{}
	UserSpec    *pod.UserPod
	VmSpec      *hyperstartapi.Pod
	HwStat      *VmHwStatus
	VolumeList  []*PersistVolumeInfo
	NetworkList []*PersistNetworkInfo
}
    type PersistNetworkInfo ¶
type PersistVolumeInfo ¶
type PodFinished ¶
type PodFinished struct {
	// contains filtered or unexported fields
}
    func (*PodFinished) Event ¶
func (qe *PodFinished) Event() int
type PodStatus ¶
type PodStatus struct {
	Id            string
	Name          string
	Vm            string
	Wg            *sync.WaitGroup
	Containers    []*Container
	Status        uint
	Type          string
	RestartPolicy string
	Autoremove    bool
	Handler       HandleEvent
	StartedAt     string
	FinishedAt    string
	ResourcePath  string
}
    func (*PodStatus) AddContainer ¶
func (*PodStatus) SetContainerStatus ¶
func (*PodStatus) SetPodContainerStatus ¶
type PreparingItem ¶
type PreparingItem interface {
	ItemType() string
}
    type ReleaseVMCommand ¶
type ReleaseVMCommand struct{}
    func (*ReleaseVMCommand) Event ¶
func (qe *ReleaseVMCommand) Event() int
type ReplacePodCommand ¶
type ReplacePodCommand RunPodCommand
func (*ReplacePodCommand) Event ¶
func (qe *ReplacePodCommand) Event() int
type RunPodCommand ¶
type RunPodCommand struct {
	Spec       *pod.UserPod
	Containers []*ContainerInfo
	Volumes    map[string]*VolumeInfo
	Wg         *sync.WaitGroup
}
    func (*RunPodCommand) Event ¶
func (qe *RunPodCommand) Event() int
type RunningContainer ¶
type RunningContainer struct {
	Id string `json:"id"`
}
    type ShutdownCommand ¶
type ShutdownCommand struct {
	Wait bool
}
    func (*ShutdownCommand) Event ¶
func (qe *ShutdownCommand) Event() int
type StopPodCommand ¶
type StopPodCommand struct{}
    func (*StopPodCommand) Event ¶
func (qe *StopPodCommand) Event() int
type TtyIO ¶
type TtyIO struct {
	Stdin     io.ReadCloser
	Stdout    io.WriteCloser
	ClientTag string
	Callback  chan *types.VmResponse
	ExitCode  uint8
}
    func (*TtyIO) WaitForFinish ¶
type Vm ¶
type Vm struct {
	Id     string
	Pod    *PodStatus
	Status uint
	Cpu    int
	Mem    int
	Lazy   bool
	Hub chan VmEvent
	// contains filtered or unexported fields
}
    func (*Vm) AddProcess ¶
func (*Vm) AssociateVm ¶
This function will only be invoked during daemon start
func (*Vm) GenericOperation ¶
func (*Vm) GetLogOutput ¶
func (vm *Vm) GetLogOutput(container, tag string, callback chan *types.VmResponse) (io.ReadCloser, io.ReadCloser, error)
func (*Vm) GetResponseChan ¶
func (vm *Vm) GetResponseChan() (chan *types.VmResponse, error)
func (*Vm) KillContainer ¶
func (*Vm) Launch ¶
func (vm *Vm) Launch(b *BootConfig) (err error)
func (*Vm) NewContainer ¶
func (vm *Vm) NewContainer(c *pod.UserContainer, info *ContainerInfo) error
func (*Vm) OnlineCpuMem ¶
func (*Vm) ReleaseResponseChan ¶
func (vm *Vm) ReleaseResponseChan(ch chan *types.VmResponse)
func (*Vm) SendGenericOperation ¶
func (*Vm) StartPod ¶
func (vm *Vm) StartPod(mypod *PodStatus, userPod *pod.UserPod, cList []*ContainerInfo, vList map[string]*VolumeInfo) *types.VmResponse
func (*Vm) Stats ¶
func (vm *Vm) Stats() *types.VmResponse
type VmContext ¶
type VmContext struct {
	Id string
	Paused bool
	Boot   *BootConfig
	// Communication Context
	Hub chan VmEvent
	DCtx DriverContext
	HomeDir         string
	HyperSockName   string
	TtySockName     string
	ConsoleSockName string
	InterfaceCount int
	// contains filtered or unexported fields
}
    func InitContext ¶
func InitContext(id string, hub chan VmEvent, client chan *types.VmResponse, dc DriverContext, boot *BootConfig) (*VmContext, error)
func (*VmContext) ConfigureInterface ¶
func (*VmContext) CreateInterface ¶
func (*VmContext) InitDeviceContext ¶
func (ctx *VmContext) InitDeviceContext(spec *pod.UserPod, wg *sync.WaitGroup, cInfo []*ContainerInfo, vInfo map[string]*VolumeInfo)
InitDeviceContext will init device info in context
func (*VmContext) ReleaseInterface ¶
type VmHwStatus ¶
type VmKilledEvent ¶
type VmKilledEvent struct {
	Success bool
}
    func (*VmKilledEvent) Event ¶
func (qe *VmKilledEvent) Event() int
type VmStartFailEvent ¶
type VmStartFailEvent struct {
	Message string
}
    func (*VmStartFailEvent) Event ¶
func (qe *VmStartFailEvent) Event() int
type VolumeInfo ¶
type VolumeReadyEvent ¶
type VolumeReadyEvent struct {
	Name     string //volumen name in spec
	Filepath string //block dev absolute path, or dir path relative to share dir
	Fstype   string //"xfs", "ext4" etc. for block dev, or "dir" for dir path
	Format   string //"raw" (or "qcow2") for volume, no meaning for dir path
}
    func (*VolumeReadyEvent) Event ¶
func (qe *VolumeReadyEvent) Event() int
type VolumeUnmounted ¶
func (*VolumeUnmounted) Event ¶
func (qe *VolumeUnmounted) Event() int
type WindowSize ¶
type WindowSizeCommand ¶
type WindowSizeCommand struct {
	ClientTag string
	Size      *WindowSize
}
    func (*WindowSizeCommand) Event ¶
func (qe *WindowSizeCommand) Event() int
       Source Files
      ¶
      Source Files
      ¶
    
   Click to show internal directories. 
   Click to hide internal directories.