Shahar Havivi has uploaded a new change for review. Change subject: core: fix broken functionality for cloning snapshot ......................................................................
core: fix broken functionality for cloning snapshot Cannot clone to snapshot due to a bug presented in a8bd1c1e0bcfd1b198ce5b54761ba89bbf384eeb That commit didn't add the functionality to for adding a new VM id for snapshot - causing this action to fail with wrong message. Bug-Url: https://bugzilla.redhat.com/1179145 Change-Id: Ibff3323f31f1458e12d23c9e53a8ff20b97f4621 Signed-off-by: Shahar Havivi <shah...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmParameters.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmFromSnapshotModelBehavior.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java 5 files changed, 37 insertions(+), 14 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/78/36678/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java index 98705e1..c804122 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmCommand.java @@ -128,7 +128,12 @@ public AddVmCommand(T parameters, CommandContext commandContext) { super(parameters, commandContext); // if we came from endAction the VmId is not null - setVmId((parameters.getVmId().equals(Guid.Empty)) ? Guid.newGuid() : parameters.getVmId()); + // newVmid is id that was generated by the user + if (parameters.getVmId().equals(Guid.Empty)) { + setVmId(parameters.getNewVmId() == null ? Guid.newGuid() : parameters.getNewVmId()); + } else { + setVmId(parameters.getVmId()); + } setVmName(parameters.getVm().getName()); parameters.setVmId(getVmId()); setStorageDomainId(getParameters().getStorageDomainId()); @@ -558,15 +563,13 @@ getReturnValue().getCanDoActionMessages())) { return false; } - - // Check if the graphics and display from parameters are supported - if (!VmHandler.isGraphicsAndDisplaySupported(getParameters().getVmStaticData().getOsId(), - VmHandler.getResultingVmGraphics(VmDeviceUtils.getGraphicsTypesOfEntity(getVmTemplateId()), getParameters().getGraphicsDevices()), - vmFromParams.getDefaultDisplayType(), - getReturnValue().getCanDoActionMessages(), - getVdsGroup().getcompatibility_version())) { - return false; - } + /* + * // Check if the graphics and display from parameters are supported if + * (!VmHandler.isGraphicsAndDisplaySupported(getParameters().getVmStaticData().getOsId(), + * VmHandler.getResultingVmGraphics(VmDeviceUtils.getGraphicsTypesOfEntity(getVmTemplateId()), + * getParameters().getGraphicsDevices()), vmFromParams.getDefaultDisplayType(), + * getReturnValue().getCanDoActionMessages(), getVdsGroup().getcompatibility_version())) { return false; } + */ if (!FeatureSupported.isMigrationSupported(getVdsGroup().getArchitecture(), getVdsGroup().getcompatibility_version()) && vmFromParams.getMigrationSupport() != MigrationSupport.PINNED_TO_HOST) { @@ -632,7 +635,8 @@ return false; } - if (vmFromParams.getId() != null && getVmStaticDao().get(vmFromParams.getId()) != null) { + if (getParameters().getNewVmId() != null && + getVmStaticDao().get(getParameters().getNewVmId()) != null) { return failCanDoAction(VdcBllMessages.VM_ID_EXISTS); } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmParameters.java index 6316c32..131c42f 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/AddVmParameters.java @@ -14,6 +14,8 @@ private ArrayList<DiskImage> diskInfoList; private TemplateProvisioningMethod templateProvisioningMethod = TemplateProvisioningMethod.THIN; private Guid diskOperatorAuthzPrincipalDbId; + // newVmId is id that was generated by the user + private Guid newVmId; public AddVmParameters() { } @@ -27,6 +29,14 @@ this(vm.getStaticData()); } + public Guid getNewVmId() { + return newVmId; + } + + public void setNewVmId(Guid id) { + newVmId = id; + } + public ArrayList<DiskImage> getDiskInfoList() { return diskInfoList; } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmFromSnapshotModelBehavior.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmFromSnapshotModelBehavior.java index b67bbf6..755b89e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmFromSnapshotModelBehavior.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/CloneVmFromSnapshotModelBehavior.java @@ -23,6 +23,9 @@ getModel().getProvisioning().setEntity(true); getModel().getProvisioning().setIsAvailable(true); getModel().getProvisioning().setIsChangable(false); + getModel().getVmId().setIsAvailable(true); + getModel().getVmId().setIsChangable(true); + getModel().getVmId().setEntity(""); initDisks(); initStorageDomains(); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java index 753917b..78aafb6 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmListModel.java @@ -2126,9 +2126,6 @@ model.startProgress(null); VM vm = getcurrentVm(); - if (!StringHelper.isNullOrEmpty(model.getVmId().getEntity())) { - vm.setId(new Guid(model.getVmId().getEntity())); - } vm.setUseLatestVersion(model.getTemplate().getSelectedItem() instanceof LatestVmTemplate); AddVmParameters parameters = new AddVmParameters(vm); @@ -2141,6 +2138,9 @@ setVmWatchdogToParams(model, parameters); setRngDeviceToParams(model, parameters); setGraphicsDevicesToParams(model, parameters); + if (!StringHelper.isNullOrEmpty(model.getVmId().getEntity())) { + parameters.setNewVmId(new Guid(model.getVmId().getEntity())); + } Frontend.getInstance().runAction( model.getProvisioning().getEntity() ? VdcActionType.AddVmFromTemplate : VdcActionType.AddVm, diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java index 94a52f3..cffd926 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java @@ -7,6 +7,7 @@ import java.util.List; import com.google.gwt.i18n.client.DateTimeFormat; + import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.AddVmFromSnapshotParameters; import org.ovirt.engine.core.common.action.RemoveSnapshotParameters; @@ -27,6 +28,7 @@ import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.ui.frontend.AsyncQuery; import org.ovirt.engine.ui.frontend.Frontend; @@ -721,6 +723,10 @@ parameters.setVirtioScsiEnabled(model.getIsVirtioScsiEnabled().getEntity()); parameters.setBalloonEnabled(model.getMemoryBalloonDeviceEnabled().getEntity()); + if (!StringHelper.isNullOrEmpty(model.getVmId().getEntity())) { + parameters.setNewVmId(new Guid(model.getVmId().getEntity())); + } + model.startProgress(null); Frontend.getInstance().runAction(VdcActionType.AddVmFromSnapshot, parameters, -- To view, visit http://gerrit.ovirt.org/36678 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibff3323f31f1458e12d23c9e53a8ff20b97f4621 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Shahar Havivi <shav...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches