@@ -183,7 +183,7 @@ public VMSnapshot takeVMSnapshot(VMSnapshot vmSnapshot) {
183
183
thawAnswer = (FreezeThawVMAnswer ) agentMgr .send (hostId , thawCmd );
184
184
if (thawAnswer != null && thawAnswer .getResult ()) {
185
185
s_logger .info (String .format (
186
- "Virtual machne is thawed. The freeze of virtual machine took %s milliseconds." ,
186
+ "Virtual machine is thawed. The freeze of virtual machine took %s milliseconds." ,
187
187
TimeUnit .MILLISECONDS .convert (elapsedTime (startFreeze ), TimeUnit .NANOSECONDS )));
188
188
}
189
189
} else {
@@ -429,9 +429,14 @@ protected SnapshotInfo createDiskSnapshot(VMSnapshot vmSnapshot, List<SnapshotIn
429
429
String snapshotName = vmSnapshot .getId () + "_" + vol .getUuid ();
430
430
SnapshotVO snapshot = new SnapshotVO (vol .getDataCenterId (), vol .getAccountId (), vol .getDomainId (), vol .getId (), vol .getDiskOfferingId (),
431
431
snapshotName , (short ) Snapshot .Type .GROUP .ordinal (), Snapshot .Type .GROUP .name (), vol .getSize (), vol .getMinIops (), vol .getMaxIops (), Hypervisor .HypervisorType .KVM , null );
432
+ VMSnapshotOptions options = ((VMSnapshotVO ) vmSnapshot ).getOptions ();
433
+ boolean quiescevm = false ;
434
+ if (options != null ) {
435
+ quiescevm = options .needQuiesceVM ();
436
+ }
432
437
433
438
snapshot = snapshotDao .persist (snapshot );
434
- vol .addPayload (setPayload (vol , snapshot ));
439
+ vol .addPayload (setPayload (vol , snapshot , quiescevm ));
435
440
SnapshotInfo snapshotInfo = snapshotDataFactory .getSnapshot (snapshot .getId (), vol .getDataStore ());
436
441
snapshotInfo .addPayload (vol .getpayload ());
437
442
SnapshotStrategy snapshotStrategy = storageStrategyFactory .getSnapshotStrategy (snapshotInfo , SnapshotOperation .TAKE );
@@ -449,14 +454,14 @@ protected SnapshotInfo createDiskSnapshot(VMSnapshot vmSnapshot, List<SnapshotIn
449
454
return snapshotInfo ;
450
455
}
451
456
452
- protected CreateSnapshotPayload setPayload (VolumeInfo vol , SnapshotVO snapshotCreate ) {
457
+ protected CreateSnapshotPayload setPayload (VolumeInfo vol , SnapshotVO snapshotCreate , boolean quiescevm ) {
453
458
CreateSnapshotPayload payload = new CreateSnapshotPayload ();
454
459
payload .setSnapshotId (snapshotCreate .getId ());
455
460
payload .setSnapshotPolicyId (SnapshotVO .MANUAL_POLICY_ID );
456
461
payload .setLocationType (snapshotCreate .getLocationType ());
457
462
payload .setAccount (accountService .getAccount (vol .getAccountId ()));
458
463
payload .setAsyncBackup (false );
459
- payload .setQuiescevm (false );
464
+ payload .setQuiescevm (quiescevm );
460
465
return payload ;
461
466
}
462
467
}
0 commit comments