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

Reply via email to