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

Reply via email to