Arik Hadas has uploaded a new change for review. Change subject: core: [WIP] restore memory from snapshot on run vm ......................................................................
core: [WIP] restore memory from snapshot on run vm If we're going to run a VM which is not suspended and its active snapshot contains memory, we set the memory volume that the active snapshot points to as the initial memory state of the VM. Change-Id: Id382ff479827af96fc529b57ec0ea1b0b7d21818 Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java 2 files changed, 11 insertions(+), 5 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/60/14860/1 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 03d6c5e..bdc5b51 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 @@ -37,6 +37,7 @@ import org.ovirt.engine.core.common.businessentities.Entities; import org.ovirt.engine.core.common.businessentities.ImageFileType; import org.ovirt.engine.core.common.businessentities.RepoFileMetaData; +import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.Snapshot.SnapshotType; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; @@ -62,6 +63,7 @@ import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.core.dal.VdcBllMessages; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.job.ExecutionMessageDirector; import org.ovirt.engine.core.utils.NetworkUtils; @@ -444,11 +446,17 @@ } /** - * Initial the parameters for the VDSM command for VM creation + * Initial the parameters for the VDSM command of VM creation * @return the VDS create VM parameters */ protected CreateVmVDSCommandParameters initVdsCreateVmParams() { - return new CreateVmVDSCommandParameters(getVdsId(), getVm()); + VM vmToBeCreated = getVm(); + if (vmToBeCreated.getStatus() != VMStatus.Suspended) { + Snapshot activeSnapshotOfVmToBeCreated = + DbFacade.getInstance().getSnapshotDao().get(vmToBeCreated.getId(), SnapshotType.ACTIVE); + vmToBeCreated.setHibernationVolHandle(activeSnapshotOfVmToBeCreated.getMemoryVolume()); + } + return new CreateVmVDSCommandParameters(getVdsId(), vmToBeCreated); } @Override diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java index 6b7e672..c156087 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java @@ -16,7 +16,6 @@ import org.ovirt.engine.core.common.businessentities.Disk; import org.ovirt.engine.core.common.businessentities.DisplayType; import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmBase; import org.ovirt.engine.core.common.businessentities.VmType; import org.ovirt.engine.core.common.businessentities.comparators.DiskImageByDiskAliasComparator; @@ -95,8 +94,7 @@ } createInfo.put(VdsProperties.niceLevel, String.valueOf(vm.getNiceLevel())); - if (vm.getStatus() == VMStatus.Suspended - && !StringUtils.isEmpty(vm.getHibernationVolHandle())) { + if (!StringUtils.isEmpty(vm.getHibernationVolHandle())) { createInfo.put(VdsProperties.hiberVolHandle, vm.getHibernationVolHandle()); } -- To view, visit http://gerrit.ovirt.org/14860 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id382ff479827af96fc529b57ec0ea1b0b7d21818 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
