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

Reply via email to