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. Change-Id: I148f0a9356086b31e66d4f5dd6eab6afc642cada Signed-off-by: Leonardo Bianconi <leonardo.bianc...@eldorado.org.br> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetArchitectureCapabilitiesQuery.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ArchCapabilitiesParameters.java 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 6 files changed, 68 insertions(+), 7 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/58/21658/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetArchitectureCapabilitiesQuery.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetArchitectureCapabilitiesQuery.java index 6bfb448..fd3076c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetArchitectureCapabilitiesQuery.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/GetArchitectureCapabilitiesQuery.java @@ -3,6 +3,7 @@ import java.util.HashMap; import org.ovirt.engine.core.bll.architecture.IsMigrationSupported; +import org.ovirt.engine.core.bll.architecture.IsSnapshotSupported; import org.ovirt.engine.core.common.archstrategy.ArchStrategyFactory; import org.ovirt.engine.core.common.businessentities.ArchitectureType; import org.ovirt.engine.core.common.queries.ArchCapabilitiesParameters; @@ -18,6 +19,9 @@ switch (getParameters().getArchCapabilitiesVerb()) { case GetMigrationSupport: setReturnValue(getMigrationMap()); + break; + case GetSnapshotSupport: + setReturnValue(getSnapshotMap()); break; } } @@ -49,4 +53,36 @@ return migrationMap; } + + /** + * Creates the snapshot support map + * @return + */ + private HashMap<ArchitectureType, HashMap<Version, Boolean>> getSnapshotMap() { + + HashMap<ArchitectureType, HashMap<Version, Boolean>> snapshotMap = + new HashMap<ArchitectureType, HashMap<Version, Boolean>>(); + + for (ArchitectureType arch : ArchitectureType.values()) { + HashMap<Version, Boolean> snapshotArchMap = new HashMap<Version, Boolean>(); + + for (Version version : Version.ALL) { + boolean isSnapshotSupported = true; + + if (!arch.equals(ArchitectureType.undefined)) { + isSnapshotSupported = + ArchStrategyFactory.getStrategy(arch) + .run(new IsSnapshotSupported(version)) + .returnValue(); + + } + + snapshotArchMap.put(version, isSnapshotSupported); + } + + snapshotMap.put(arch, snapshotArchMap); + } + + return snapshotMap; + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ArchCapabilitiesParameters.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ArchCapabilitiesParameters.java index ae114cf..b5d3e72 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ArchCapabilitiesParameters.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ArchCapabilitiesParameters.java @@ -19,6 +19,7 @@ } public enum ArchCapabilitiesVerb { - GetMigrationSupport + GetMigrationSupport, + GetSnapshotSupport } } 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 b6cee4c..c2b0d54 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 @@ -92,10 +92,11 @@ return; } + boolean archSnapshotSupported = AsyncDataProvider.isSnapshotSupported(vm.getClusterArch(), vm.getVdsGroupCompatibilityVersion()); boolean memorySnapshotSupported = - (Boolean) AsyncDataProvider.getConfigValuePreConverted( + ((Boolean) AsyncDataProvider.getConfigValuePreConverted( ConfigurationValues.MemorySnapshotSupported, - vm.getVdsGroupCompatibilityVersion().toString()); + vm.getVdsGroupCompatibilityVersion().toString())) && archSnapshotSupported; 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 3ce4bf7..a2c85eb 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 @@ -113,10 +113,11 @@ getTable().ensureColumnPresent(SnapshotsViewColumns.statusColumn, constants.statusSnapshot(), true, "75px"); //$NON-NLS-1$ + boolean archSnapshotSupported = AsyncDataProvider.isSnapshotSupported(vm.getClusterArch(), vm.getVdsGroupCompatibilityVersion()); boolean memorySnapshotSupported = - (Boolean) AsyncDataProvider.getConfigValuePreConverted( + ((Boolean) AsyncDataProvider.getConfigValuePreConverted( ConfigurationValues.MemorySnapshotSupported, - vm.getVdsGroupCompatibilityVersion().toString()); + vm.getVdsGroupCompatibilityVersion().toString())) && archSnapshotSupported; 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 e94f7f4..438b27e 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 @@ -186,6 +186,9 @@ // cached architecture support for live migration private static HashMap<ArchitectureType, HashMap<Version, Boolean>> migrationSupport; + // cached architecture support for snapshot + private static HashMap<ArchitectureType, HashMap<Version, Boolean>> snapshotSupport; + public static String getDefaultConfigurationVersion() { return _defaultConfigurationVersion; } @@ -226,6 +229,7 @@ initNicHotplugSupportMap(); initDiskHotpluggableInterfacesMap(); initMigrationSupportMap(); + initSnapshotSupportMap(); } public static void initNicHotplugSupportMap() { @@ -3233,6 +3237,10 @@ return migrationSupport.get(architecture).get(version); } + public static Boolean isSnapshotSupported(ArchitectureType architecture, Version version) { + return snapshotSupport.get(architecture).get(version); + } + private static void initMigrationSupportMap() { AsyncQuery callback = new AsyncQuery(); callback.asyncCallback = new INewAsyncCallback() { @@ -3246,6 +3254,19 @@ callback); } + private static void initSnapshotSupportMap() { + AsyncQuery callback = new AsyncQuery(); + callback.asyncCallback = new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object returnValue) { + snapshotSupport = ((VdcQueryReturnValue) returnValue).getReturnValue(); + } + }; + Frontend.RunQuery(VdcQueryType.GetArchitectureCapabilities, + new ArchCapabilitiesParameters(ArchCapabilitiesVerb.GetSnapshotSupport), + callback); + } + public static List<Integer> getOsIds() { return osIds; } 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 b1bec42..3bec1e0 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 @@ -808,10 +808,11 @@ } VM vm = (VM) getEntity(); + boolean archSnapshotSupported = AsyncDataProvider.isSnapshotSupported(vm.getClusterArch(), vm.getVdsGroupCompatibilityVersion()); - return (Boolean) AsyncDataProvider.getConfigValuePreConverted( + return ((Boolean) AsyncDataProvider.getConfigValuePreConverted( ConfigurationValues.MemorySnapshotSupported, - vm.getVdsGroupCompatibilityVersion().toString()); + vm.getVdsGroupCompatibilityVersion().toString())) && archSnapshotSupported; } @Override -- To view, visit http://gerrit.ovirt.org/21658 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I148f0a9356086b31e66d4f5dd6eab6afc642cada Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master 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