mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(host): guest sync update cdrom bootindex (#17026)
generate qemu cmdline check cdrom path before generate bootindex params Signed-off-by: wanyaoqi <d3lx.yq@gmail.com>
This commit is contained in:
@@ -303,6 +303,7 @@ func (d *SGuestDiskSyncTask) OnEjectCdromContentSucc(cdName string) {
|
||||
for i, cdrom := range d.guest.Desc.Cdroms {
|
||||
if cdrom.Id == cdName {
|
||||
d.guest.Desc.Cdroms[i].Path = ""
|
||||
d.guest.Desc.Cdroms[i].BootIndex = nil
|
||||
}
|
||||
}
|
||||
d.syncDisksConf()
|
||||
|
||||
@@ -344,8 +344,10 @@ func generateCdromOptions(optDrv QemuOptions, cdroms []*desc.SGuestCdrom) []stri
|
||||
opts = append(opts, optDrv.Drive(driveOpt))
|
||||
devOpt := fmt.Sprintf("%s,drive=%s,bus=ide.1",
|
||||
cdrom.Ide.DevType, cdrom.Id)
|
||||
if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 {
|
||||
devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex)
|
||||
if len(cdromPath) > 0 {
|
||||
if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 {
|
||||
devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex)
|
||||
}
|
||||
}
|
||||
// TODO: ,bus=ide.%d,unit=%d
|
||||
//, cdrom.Ide.Bus, cdrom.Ide.Unit)
|
||||
@@ -356,8 +358,10 @@ func generateCdromOptions(optDrv QemuOptions, cdroms []*desc.SGuestCdrom) []stri
|
||||
|
||||
devOpt := fmt.Sprintf("%s,drive=%s", cdrom.Scsi.DevType, cdrom.Id)
|
||||
devOpt += desc.OptionsToString(cdrom.Scsi.Options)
|
||||
if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 {
|
||||
devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex)
|
||||
if len(cdromPath) > 0 {
|
||||
if cdrom.BootIndex != nil && *cdrom.BootIndex >= 0 {
|
||||
devOpt += fmt.Sprintf(",bootindex=%d", *cdrom.BootIndex)
|
||||
}
|
||||
}
|
||||
opts = append(opts, optDrv.Device(devOpt))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user