From 0c9500e815eee63d53d589eb5f7783ff7b37a9ad Mon Sep 17 00:00:00 2001 From: Edison Su Date: Wed, 19 Jan 2011 04:53:04 -0500 Subject: [PATCH] bug 8022: fix attaching multiple disks, after restart/rebooting status 8022: resolved fixed --- .../resource/computing/LibvirtComputingResource.java | 8 ++------ .../com/cloud/agent/resource/computing/LibvirtVMDef.java | 7 +++++++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java index a508e4ea29b..e5319d555d8 100644 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtComputingResource.java @@ -2257,12 +2257,8 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv disk.defISODisk(volPath); } } else { - int devId = 0; - if (volume.getType() == VolumeType.ROOT) { - devId = 0; - } else { - devId = 1; - } + int devId = (int)volume.getDeviceId(); + disk.defFileBasedDisk(volume.getPath(), devId, diskBusType, DiskDef.diskFmtType.QCOW2); } diff --git a/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java b/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java index f6c78e9155d..48cf88a5fc7 100644 --- a/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java +++ b/agent/src/com/cloud/agent/resource/computing/LibvirtVMDef.java @@ -303,7 +303,12 @@ public class LibvirtVMDef { _bus = bus; } + /*device id starting from 0, but iso is 3*/ private String getDevLabel(int devId, diskBus bus) { + if ( devId >= 2 ) { + devId++; + } + char suffix = (char)('a' + devId); if (bus == diskBus.SCSI) { return "sd" + suffix; @@ -311,7 +316,9 @@ public class LibvirtVMDef { return "vd" + suffix; } return "hd" + suffix; + } + public void defFileBasedDisk(String filePath, int devId, diskBus bus, diskFmtType diskFmtType) { _diskType = diskType.FILE;