@@ -454,7 +454,7 @@ public Answer cloneVolumeFromBaseTemplate(CopyCommand cmd) {
454
454
String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
455
455
456
456
try {
457
- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
457
+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
458
458
if (vmMo == null ) {
459
459
throw new Exception ("Unable to create a dummy VM for volume creation" );
460
460
}
@@ -640,7 +640,7 @@ private Pair<String, String> copyVolumeToSecStorage(VmwareHostService hostServic
640
640
if (vmMo == null || VmwareResource .getVmState (vmMo ) == PowerState .PowerOff ) {
641
641
// create a dummy worker vm for attaching the volume
642
642
DatastoreMO dsMo = new DatastoreMO (hyperHost .getContext (), morDs );
643
- workerVm = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName );
643
+ workerVm = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName , null );
644
644
645
645
if (workerVm == null ) {
646
646
String msg = "Unable to create worker VM to execute CopyVolumeCommand" ;
@@ -774,7 +774,7 @@ private Ternary<String, Long, Long> createTemplateFromVolume(VirtualMachineMO vm
774
774
775
775
// 4 MB is the minimum requirement for VM memory in VMware
776
776
Pair <VirtualMachineMO , String []> cloneResult =
777
- vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()));
777
+ vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()), null );
778
778
clonedVm = cloneResult .first ();
779
779
780
780
clonedVm .exportVm (secondaryMountPoint + "/" + installPath , templateUniqueName , false , false );
@@ -1098,9 +1098,11 @@ private Pair<String, String[]> exportVolumeToSecondaryStroage(VirtualMachineMO v
1098
1098
throw new Exception (msg );
1099
1099
}
1100
1100
1101
+ String virtualHardwareVersion = String .valueOf (vmMo .getVirtualHardwareVersion ());
1102
+
1101
1103
// 4 MB is the minimum requirement for VM memory in VMware
1102
1104
Pair <VirtualMachineMO , String []> cloneResult =
1103
- vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()));
1105
+ vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()), virtualHardwareVersion );
1104
1106
clonedVm = cloneResult .first ();
1105
1107
String disks [] = cloneResult .second ();
1106
1108
@@ -1175,7 +1177,7 @@ public Answer backupSnapshot(CopyCommand cmd) {
1175
1177
if (vmMo == null ) {
1176
1178
dsMo = new DatastoreMO (hyperHost .getContext (), morDs );
1177
1179
workerVMName = hostService .getWorkerName (context , cmd , 0 );
1178
- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName );
1180
+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName , null );
1179
1181
if (vmMo == null ) {
1180
1182
throw new Exception ("Failed to find the newly create or relocated VM. vmName: " + workerVMName );
1181
1183
}
@@ -1563,7 +1565,7 @@ public Answer createVolume(CreateObjectCommand cmd) {
1563
1565
String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
1564
1566
try {
1565
1567
s_logger .info ("Create worker VM " + dummyVmName );
1566
- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
1568
+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
1567
1569
if (vmMo == null ) {
1568
1570
throw new Exception ("Unable to create a dummy VM for volume creation" );
1569
1571
}
@@ -1910,7 +1912,7 @@ private void createVmdk(Command cmd, DatastoreMO dsMo, String vmdkDatastorePath,
1910
1912
1911
1913
String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
1912
1914
1913
- VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
1915
+ VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
1914
1916
1915
1917
if (vmMo == null ) {
1916
1918
throw new Exception ("Unable to create a dummy VM for volume creation" );
0 commit comments