qemu

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2018 License: BSD-2-Clause Imports: 16 Imported by: 0

README

QEMU

Features

  • CPU は host で渡している
  • Ballooning はしない
  • 基本的にはvirtioで接続
  • SCSIコントローラを作成している

Dependency packages

  • qemu-kvm
apt install -y \
    qemu-kvm

Test parameters

DISABLE_KVM

When setting environment variable, enable KVM.

DISABLE_KVM=1 make test-small

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetNewListenPort

func GetNewListenPort(begin uint16) uint16

Types

type Qemu

type Qemu struct {
	// contains filtered or unexported fields
}

func OpenQemu

func OpenQemu(id *uuid.UUID) (*Qemu, error)

func (Qemu) AttachISO

func (q Qemu) AttachISO(label string, filepath *url.URL, index uint) error

func (Qemu) AttachQcow2

func (q Qemu) AttachQcow2(label string, filepath *url.URL, index uint) error

(QEMU) blockdev-add options={"driver":"qcow2","id":"drive-virtio-disk0","file":{"driver":"file","filename":"/home/h-otter/wk/test-qemu/ubuntu16.04.qcow2"}} (QEMU) device_add driver=virtio-blk-pci bus=pci.0 scsi=off drive=drive-virtio-disk0 id=virtio-disk0 bootindex=1 まだべき等ではない TODO:

  • すでにアタッチされていた場合、エラー処理を文字列で判定する必要がある
  • bootindexがどうやって更新されるのかがわからない

func (Qemu) AttachTap

func (q Qemu) AttachTap(label, tap string, mac net.HardwareAddr) error

(QEMU) netdev_add id=tap0 type=tap vhost=true ifname=tap0 script=no downscript=no (QEMU) device_add driver=virtio-net-pci netdev=tap0 id=test0 mac=52:54:00:df:89:29 bus=pci.0 まだべき等ではない TODO:

  • すでにアタッチされていた場合、エラー処理を文字列で判定する必要がある
  • MACアドレスを変更する

func (Qemu) Boot

func (q Qemu) Boot() error

func (*Qemu) Close

func (q *Qemu) Close() error

func (*Qemu) Delete

func (q *Qemu) Delete() error

func (Qemu) HardReset

func (q Qemu) HardReset() error

func (Qemu) HardShutdown

func (q Qemu) HardShutdown() error

func (Qemu) IsRunning

func (q Qemu) IsRunning() bool

func (Qemu) Shutdown

func (q Qemu) Shutdown() error

func (*Qemu) Start

func (q *Qemu) Start(name, qmpPath string, vncWebsocketPort uint16, vcpus uint32, memory uint64) error

func (Qemu) Status

func (q Qemu) Status() (Status, error)

type QemuArgValue

type QemuArgValue struct {
	// contains filtered or unexported fields
}

func GetQemuArgValue

func GetQemuArgValue(option, id string, args []string) *QemuArgValue

GetQemuArgValue is simple qemu argument parser. Order is O(len(args)).

Example:

`-mon chardev=charmonitor,id=monitor`

Args: option="-mon", id="monitor"
      "*" is wild card, return only first match
Retrun: {"arg": "", "kwds": {"chardev": "charmonitor", "id": "monitor"}}

type Status

type Status int
const (
	StatusDebug         Status = Status(raw.RunStateDebug)
	StatusFinishMigrate Status = Status(raw.RunStateFinishMigrate)
	StatusGuestPanicked Status = Status(raw.RunStateGuestPanicked)
	StatusIOError       Status = Status(raw.RunStateIOError)
	StatusInMigrate     Status = Status(raw.RunStateInmigrate)
	StatusInternalError Status = Status(raw.RunStateInternalError)
	StatusPaused        Status = Status(raw.RunStatePaused)
	StatusPostMigrate   Status = Status(raw.RunStatePostmigrate)
	StatusPreLaunch     Status = Status(raw.RunStatePrelaunch)
	StatusRestoreVM     Status = Status(raw.RunStateRestoreVM)
	StatusRunning       Status = Status(raw.RunStateRunning)
	StatusSaveVM        Status = Status(raw.RunStateSaveVM)
	StatusShutdown      Status = Status(raw.RunStateShutdown)
	StatusSuspended     Status = Status(raw.RunStateSuspended)
	StatusWatchdog      Status = Status(raw.RunStateWatchdog)
)

Jump to

Keyboard shortcuts

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