Allon Mureinik has uploaded a new change for review. Change subject: core: ImportVm: Add test for addImagesAndSnapshots ......................................................................
core: ImportVm: Add test for addImagesAndSnapshots Added a test for the addImagesAndSnapshots() method, when the copyCollapse parameter is set to true. Change-Id: I5c9725422fd525bc4c4812313e74baee87b709ea Signed-off-by: Allon Mureinik <amure...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java 2 files changed, 46 insertions(+), 7 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/30/9630/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java index 9e976f7..c6b295d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java @@ -605,7 +605,7 @@ } } - private void addVmImagesAndSnapshots() { + protected void addVmImagesAndSnapshots() { Map<Guid, List<DiskImage>> images = getImagesLeaf(getVm().getImages()); if (getParameters().getCopyCollapse()) { @@ -637,13 +637,13 @@ } } disk.setcreation_date(new Date()); - BaseImagesCommand.saveImage(disk); + saveImage(disk); ImagesHandler.setDiskAlias(disk, getVm(), aliasCounter); - getBaseDiskDao().save(disk); + saveBaseDisk(disk); saveDiskImageDynamic(disk); } - Snapshot snapshot = new SnapshotsManager().addActiveSnapshot(snapshotId, getVm(), getCompensationContext()); + Snapshot snapshot = addActiveSnapshot(snapshotId); getVm().getSnapshots().clear(); getVm().getSnapshots().add(snapshot); } else { @@ -652,7 +652,7 @@ diskGuidList.add(disk.getId()); imageGuidList.add(disk.getImageId()); disk.setactive(false); - BaseImagesCommand.saveImage(disk); + saveImage(disk); snapshotId = disk.getvm_snapshot_id().getValue(); if (!getSnapshotDao().exists(getVm().getId(), snapshotId)) { getSnapshotDao().save( @@ -674,7 +674,7 @@ snapshotId = disk.getvm_snapshot_id().getValue(); disk.setactive(true); getImageDao().update(disk.getImage()); - getBaseDiskDao().save(disk); + saveBaseDisk(disk); } // Update active snapshot's data, since it was inserted as a regular snapshot. @@ -690,11 +690,21 @@ } } + /** Saves the base disk object */ + protected void saveBaseDisk(DiskImage disk) { + getBaseDiskDao().save(disk); + } + + /** Save the entire image, including it's storage mapping */ + protected void saveImage(DiskImage disk) { + BaseImagesCommand.saveImage(disk); + } + /** * Generates and saves a {@link DiskImageDynamic} for the given {@link #disk}. * @param disk The imported disk **/ - private void saveDiskImageDynamic(DiskImage disk) { + protected void saveDiskImageDynamic(DiskImage disk) { DiskImageDynamic diskDynamic = new DiskImageDynamic(); diskDynamic.setId(disk.getImageId()); diskDynamic.setactual_size(disk.getactual_size()); @@ -702,6 +712,15 @@ } /** + * Saves a new active snapshot for the VM + * @param snapshotId The ID to assign to the snapshot + * @return The generated snapshot + */ + protected Snapshot addActiveSnapshot(Guid snapshotId) { + return new SnapshotsManager().addActiveSnapshot(snapshotId, getVm(), getCompensationContext()); + } + + /** * Go over the snapshots that were read from the export data. If the snapshot exists (since it was added for the * images), it will be updated. If it doesn't exist, it will be saved. */ diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java index 4c4ef87..05b0a43 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/ImportVmCommandTest.java @@ -4,6 +4,7 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.Matchers.any; +import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; @@ -20,6 +21,7 @@ import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DiskImage; +import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.VM; @@ -200,4 +202,22 @@ command.getValidationGroups().toArray(new Class<?>[0])); assertTrue(validate.isEmpty()); } + + /* Tests for addVmImagesAndSnapshots() */ + + @Test + public void testAddVmImagesAndSnapshotsWithCollapse() { + ImportVmParameters params = createParameters(); + params.setCopyCollapse(true); + ImportVmCommand cmd = spy(new ImportVmCommand(params)); + + DiskImage collapsedDisk = params.getVm().getImages().get(1); + + doNothing().when(cmd).saveImage(collapsedDisk); + doNothing().when(cmd).saveBaseDisk(collapsedDisk); + doNothing().when(cmd).saveDiskImageDynamic(collapsedDisk); + doReturn(new Snapshot()).when(cmd).addActiveSnapshot(any(Guid.class)); + cmd.addVmImagesAndSnapshots(); + assertEquals("Disk alias not generated", "testVm_Disk1", collapsedDisk.getDiskAlias()); + } } -- To view, visit http://gerrit.ovirt.org/9630 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5c9725422fd525bc4c4812313e74baee87b709ea Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Allon Mureinik <amure...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches