Skip to content

Commit b5cd9c8

Browse files
author
Pearl Dsilva
committed
fix test
1 parent a7b9a41 commit b5cd9c8

2 files changed

Lines changed: 42 additions & 3 deletions

File tree

engine/storage/volume/src/test/java/org/apache/cloudstack/storage/volume/VolumeServiceImplClvmTest.java

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,49 @@ public void testIsLockTransferRequired_NonCLVMPool() {
167167
}
168168

169169
@Test
170-
public void testIsLockTransferRequired_DifferentPools() {
170+
public void testIsLockTransferRequired_DifferentPools_LockOnDifferentHost() {
171+
when(volumeService.findVolumeLockHost(volumeInfoMock)).thenReturn(HOST_ID_2);
172+
173+
assertTrue(volumeService.isLockTransferRequired(
174+
volumeInfoMock, StoragePoolType.CLVM, StoragePoolType.CLVM,
175+
POOL_ID_1, POOL_ID_2, HOST_ID_1));
176+
}
177+
178+
@Test
179+
public void testIsLockTransferRequired_DifferentPools_LockOnSameHost() {
180+
when(volumeService.findVolumeLockHost(volumeInfoMock)).thenReturn(HOST_ID_1);
181+
182+
assertFalse(volumeService.isLockTransferRequired(
183+
volumeInfoMock, StoragePoolType.CLVM, StoragePoolType.CLVM,
184+
POOL_ID_1, POOL_ID_2, HOST_ID_1));
185+
}
186+
187+
@Test
188+
public void testIsLockTransferRequired_DifferentPools_NoLockHost() {
189+
when(volumeService.findVolumeLockHost(volumeInfoMock)).thenReturn(null);
190+
171191
assertFalse(volumeService.isLockTransferRequired(
172192
volumeInfoMock, StoragePoolType.CLVM, StoragePoolType.CLVM,
173193
POOL_ID_1, POOL_ID_2, HOST_ID_1));
174194
}
175195

176196
@Test
177-
public void testIsLockTransferRequired_NullPoolIds() {
197+
public void testIsLockTransferRequired_NullPoolIds_LockOnDifferentHost() {
198+
when(volumeService.findVolumeLockHost(volumeInfoMock)).thenReturn(HOST_ID_2);
199+
200+
assertTrue(volumeService.isLockTransferRequired(
201+
volumeInfoMock, StoragePoolType.CLVM, StoragePoolType.CLVM,
202+
null, POOL_ID_1, HOST_ID_1));
203+
204+
assertTrue(volumeService.isLockTransferRequired(
205+
volumeInfoMock, StoragePoolType.CLVM, StoragePoolType.CLVM,
206+
POOL_ID_1, null, HOST_ID_1));
207+
}
208+
209+
@Test
210+
public void testIsLockTransferRequired_NullPoolIds_NoLockHost() {
211+
when(volumeService.findVolumeLockHost(volumeInfoMock)).thenReturn(null);
212+
178213
assertFalse(volumeService.isLockTransferRequired(
179214
volumeInfoMock, StoragePoolType.CLVM, StoragePoolType.CLVM,
180215
null, POOL_ID_1, HOST_ID_1));

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -568,7 +568,11 @@ public Answer cloneVolumeFromBaseTemplate(final CopyCommand cmd) {
568568

569569
final VolumeObjectTO newVol = new VolumeObjectTO();
570570
newVol.setPath(vol.getName());
571-
newVol.setSize(volume.getSize());
571+
if (StoragePoolType.CLVM_NG.equals(primaryStore.getPoolType()) && vol != null && vol.getVirtualSize() > 0) {
572+
newVol.setSize(vol.getVirtualSize());
573+
} else {
574+
newVol.setSize(volume.getSize());
575+
}
572576
if (vol.getQemuEncryptFormat() != null) {
573577
newVol.setEncryptFormat(vol.getQemuEncryptFormat().toString());
574578
}

0 commit comments

Comments
 (0)