Frank Kobzik has uploaded a new change for review. Change subject: frontend: Spice is always available ......................................................................
frontend: Spice is always available This patch removes the method ConsoleUtils.isSpiceAvailable because it is no longer needed as spice can be always invoked using the nonplugin way. This patch also moves configuration of spice implementations (by Configurator classes) and connect listener to the method responsible for switching implementations on the fly so that effect of these actions is not forgotten after switching spice implementation. Change-Id: Ice5c3f80988962c5fa5e39f51e91543938258912 Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> --- M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java 6 files changed, 19 insertions(+), 42 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/14390/1 diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java index 2805631..7457fd5 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/presenter/popup/ConsolePopupPresenterWidget.java @@ -162,7 +162,7 @@ HasConsoleModel currentItem = model.getModel(); boolean spiceAvailable = - currentItem.getDefaultConsoleModel() instanceof SpiceConsoleModel && consoleUtils.isSpiceAvailable(); + currentItem.getDefaultConsoleModel() instanceof SpiceConsoleModel; boolean vncAvailable = currentItem.getDefaultConsoleModel() instanceof VncConsoleModel; diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java index c1959c6..c71fa7d 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleManagerImpl.java @@ -68,8 +68,6 @@ private String showSpiceConsole(HasConsoleModel model) { if (consoleUtils.canOpenSpiceConsole(model)) { model.getDefaultConsoleModel().getConnectCommand().Execute(); - } else if (!consoleUtils.isSpiceAvailable()) { - return createErrorMessage(model, "SPICE"); //$NON-NLS-1$ } return null; diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java index 589522b..a0a93c1 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleOptionsFrontendPersisterImpl.java @@ -120,7 +120,7 @@ } protected void loadSpiceData(HasConsoleModel model, KeyMaker keyMaker) { - if (!consoleUtils.isSpiceAvailable() || !(model.getDefaultConsoleModel() instanceof SpiceConsoleModel)) { + if (!(model.getDefaultConsoleModel() instanceof SpiceConsoleModel)) { // don't read spice options if the spice console is not available anymore return; } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java index 97c14fa..57df443 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/utils/ConsoleUtilsImpl.java @@ -16,7 +16,6 @@ public class ConsoleUtilsImpl implements ConsoleUtils { - private Boolean spiceAvailable; private Boolean rdpAvailable; private final CommonApplicationConstants constants; @@ -71,38 +70,16 @@ @Override public boolean canOpenSpiceConsole(HasConsoleModel item) { - if (item.isPool() || !isSpiceAvailable()) + if (item.isPool()) { return false; + } - if (isSpiceAvailable() && - item.getDefaultConsoleModel().getConnectCommand().getIsAvailable() && - item.getDefaultConsoleModel().getConnectCommand().getIsExecutionAllowed()) { + if (item.getDefaultConsoleModel().getConnectCommand().getIsAvailable() && + item.getDefaultConsoleModel().getConnectCommand().getIsExecutionAllowed()) { return true; } return false; - } - - @Override - public boolean isSpiceAvailable() { - if (spiceAvailable == null) { - switch (configurator.getClientConsoleMode()) { - case Plugin: - spiceAvailable = configurator.isClientWindowsExplorer() || configurator.isClientLinuxFirefox(); - break; - case Native: - spiceAvailable = true; - break; - case Auto: - spiceAvailable = true; - break; - default: - spiceAvailable = false; - break; - } - GWT.log("Determining if Spice console is available on current platform, result:" + spiceAvailable); //$NON-NLS-1$ - } - return spiceAvailable; } @Override @@ -124,11 +101,11 @@ return ""; //$NON-NLS-1$ } - if (!(isRDPAvailable() || isSpiceAvailable())) { + if (!(isRDPAvailable())) { return constants.browserNotSupportedMsg(); } - boolean isSpice = item.getDefaultConsoleModel() instanceof SpiceConsoleModel && isSpiceAvailable(); + boolean isSpice = item.getDefaultConsoleModel() instanceof SpiceConsoleModel; boolean isRdp = item.getAdditionalConsoleModel() != null && isRDPAvailable(); if (!isSpice && !isRdp) { @@ -148,7 +125,7 @@ if (item.getAdditionalConsoleModel() != null && isRDPAvailable() && ConsoleProtocol.RDP.equals(selectedProtocol)) { return ConsoleProtocol.RDP; - } else if (item.getDefaultConsoleModel() instanceof SpiceConsoleModel && isSpiceAvailable() && + } else if (item.getDefaultConsoleModel() instanceof SpiceConsoleModel && ConsoleProtocol.SPICE.equals(selectedProtocol)) { return ConsoleProtocol.SPICE; } else if (item.getDefaultConsoleModel() instanceof VncConsoleModel) { @@ -221,7 +198,7 @@ @Override public boolean isWanOptionsAvailable(HasConsoleModel model) { boolean spiceAvailable = - model.getDefaultConsoleModel() instanceof SpiceConsoleModel && isSpiceAvailable(); + model.getDefaultConsoleModel() instanceof SpiceConsoleModel; boolean isWindowsVm = model.getVM().getOs().isWindows(); boolean spiceGuestAgentInstalled = model.getVM().getSpiceDriverVersion() != null; @@ -233,6 +210,7 @@ return configurator.isSpiceProxyDefined(); } + @Override public boolean isBrowserPluginSupported() { return configurator.isClientLinuxFirefox() || configurator.isClientWindowsExplorer(); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java index c1d1969..655c13b 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/ConsoleUtils.java @@ -5,7 +5,6 @@ public interface ConsoleUtils { - public boolean isSpiceAvailable(); public boolean isRDPAvailable(); public boolean canOpenSpiceConsole(HasConsoleModel item); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java index f8b1713..189d3df 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java @@ -86,9 +86,6 @@ setSpiceImplementation( ClientConsoleMode.valueOf((String) AsyncDataProvider.GetConfigValuePreConverted(ConfigurationValues.ClientConsoleModeDefault))); - getConfigurator().Configure(getspice()); - - getspice().getConnectedEvent().addListener(this); } public ISpice getspice() { @@ -97,9 +94,8 @@ /** * Sets implementation of ISpice which will be used (either implementation - * that uses spice browser plugin or the one using configuration servlet). - * - * The result implementation is based on db config. + * that uses spice browser plugin or the one using configuration servlet) + * and performs sets initial configuration as well (different for WA/UP). * * Default mode is "Auto" (spice browser plugin is used only if it is * installed). @@ -121,6 +117,12 @@ : (ISpice) TypeResolver.getInstance().Resolve(ISpiceNative.class)); break; } + + getConfigurator().Configure(getspice()); + + if (!getspice().getConnectedEvent().getListeners().contains(this)) { + getspice().getConnectedEvent().addListener(this); + } } @Override -- To view, visit http://gerrit.ovirt.org/14390 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ice5c3f80988962c5fa5e39f51e91543938258912 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <fkob...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches