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
