diff --git a/pkg/apis/compute/disk_const.go b/pkg/apis/compute/disk_const.go index 506dd25217..0b92c53405 100644 --- a/pkg/apis/compute/disk_const.go +++ b/pkg/apis/compute/disk_const.go @@ -65,3 +65,11 @@ const ( ) const DISK_META_EXISTING_PATH = "disk_existing_path" + +const ( + DISK_DRIVER_VIRTIO = "virtio" + DISK_DRIVER_SCSI = "scsi" + DISK_DRIVER_PVSCSI = "pvscsi" + DISK_DRIVER_IDE = "ide" + DISK_DRIVER_SATA = "sata" +) diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 6edfd1f233..529f4cfa97 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -3376,7 +3376,12 @@ func (self *SGuest) attach2Disk(ctx context.Context, disk *SDisk, userCred mccli // depends the last disk of this guest existingDisks, _ := self.GetGuestDisks() if len(existingDisks) > 0 { - driver = existingDisks[len(existingDisks)-1].Driver + prevDisk := existingDisks[len(existingDisks)-1] + if prevDisk.Driver == api.DISK_DRIVER_IDE { + driver = api.DISK_DRIVER_VIRTIO + } else { + driver = prevDisk.Driver + } } else { osProf := self.GetOSProfile() driver = osProf.DiskDriver