@@ -396,7 +396,7 @@ private String cleanUpDatastore(Command cmd, HostDatastoreSystemMO hostDatastore
396396 if (vmName != null ) {
397397 String workerVmName = hostService .getWorkerName (context , cmd , 0 );
398398
399- VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName );
399+ VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName , null );
400400
401401 if (vmMo == null ) {
402402 throw new Exception ("Unable to create a worker VM for volume creation" );
@@ -786,7 +786,7 @@ public Answer cloneVolumeFromBaseTemplate(CopyCommand cmd) {
786786 String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
787787
788788 try {
789- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
789+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
790790 if (vmMo == null ) {
791791 throw new Exception ("Unable to create a dummy VM for volume creation" );
792792 }
@@ -986,7 +986,7 @@ private Pair<String, String> copyVolumeToSecStorage(VmwareHostService hostServic
986986 if (vmMo == null || VmwareResource .getVmState (vmMo ) == PowerState .PowerOff ) {
987987 // create a dummy worker vm for attaching the volume
988988 DatastoreMO dsMo = new DatastoreMO (hyperHost .getContext (), morDs );
989- workerVm = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName );
989+ workerVm = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVmName , null );
990990
991991 if (workerVm == null ) {
992992 String msg = "Unable to create worker VM to execute CopyVolumeCommand" ;
@@ -1120,7 +1120,7 @@ private Ternary<String, Long, Long> createTemplateFromVolume(VirtualMachineMO vm
11201120
11211121 // 4 MB is the minimum requirement for VM memory in VMware
11221122 Pair <VirtualMachineMO , String []> cloneResult =
1123- vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()));
1123+ vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()), null );
11241124 clonedVm = cloneResult .first ();
11251125
11261126 clonedVm .exportVm (secondaryMountPoint + "/" + installPath , templateUniqueName , false , false );
@@ -1518,7 +1518,7 @@ private void exportManagedStorageSnapshotToTemplate(CopyCommand cmd, String inst
15181518 ManagedObjectReference dsMor = hyperHost .findDatastoreByName (dsFile .getDatastoreName ());
15191519 DatastoreMO dsMo = new DatastoreMO (context , dsMor );
15201520
1521- VirtualMachineMO workerVM = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName );
1521+ VirtualMachineMO workerVM = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName , null );
15221522
15231523 if (workerVM == null ) {
15241524 throw new CloudRuntimeException ("Failed to find the newly created worker VM: " + workerVMName );
@@ -1683,9 +1683,11 @@ private Pair<String, String[]> exportVolumeToSecondaryStroage(VirtualMachineMO v
16831683 throw new Exception (msg );
16841684 }
16851685
1686+ String virtualHardwareVersion = String .valueOf (vmMo .getVirtualHardwareVersion ());
1687+
16861688 // 4 MB is the minimum requirement for VM memory in VMware
16871689 Pair <VirtualMachineMO , String []> cloneResult =
1688- vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()));
1690+ vmMo .cloneFromCurrentSnapshot (workerVmName , 0 , 4 , volumeDeviceInfo .second (), VmwareHelper .getDiskDeviceDatastore (volumeDeviceInfo .first ()), virtualHardwareVersion );
16891691 clonedVm = cloneResult .first ();
16901692 String disks [] = cloneResult .second ();
16911693
@@ -1761,7 +1763,7 @@ public Answer backupSnapshot(CopyCommand cmd) {
17611763 if (vmMo == null ) {
17621764 dsMo = new DatastoreMO (hyperHost .getContext (), morDs );
17631765 workerVMName = hostService .getWorkerName (context , cmd , 0 );
1764- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName );
1766+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , workerVMName , null );
17651767 if (vmMo == null ) {
17661768 throw new Exception ("Failed to find the newly create or relocated VM. vmName: " + workerVMName );
17671769 }
@@ -2214,7 +2216,7 @@ public Answer createVolume(CreateObjectCommand cmd) {
22142216 String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
22152217 try {
22162218 s_logger .info ("Create worker VM " + dummyVmName );
2217- vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
2219+ vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
22182220 if (vmMo == null ) {
22192221 throw new Exception ("Unable to create a dummy VM for volume creation" );
22202222 }
@@ -2842,7 +2844,7 @@ private void createVmdk(Command cmd, DatastoreMO dsMo, String vmdkDatastorePath,
28422844
28432845 String dummyVmName = hostService .getWorkerName (context , cmd , 0 );
28442846
2845- VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName );
2847+ VirtualMachineMO vmMo = HypervisorHostHelper .createWorkerVM (hyperHost , dsMo , dummyVmName , null );
28462848
28472849 if (vmMo == null ) {
28482850 throw new Exception ("Unable to create a dummy VM for volume creation" );
0 commit comments