Leonardo Bianconi has uploaded a new change for review. Change subject: userportal, webadmin: Prevent snapshot in ppc64 ......................................................................
userportal, webadmin: Prevent snapshot in ppc64 This change disables memory snapshot in the frontend for clusters with architecture that doesn't support it. The option for create memory snapshot is now hidden for these cases. All logic was added in conjunction with the snapshot validation from the parameter ConfigurationValues.MemorySnapshotSupported. Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1061774 Change-Id: I148f0a9356086b31e66d4f5dd6eab6afc642cada Signed-off-by: Leonardo Bianconi <leonardo.bianc...@eldorado.org.br> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmSnapshotListModel.java 4 files changed, 70 insertions(+), 38 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/79/25079/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java index 5fcdc6a..30d141f 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/popup/vm/VmSnapshotCreatePopupWidget.java @@ -1,20 +1,9 @@ package org.ovirt.engine.ui.common.widget.uicommon.popup.vm; -import com.google.gwt.core.client.GWT; -import com.google.gwt.editor.client.SimpleBeanEditorDriver; -import com.google.gwt.safehtml.shared.SafeHtml; -import com.google.gwt.safehtml.shared.SafeHtmlUtils; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.AbstractImagePrototype; -import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.HTML; -import com.google.gwt.user.client.ui.Label; -import com.google.gwt.user.client.ui.ScrollPanel; -import com.google.gwt.user.client.ui.SimplePanel; +import java.util.ArrayList; + import org.ovirt.engine.core.common.businessentities.DiskImage; import org.ovirt.engine.core.common.businessentities.VM; -import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.CommonApplicationResources; import org.ovirt.engine.ui.common.CommonApplicationTemplates; @@ -34,7 +23,18 @@ import org.ovirt.engine.ui.uicompat.IEventListener; import org.ovirt.engine.ui.uicompat.PropertyChangedEventArgs; -import java.util.ArrayList; +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.safehtml.shared.SafeHtml; +import com.google.gwt.safehtml.shared.SafeHtmlUtils; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.AbstractImagePrototype; +import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.HTML; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.ScrollPanel; +import com.google.gwt.user.client.ui.SimplePanel; public class VmSnapshotCreatePopupWidget extends AbstractModelBoundPopupWidget<SnapshotModel> { @@ -150,9 +150,7 @@ } boolean memorySnapshotSupported = - (Boolean) AsyncDataProvider.getConfigValuePreConverted( - ConfigurationValues.MemorySnapshotSupported, - vm.getVdsGroupCompatibilityVersion().toString()); + AsyncDataProvider.isMemorySnapshotSupported(vm); memoryEditor.setVisible(memorySnapshotSupported && vm.isRunning()); // The memory option is enabled by default, so in case its checkbox // is not visible, we should disable it explicitly diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java index 5d82132..d65c364 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmSnapshotListModelTable.java @@ -1,17 +1,13 @@ package org.ovirt.engine.ui.common.widget.uicommon.vm; -import com.google.gwt.core.client.GWT; -import com.google.gwt.core.client.Scheduler; -import com.google.gwt.event.shared.EventBus; -import com.google.gwt.uibinder.client.UiBinder; -import com.google.gwt.uibinder.client.UiField; -import com.google.gwt.user.client.ui.SimplePanel; -import com.google.gwt.user.client.ui.Widget; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; + import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.Snapshot; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.queries.CommandVersionsInfo; -import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.ui.common.CommonApplicationConstants; import org.ovirt.engine.ui.common.CommonApplicationMessages; @@ -32,9 +28,13 @@ import org.ovirt.engine.ui.uicompat.EventArgs; import org.ovirt.engine.ui.uicompat.IEventListener; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; +import com.google.gwt.core.client.GWT; +import com.google.gwt.core.client.Scheduler; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.user.client.ui.SimplePanel; +import com.google.gwt.user.client.ui.Widget; public class VmSnapshotListModelTable<L extends VmSnapshotListModel> extends AbstractModelBoundTableWidget<Snapshot, L> { @@ -133,9 +133,7 @@ constants.statusSnapshot(), true, "75px"); //$NON-NLS-1$ boolean memorySnapshotSupported = - (Boolean) AsyncDataProvider.getConfigValuePreConverted( - ConfigurationValues.MemorySnapshotSupported, - vm.getVdsGroupCompatibilityVersion().toString()); + getModel().getIsMemorySnapshotSupported(); getTable().ensureColumnPresent(SnapshotsViewColumns.memoryColumn, constants.memorySnapshot(), memorySnapshotSupported, "55px"); //$NON-NLS-1$ diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java index 2d55a49..c95d178 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java @@ -305,6 +305,26 @@ callback); } + /** + * Check if memory snapshot is supported + * @param vm + * @return + */ + public static boolean isMemorySnapshotSupported(VM vm) { + if (vm == null) { + return false; + } + + boolean archMemorySnapshotSupported = isMemorySnapshotSupportedByArchitecture( + vm.getClusterArch(), + vm.getVdsGroupCompatibilityVersion()); + + return ((Boolean) getConfigValuePreConverted( + ConfigurationValues.MemorySnapshotSupported, + vm.getVdsGroupCompatibilityVersion().toString())) + && archMemorySnapshotSupported; + } + private static void initSuspendSupportMap() { AsyncQuery callback = new AsyncQuery(); callback.asyncCallback = new INewAsyncCallback() { 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 58a4541..dde0330 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 @@ -4,6 +4,7 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; + import org.ovirt.engine.core.common.VdcActionUtils; import org.ovirt.engine.core.common.action.AddVmFromSnapshotParameters; import org.ovirt.engine.core.common.action.RemoveSnapshotParameters; @@ -21,7 +22,6 @@ import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.businessentities.VmTemplate; -import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; @@ -201,6 +201,22 @@ return isCloneVmSupported; } + private boolean isMemorySnapshotSupported; + + public boolean getIsMemorySnapshotSupported() + { + return isMemorySnapshotSupported; + } + + private void setIsMemorySnapshotSupported(boolean value) + { + if (isMemorySnapshotSupported != value) + { + isMemorySnapshotSupported = value; + onPropertyChanged(new PropertyChangedEventArgs("IsMemorySnapshotSupported")); //$NON-NLS-1$ + } + } + private void setIsCloneVmSupported(boolean value) { if (isCloneVmSupported != value) @@ -282,6 +298,8 @@ @Override public void setEntity(Object value) { + updateIsMemorySnapshotSupported(value); + super.setEntity(value); updateIsCloneVmSupported(); @@ -413,7 +431,7 @@ Snapshot snapshot = (Snapshot) getSelectedItem(); // if snapshot doesn't have memory, just trigger preview without showing popup - if (!isMemorySnapshotSupported() || snapshot.getMemoryVolume().isEmpty()) { + if (!getIsMemorySnapshotSupported() || snapshot.getMemoryVolume().isEmpty()) { Frontend.getInstance().runAction(VdcActionType.TryBackToAllSnapshotsOfVm, new TryBackToAllSnapshotsOfVmParameters(vm.getId(), snapshot.getId()), null); @@ -812,16 +830,14 @@ }), vm.getStoragePoolId()); } - protected boolean isMemorySnapshotSupported() { + private void updateIsMemorySnapshotSupported(Object entity) { if (getEntity() == null) { - return false; + return; } VM vm = (VM) getEntity(); - return (Boolean) AsyncDataProvider.getConfigValuePreConverted( - ConfigurationValues.MemorySnapshotSupported, - vm.getVdsGroupCompatibilityVersion().toString()); + setIsMemorySnapshotSupported(AsyncDataProvider.isMemorySnapshotSupported(vm)); } @Override -- To view, visit http://gerrit.ovirt.org/25079 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I148f0a9356086b31e66d4f5dd6eab6afc642cada Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Leonardo Bianconi <leonardo.bianc...@eldorado.org.br> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches