Add Floppy ConnectVdi type

This commit is contained in:
Cheng Sun 2014-12-15 15:27:22 +00:00
parent 31acbe6508
commit 5cb0a0955b
2 changed files with 22 additions and 6 deletions

View File

@ -36,6 +36,15 @@ type VDI struct {
Client *XenAPIClient
}
type VDIType int
const (
_ = iota
Disk
CD
Floppy
)
type Network struct {
Ref string
Client *XenAPIClient
@ -506,7 +515,7 @@ func (self *VM) SetStaticMemoryRange(min, max string) (err error) {
return
}
func (self *VM) ConnectVdi(vdi *VDI, iso bool) (err error) {
func (self *VM) ConnectVdi(vdi *VDI, vdiType VDIType) (err error) {
// 1. Create a VBD
@ -514,20 +523,27 @@ func (self *VM) ConnectVdi(vdi *VDI, iso bool) (err error) {
vbd_rec["VM"] = self.Ref
vbd_rec["VDI"] = vdi.Ref
vbd_rec["userdevice"] = "autodetect"
vbd_rec["unpluggable"] = false
vbd_rec["empty"] = false
vbd_rec["other_config"] = make(xmlrpc.Struct)
vbd_rec["qos_algorithm_type"] = ""
vbd_rec["qos_algorithm_params"] = make(xmlrpc.Struct)
if iso {
switch vdiType {
case CD:
vbd_rec["mode"] = "RO"
vbd_rec["bootable"] = true
vbd_rec["unpluggable"] = false
vbd_rec["type"] = "CD"
} else {
case Disk:
vbd_rec["mode"] = "RW"
vbd_rec["bootable"] = false
vbd_rec["unpluggable"] = false
vbd_rec["type"] = "Disk"
case Floppy:
vbd_rec["mode"] = "RW"
vbd_rec["bootable"] = false
vbd_rec["unpluggable"] = true
vbd_rec["type"] = "Floppy"
}
result := APIResult{}

View File

@ -75,7 +75,7 @@ func (self *stepCreateInstance) Run(state multistep.StateBag) multistep.StepActi
}
self.vdi = vdi
err = instance.ConnectVdi(vdi, false)
err = instance.ConnectVdi(vdi, Disk)
if err != nil {
ui.Error(fmt.Sprintf("Unable to connect packer disk VDI: %s", err.Error()))
return multistep.ActionHalt
@ -168,7 +168,7 @@ func (self *stepCreateInstance) Run(state multistep.StateBag) multistep.StepActi
//ui.Say("Using VDI: " + iso_vdi_uuid)
//iso, _ := client.GetVdiByUuid(iso_vdi_uuid)
err = instance.ConnectVdi(iso, true)
err = instance.ConnectVdi(iso, CD)
if err != nil {
ui.Error(fmt.Sprintf("Unable to connect ISO VDI: %s", err.Error()))
return multistep.ActionHalt