Maor Lipchuk has uploaded a new change for review.

Change subject: core: Add snapshot to the OVF generation
......................................................................

core: Add snapshot to the OVF generation

Adding also snapshots when building the VM OVF.
We are already incrementing the generation in the end command when
deleting/creating a new snapshot

Change-Id: I8ba05c2e362fb9b22d6b4fb5a14698ad99d7bd1e
Bug-Url: https://bugzilla.redhat.com/1069780
Signed-off-by: Maor Lipchuk <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfDataUpdaterTest.java
2 files changed, 29 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/47/25947/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
index 12e3b26..ddfda87 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/OvfDataUpdater.java
@@ -19,6 +19,8 @@
 import org.ovirt.engine.core.common.businessentities.Disk;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
+import org.ovirt.engine.core.common.businessentities.Snapshot;
+import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotStatus;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainOvfInfo;
 import 
org.ovirt.engine.core.common.businessentities.StorageDomainOvfInfoStatus;
@@ -43,6 +45,7 @@
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector;
 import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase;
+import org.ovirt.engine.core.dao.SnapshotDao;
 import org.ovirt.engine.core.dao.StorageDomainDAO;
 import org.ovirt.engine.core.dao.StorageDomainOvfInfoDao;
 import org.ovirt.engine.core.dao.StoragePoolDAO;
@@ -368,7 +371,8 @@
         for (VM vm : vms) {
             if (VMStatus.ImageLocked != vm.getStatus()) {
                 updateVmDisksFromDb(vm);
-                if (verifyDisksNotLocked(vm.getDiskList())) {
+                
vm.setSnapshots(getSnapshotDao().getAllWithConfiguration(vm.getId()));
+                if (verifyDisksNotLocked(vm.getDiskList()) && 
verifySnapshotsNotLocked(vm.getSnapshots())) {
                     loadVmData(vm);
                     Long currentDbGeneration = 
getVmStaticDao().getDbGeneration(vm.getId());
                     // currentDbGeneration can be null in case that the vm was 
deleted during the run of OvfDataUpdater.
@@ -396,6 +400,18 @@
     protected boolean verifyDisksNotLocked(List<DiskImage> disks) {
         for (DiskImage disk : disks) {
             if (disk.getImageStatus() == ImageStatus.LOCKED) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Returns true if none of the given snapshots is in status 'LOCKED', 
otherwise false.
+     */
+    protected boolean verifySnapshotsNotLocked(List<Snapshot> snapshots) {
+        for (Snapshot snapshot : snapshots) {
+            if (snapshot.getStatus() == SnapshotStatus.LOCKED) {
                 return false;
             }
         }
@@ -515,6 +531,10 @@
         return DbFacade.getInstance().getVmStaticDao();
     }
 
+    protected SnapshotDao getSnapshotDao() {
+        return DbFacade.getInstance().getSnapshotDao();
+    }
+
     /**
      * Init the lists contain the processed info.
      */
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfDataUpdaterTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfDataUpdaterTest.java
index 128223e..8597a74 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfDataUpdaterTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/OvfDataUpdaterTest.java
@@ -38,6 +38,7 @@
 import org.mockito.stubbing.Answer;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
 import org.ovirt.engine.core.common.businessentities.ImageStatus;
+import org.ovirt.engine.core.common.businessentities.Snapshot;
 import org.ovirt.engine.core.common.businessentities.StorageDomain;
 import org.ovirt.engine.core.common.businessentities.StorageDomainOvfInfo;
 import 
org.ovirt.engine.core.common.businessentities.StorageDomainOvfInfoStatus;
@@ -55,6 +56,7 @@
 import org.ovirt.engine.core.common.utils.Pair;
 import org.ovirt.engine.core.compat.Guid;
 import org.ovirt.engine.core.compat.KeyValuePairCompat;
+import org.ovirt.engine.core.dao.SnapshotDao;
 import org.ovirt.engine.core.dao.StorageDomainDAO;
 import org.ovirt.engine.core.dao.StorageDomainOvfInfoDao;
 import org.ovirt.engine.core.dao.StoragePoolDAO;
@@ -82,6 +84,9 @@
 
     @Mock
     private VmStaticDAO vmStaticDAO;
+
+    @Mock
+    private SnapshotDao snapshotDAO;
 
     @Mock
     private VmTemplateDAO vmTemplateDAO;
@@ -129,6 +134,7 @@
         
doReturn(vmAndTemplatesGenerationsDAO).when(updater).getVmAndTemplatesGenerationsDao();
         doReturn(vmDAO).when(updater).getVmDao();
         doReturn(vmStaticDAO).when(updater).getVmStaticDao();
+        doReturn(snapshotDAO).when(updater).getSnapshotDao();
         doReturn(vmTemplateDAO).when(updater).getVmTemplateDao();
         
doReturn(storageDomainOvfInfoDao).when(updater).getStorageDomainOvfInfoDao();
         doReturn(storageDomainDAO).when(updater).getStorageDomainDao();
@@ -145,6 +151,8 @@
 
         // dao related mocks.
         doReturn(1L).when(vmStaticDAO).getDbGeneration(any(Guid.class));
+        List<Snapshot> snapshots = new ArrayList<Snapshot>();
+        
doReturn(snapshots).when(snapshotDAO).getAllWithConfiguration(any(Guid.class));
         mockAnswers();
     }
 


-- 
To view, visit http://gerrit.ovirt.org/25947
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8ba05c2e362fb9b22d6b4fb5a14698ad99d7bd1e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Maor Lipchuk <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to