vendor: Update hyperkit go bindings

The updated bindings primarily allow compilation on non-darwin
operating systems.

Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com>
This commit is contained in:
Rolf Neugebauer
2017-03-30 17:00:07 +01:00
parent 13e3d88bdd
commit 024b1d6d98
6 changed files with 13 additions and 16 deletions

View File

@@ -1,5 +1,3 @@
// +build darwin
// Package hyperkit provides a Go wrapper around the hyperkit
// command. It currently shells out to start hyperkit with the
// provided configuration.
@@ -75,6 +73,8 @@ type HyperKit struct {
DiskImage string `json:"disk"`
// ISOImage is the (optional) path to a ISO image to attach
ISOImage string `json:"iso"`
// VSock enables the virtio-socket device and exposes it on the host
VSock bool `json:"vsock"`
// Kernel is the path to the kernel image to boot
Kernel string `json:"kernel"`
@@ -195,7 +195,7 @@ func (h *HyperKit) execute(cmdline string) error {
var err error
// Sanity checks on configuration
if h.Console == ConsoleFile && h.StateDir == "" {
return fmt.Errorf("If ConsoleFile is set, StateDir was be specified")
return fmt.Errorf("If ConsoleFile is set, StateDir must be specified")
}
if h.UserData != "" && h.ISOImage != "" {
return fmt.Errorf("If UserData is supplied, ISOImage must not be set")
@@ -205,8 +205,11 @@ func (h *HyperKit) execute(cmdline string) error {
return fmt.Errorf("ISO %s does not exist", h.ISOImage)
}
}
if h.VSock && h.StateDir == "" {
return fmt.Errorf("If virtio-sockets are enabled, StateDir must be specified")
}
if h.UserData != "" && h.StateDir == "" {
return fmt.Errorf("If UserData is supplied, StateDir was be specified")
return fmt.Errorf("If UserData is supplied, StateDir must be specified")
}
if _, err = os.Stat(h.Kernel); os.IsNotExist(err) {
return fmt.Errorf("Kernel %s does not exist", h.Kernel)
@@ -355,6 +358,9 @@ func (h *HyperKit) buildArgs(cmdline string) {
if h.DiskImage != "" {
a = append(a, "-s", fmt.Sprintf("2:0,virtio-blk,%s", h.DiskImage))
}
if h.VSock {
a = append(a, "-s", fmt.Sprintf("3,virtio-sock,guest_cid=3,path=%s", h.StateDir))
}
if h.ISOImage != "" {
a = append(a, "-s", fmt.Sprintf("4,ahci-cd,%s", h.ISOImage))
}