Frank Kobzik has uploaded a new change for review.

Change subject: frontend: packaging: Make default VNC console mode configurable
......................................................................

frontend: packaging: Make default VNC console mode configurable

This patch adds an (engine-wide) option to configure default VNC client
console mode (both SPICE and RDP have this option already). Currently
admin can set Native or NoVnc client modes.

If NoVnc is chosen and is not available on the engine (WebSocketProxy
config not set), Native is used as a fallback.

Change-Id: Icb37fe653f007307686765f6dc089206559cb7e3
Signed-off-by: Frantisek Kobzik <[email protected]>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java
M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
M packaging/etc/engine-config/engine-config.properties
5 files changed, 23 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/22/20222/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
index 14bcdc2..6db3be1 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java
@@ -1354,6 +1354,10 @@
     @DefaultValueAttribute("Auto")
     ClientModeSpiceDefault,
 
+    @TypeConverterAttribute(String.class)
+    @DefaultValueAttribute("Native")
+    ClientModeVncDefault,
+
     @TypeConverterAttribute(Boolean.class)
     @DefaultValueAttribute("false")
     MigrationNetworkEnabled,
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
index d91b78f..4c168be 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java
@@ -26,6 +26,7 @@
     SpiceToggleFullScreenKeys(ConfigAuthType.User),
     SpiceProxyDefault(ConfigAuthType.User),
     ClientModeSpiceDefault(ConfigAuthType.User),
+    ClientModeVncDefault(ConfigAuthType.User),
     ClientModeRdpDefault(ConfigAuthType.User),
     UseFqdnForRdpIfAvailable(ConfigAuthType.User),
     WebSocketProxy(ConfigAuthType.User),
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java
index f849059..6872992 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java
@@ -5,6 +5,7 @@
 import org.ovirt.engine.core.common.action.VdcReturnValueBase;
 import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.VMStatus;
+import org.ovirt.engine.core.common.queries.ConfigurationValues;
 import org.ovirt.engine.core.common.queries.IdQueryParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
@@ -13,8 +14,10 @@
 import org.ovirt.engine.ui.frontend.Frontend;
 import org.ovirt.engine.ui.frontend.INewAsyncCallback;
 import org.ovirt.engine.ui.uicommonweb.BaseCommandTarget;
+import org.ovirt.engine.ui.uicommonweb.ConsoleUtils;
 import org.ovirt.engine.ui.uicommonweb.TypeResolver;
 import org.ovirt.engine.ui.uicommonweb.UICommand;
+import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
 import org.ovirt.engine.ui.uicompat.ConstantsManager;
 import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
 import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
@@ -51,7 +54,14 @@
 
     public VncConsoleModel() {
         setTitle(ConstantsManager.getInstance().getConstants().VNCTitle());
-        setVncImplementation(ClientConsoleMode.Native); //Native (MIME) way is 
the default
+
+        boolean webSocketProxyDefined = ((ConsoleUtils) 
TypeResolver.getInstance().resolve(ConsoleUtils.class)).isWebSocketProxyDefined();
+        ClientConsoleMode desiredMode = ClientConsoleMode.valueOf((String) 
AsyncDataProvider.getConfigValuePreConverted(ConfigurationValues.ClientModeVncDefault));
+        if (desiredMode == ClientConsoleMode.NoVnc && !webSocketProxyDefined) {
+            desiredMode = ClientConsoleMode.Native; // fallback
+        }
+
+        setVncImplementation(desiredMode);
     }
 
     public void setVncImplementation(ClientConsoleMode consoleMode) {
diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql 
b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
index e65bea1..52256fb 100644
--- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
+++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql
@@ -561,9 +561,11 @@
 select 
fn_db_add_config_value('NetworkConnectivityCheckTimeoutInSeconds','120','general');
 -- AutoRecoveryConfiguration
 select fn_db_add_config_value('AutoRecoveryAllowedTypes','{\"storage 
domains\":\"true\",\"hosts\":\"true\"}','general');
--- Spice client mode default settings (Auto, Native, Plugin)
+-- SPICE client mode default settings (Auto, Native, Plugin)
 select fn_db_add_config_value('ClientModeSpiceDefault','Auto','general');
--- Rdp client mode default settings (Auto, Native, Plugin)
+-- VNC client mode default settings (Native, NoVnc)
+select fn_db_add_config_value('ClientModeVncDefault','Native','general');
+-- RDP client mode default settings (Auto, Native, Plugin)
 select fn_db_add_config_value('ClientModeRdpDefault','Auto','general');
 -- Rdp client - Use FQDN reported by guest agent if available over IP and or 
generated hostname (VM Name + Domain)
 select fn_db_add_config_value('UseFqdnForRdpIfAvailable','true','general');
diff --git a/packaging/etc/engine-config/engine-config.properties 
b/packaging/etc/engine-config/engine-config.properties
index c5e1792..751301d 100644
--- a/packaging/etc/engine-config/engine-config.properties
+++ b/packaging/etc/engine-config/engine-config.properties
@@ -273,6 +273,9 @@
 ClientModeSpiceDefault.description="Default SPICE console invocation behavior 
in the engine."
 ClientModeSpiceDefault.validValues=Auto,Plugin,Native
 ClientModeSpiceDefault.type=String
+ClientModeVncDefault.description="Default VNC console invocation behavior in 
the engine."
+ClientModeVncDefault.validValues=Native,NoVnc
+ClientModeVncDefault.type=String
 ClientModeRdpDefault.description="Default RDP console invocation behavior in 
the engine."
 ClientModeRdpDefault.validValues=Auto,Plugin,Native
 ClientModeRdpDefault.type=String


-- 
To view, visit http://gerrit.ovirt.org/20222
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Icb37fe653f007307686765f6dc089206559cb7e3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Frank Kobzik <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to