Arik Hadas has uploaded a new change for review.

Change subject: core: fix memory removal
......................................................................

core: fix memory removal

Change-Id: I75223593f0f9a299d60693fccdefed64419d4bd3
Signed-off-by: Arik Hadas <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
2 files changed, 16 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/70/37670/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
index 859b3f9..19c8aab 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/HibernateVmCommand.java
@@ -110,8 +110,8 @@
 
     private Guid createMemoryMetadataDisk() {
         DiskImage image = new DiskImage();
-        image.setDiskAlias(String.format("%s_Hibernation_metadata", 
getVm().getName()));
-        image.setDescription("Meta-data for hibernated VM");
+        image.setDiskAlias(String.format("%s_hibernation_metadata", 
getVm().getName()));
+        image.setDescription("meta-data for hibernated VM");
         image.setSize(MemoryUtils.META_DATA_SIZE_IN_BYTES);
         image.setVolumeType(VolumeType.Sparse);
         image.setvolumeFormat(VolumeFormat.COW);
@@ -121,8 +121,8 @@
 
     private Guid createMemoryDumpDisk() {
         DiskImage image = new DiskImage();
-        image.setDiskAlias(String.format("%s_Hibernation_dump", 
getVm().getName()));
-        image.setDescription("Memory dump for hibernated VM");
+        image.setDiskAlias(String.format("%s_hibernation_dump", 
getVm().getName()));
+        image.setDescription("memory dump for hibernated VM");
         image.setSize(getVm().getTotalMemorySizeInBytes());
         image.setVolumeType(getMemoryVolumeType());
         image.setvolumeFormat(VolumeFormat.RAW);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
index 6a63925..fbc241c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
@@ -32,6 +32,7 @@
 import org.ovirt.engine.core.common.action.IdParameters;
 import org.ovirt.engine.core.common.action.LockProperties;
 import org.ovirt.engine.core.common.action.LockProperties.Scope;
+import org.ovirt.engine.core.common.action.RemoveDiskParameters;
 import org.ovirt.engine.core.common.action.RunVmParams;
 import org.ovirt.engine.core.common.action.VdcActionType;
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
@@ -1052,12 +1053,21 @@
 
         getSnapshotDAO().removeMemoryFromActiveSnapshot(getVmId());
 
-        // If the memory volumes are not used by any other snapshot, we can 
remove them
-        if (getSnapshotDAO().getNumOfSnapshotsByMemory(memory) == 0) {
+        if (getFlow() == RunVmFlow.RESUME_HIBERNATE) {
+            removeHibernationDisks(memory);
+        }
+        //If the memory volumes are not used by any other snapshot, we can 
remove them
+        else if (getSnapshotDAO().getNumOfSnapshotsByMemory(memory) == 0) {
             removeMemoryVolumes(memory, getActionType(), true);
         }
     }
 
+    private void removeHibernationDisks(String memory) {
+        String[] guids = memory.split(",");
+        runInternalAction(VdcActionType.RemoveDisk, new 
RemoveDiskParameters(new Guid(guids[2])));
+        runInternalAction(VdcActionType.RemoveDisk, new 
RemoveDiskParameters(new Guid(guids[4])));
+    }
+
     /**
      * @return true if the VM should run as stateless
      */


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

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

Reply via email to