Frank Kobzik has uploaded a new change for review. Change subject: frontend: Phase 2: Make console clients use ConsoleOptions ......................................................................
frontend: Phase 2: Make console clients use ConsoleOptions VNC and SPICE clients now use ConsoleOptions directly. Attributes / getters / setters in AbstractSpice / Vnc and ISpice / IVnc were cleaned. Moreover: - reduntant events from AbstractSpice were removed - defective version checking mechanism was removed from AbstractSpice and SpicePluginImpl. Now the plugin version is used only in SPICE Active-X plugin where it makes sense. - Spice Base URL attribute (for retrieving ActiveX Plugin CAB) is moved closer to engine's plugin implementation (ISpicePlugin). - cleaned unused 'guestID' attribute in Plugin. - cleaned unused attributes 'menu','spiceCabURL' and 'spiceCabObjClassId' for XPI (Firefox) implementation. Added ConsoleClient interface which are implemented by SPICE and VNC clients. Adjustments in ConsoleOptionsFrontendPersisterImpl (todo cleanup would be nice). Change-Id: I5a5b5b323f788bd2882984a2dce183791f72949d Signed-off-by: Frantisek Kobzik <fkob...@redhat.com> Bug-Url: https://bugzilla.redhat.com/1128763 --- M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/console/ConsoleOptions.java R backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/console/ConsoleOptionsTest.java 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/uicommon/AbstractSpice.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/NoVncImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceHtml5Impl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java M frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/WebClientConsoleInvoker.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/view/popup/ConsolePopupView.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleClient.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpicePlugin.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/SpiceConsoleModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java M frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java M frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java 25 files changed, 264 insertions(+), 863 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/37973/6 diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/console/ConsoleOptions.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/console/ConsoleOptions.java index 4f2e07d..adb68bb 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/console/ConsoleOptions.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/console/ConsoleOptions.java @@ -35,14 +35,12 @@ private String cipherSuite; private String hostSubject; private String trustStore; - private String[] localizedStrings; private String menu; private boolean noTaskMgrExecution; private WanColorDepth wanColorDepth; private boolean wanOptionsEnabled; private boolean smartcardEnabled = false; private String spiceProxy = null; - private int ticketValiditySeconds; // the user can choose to disable the smartcard even when it is enabled, but can not choose to enable it, when it is // disabled private boolean smartcardEnabledOverridden = false; @@ -232,14 +230,6 @@ this.trustStore = trustStore; } - public String[] getLocalizedStrings() { - return localizedStrings; - } - - public void setLocalizedStrings(String[] localizedStrings) { - this.localizedStrings = localizedStrings; - } - public String getMenu() { return menu; } @@ -298,14 +288,6 @@ public void setSpiceProxy(String spiceProxy) { this.spiceProxy = spiceProxy; - } - - public int getTicketValiditySeconds() { - return ticketValiditySeconds; - } - - public void setTicketValiditySeconds(int ticketValiditySeconds) { - this.ticketValiditySeconds = ticketValiditySeconds; } /** diff --git a/frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/uicommon/AbstractSpiceTest.java b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/console/ConsoleOptionsTest.java similarity index 66% rename from frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/uicommon/AbstractSpiceTest.java rename to backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/console/ConsoleOptionsTest.java index 9cfc0ca..1cba6ba 100644 --- a/frontend/webadmin/modules/gwt-common/src/test/java/org/ovirt/engine/ui/common/uicommon/AbstractSpiceTest.java +++ b/backend/manager/modules/common/src/test/java/org/ovirt/engine/core/common/console/ConsoleOptionsTest.java @@ -1,29 +1,32 @@ -package org.ovirt.engine.ui.common.uicommon; +package org.ovirt.engine.core.common.console; import org.junit.Test; + import static org.junit.Assert.assertEquals; -public class AbstractSpiceTest { +public class ConsoleOptionsTest { + @Test public void testAdjustLegacySecureChannels() throws Exception { String legacyChannels = "smain,sdisplay,sinputs,scursor,splayback,srecord,ssmartcard,susbredir"; //$NON-NLS-1$ String correctChannels = "main,display,inputs,cursor,playback,record,smartcard,usbredir";//$NON-NLS-1$ - assertEquals(correctChannels, AbstractSpice.adjustLegacySecureChannels(legacyChannels)); + assertEquals(correctChannels, ConsoleOptions.adjustLegacySecureChannels(legacyChannels)); } @Test public void testAdjustLegacySecureChannelsWithEmptyChannels() throws Exception { String legacyChannels = "";//$NON-NLS-1$ String correctChannels = "";//$NON-NLS-1$ - assertEquals(correctChannels, AbstractSpice.adjustLegacySecureChannels(legacyChannels)); + assertEquals(correctChannels, ConsoleOptions.adjustLegacySecureChannels(legacyChannels)); } @Test public void testAdjustLegacySecureChannelsWithNullChannels() throws Exception { String legacyChannels = null; String correctChannels = null; - assertEquals(correctChannels, AbstractSpice.adjustLegacySecureChannels(legacyChannels)); + assertEquals(correctChannels, ConsoleOptions.adjustLegacySecureChannels(legacyChannels)); } + } 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 737c841..a21d627 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 @@ -166,10 +166,6 @@ getView().edit(model); } }; - - spice.getUsbAutoShareChangedEvent().addListener(viewUpdatingListener); - spice.getWANColorDepthChangedEvent().addListener(viewUpdatingListener); - spice.getWANDisableEffectsChangeEvent().addListener(viewUpdatingListener); } private void removeListeners(ConsolePopupModel model) { @@ -181,10 +177,6 @@ if (spice == null) { return; } - - spice.getUsbAutoShareChangedEvent().removeListener(viewUpdatingListener); - spice.getWANColorDepthChangedEvent().removeListener(viewUpdatingListener); - spice.getWANDisableEffectsChangeEvent().removeListener(viewUpdatingListener); } private void initView(ConsolePopupModel model) { @@ -214,10 +206,10 @@ ISpice spice = model.getVmConsoles().getConsoleModel(SpiceConsoleModel.class).getspice(); if (spice != null) { - if (!spice.isWanOptionsEnabled()) { + if (!spice.getOptions().isWanOptionsEnabled()) { getView().selectWanOptionsEnabled(false); } - spiceProxyUserPreference = vmConsoles.getConsoleModel(SpiceConsoleModel.class).getspice().isSpiceProxyEnabled(); + spiceProxyUserPreference = vmConsoles.getConsoleModel(SpiceConsoleModel.class).getspice().getOptions().isSpiceProxyEnabled(); } if (!consoleUtils.isBrowserPluginSupported(ConsoleProtocol.SPICE)) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java index 6b8b574..d21c5e6 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractSpice.java @@ -1,12 +1,7 @@ package org.ovirt.engine.ui.common.uicommon; -import java.util.Arrays; -import java.util.List; - import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.console.ConsoleOptions; -import org.ovirt.engine.core.compat.StringHelper; -import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.ui.uicommonweb.models.vms.SpiceConsoleModel; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; @@ -15,54 +10,17 @@ protected final ConsoleOptions consoleOptions = new ConsoleOptions(GraphicsType.SPICE); - protected Event<EventArgs> disconnectedEvent = new Event<EventArgs>( - SpiceConsoleModel.spiceDisconnectedEventDefinition); - protected Event<EventArgs> connectedEvent = new Event<EventArgs>( - SpiceConsoleModel.spiceConnectedEventDefinition); - protected Event<EventArgs> menuItemSelectedEvent = new Event<EventArgs>( - SpiceConsoleModel.spiceMenuItemSelectedEventDefinition); - protected Event<EventArgs> usbAutoShareChangedEvent = new Event<EventArgs>( - SpiceConsoleModel.usbAutoShareChangedEventDefinition); - protected final Event<EventArgs> wanColorDepthChangedEvent = new Event<EventArgs>( - SpiceConsoleModel.wanColorDepthChangedEventDefinition); - protected final Event<EventArgs> wanDisableEffectsChangeEvent = new Event<EventArgs>( - SpiceConsoleModel.wanDisableEffectsChangeEventDefinition); + // long term todo - move these events to plugin impl + protected Event<EventArgs> disconnectedEvent = new Event<>(SpiceConsoleModel.spiceDisconnectedEventDefinition); + protected Event<EventArgs> connectedEvent = new Event<>(SpiceConsoleModel.spiceConnectedEventDefinition); + protected Event<EventArgs> menuItemSelectedEvent = new Event<>(SpiceConsoleModel.spiceMenuItemSelectedEventDefinition); - protected Version currentVersion = new Version(4, 4); - protected Version desiredVersion = new Version(4, 4); - - protected String guestID; - - ClientAgentType cat = new ClientAgentType(); - protected String spiceBaseURL; public AbstractSpice() { } - public void setWANDisableEffects(List<ConsoleOptions.WanDisableEffects> disableEffects) { - this.consoleOptions.setWanDisableEffects(disableEffects); - getWANDisableEffectsChangeEvent().raise(this, EventArgs.EMPTY); - } - - public void setWANColorDepth(ConsoleOptions.WanColorDepth colorDepth) { - this.consoleOptions.setWanColorDepth(colorDepth); - getWANColorDepthChangedEvent().raise(this, EventArgs.EMPTY); - } - - public List<ConsoleOptions.WanDisableEffects> getWANDisableEffects() { - return consoleOptions.getWanDisableEffects(); - } - - public ConsoleOptions.WanColorDepth getWANColorDepth() { - return consoleOptions.getWanColorDepth(); - } - - public Event<EventArgs> getWANDisableEffectsChangeEvent() { - return wanDisableEffectsChangeEvent; - } - - public Event<EventArgs> getWANColorDepthChangedEvent() { - return wanColorDepthChangedEvent; + public ConsoleOptions getOptions() { + return consoleOptions; } public Event<EventArgs> getDisconnectedEvent() { @@ -89,331 +47,4 @@ this.menuItemSelectedEvent = menuItemSelectedEvent; } - public void setUsbAutoShareChangedEvent(Event<EventArgs> usbAutoShareChangedEvent) { - this.usbAutoShareChangedEvent = usbAutoShareChangedEvent; - } - - public Event<EventArgs> getUsbAutoShareChangedEvent() { - return usbAutoShareChangedEvent; - } - - public Version getCurrentVersion() { - return currentVersion; - } - - public void setCurrentVersion(Version currentVersion) { - this.currentVersion = currentVersion; - } - - // This should be defined by UiCommon - public Version getDesiredVersion() { - return desiredVersion; - } - - public void setDesiredVersion(Version desiredVersion) { - this.desiredVersion = desiredVersion; - } - - public String getDesiredVersionStr() { - return desiredVersion.toString().replace('.', ','); - } - - public int getPort() { - Integer port = consoleOptions.getPort(); - return port == null - ? 0 - : port; - } - - public void setPort(int port) { - this.consoleOptions.setPort(port); - } - - public String getHost() { - return consoleOptions.getHost(); - } - - public void setHost(String host) { - this.consoleOptions.setHost(host); - } - - public boolean isFullScreen() { - return consoleOptions.isFullScreen(); - } - - public void setFullScreen(boolean fullScreen) { - this.consoleOptions.setFullScreen(fullScreen); - } - - public String getPassword() { - return consoleOptions.getTicket(); - } - - public void setPassword(String password) { - this.consoleOptions.setTicket(password); - } - - public int getNumberOfMonitors() { - return consoleOptions.getNumberOfMonitors(); - } - - public void setNumberOfMonitors(int numberOfMonitors) { - this.consoleOptions.setNumberOfMonitors(numberOfMonitors); - } - - public int getUsbListenPort() { - return consoleOptions.getUsbListenPort(); - } - - public void setUsbListenPort(int usbListenPort) { - this.consoleOptions.setUsbListenPort(usbListenPort); - } - - public boolean isAdminConsole() { - return consoleOptions.isAdminConsole(); - } - - public void setAdminConsole(boolean adminConsole) { - this.consoleOptions.setAdminConsole(adminConsole); - } - - public String getGuestHostName() { - return consoleOptions.getGuestHostName(); - } - - public void setGuestHostName(String guestHostName) { - this.consoleOptions.setGuestHostName(guestHostName); - } - - public int getSecurePort() { - return consoleOptions.getSecurePort() & 0xffff; - } - - public void setSecurePort(int securePort) { - this.consoleOptions.setSecurePort(securePort); - } - - public String getSslChanels() { - return consoleOptions.getSslChanels(); - } - - public void setSslChanels(String sslChanels) { - this.consoleOptions.setSslChanels(adjustLegacySecureChannels(sslChanels)); - } - - /** - * Reformat secure channels string if they are in legacy ('s'-prefixed) format. - * @param legacySecureChannels (e.g. "smain,sinput") - * @return secure channels in correct format (e.g. "main,input") - */ - static String adjustLegacySecureChannels(String legacySecureChannels) { - if (StringHelper.isNullOrEmpty(legacySecureChannels)) { - return legacySecureChannels; - } - - String secureChannels = legacySecureChannels; - List<String> legacyChannels = Arrays.asList( - new String[]{"smain", "sdisplay", "sinputs", "scursor", "splayback", "srecord", "ssmartcard", "susbredir"}); // $NON-NLS-1$ $NON-NLS-2$ $NON-NLS-3$ $NON-NLS-4$ $NON-NLS-5$ $NON-NLS-6$ $NON-NLS-7$ $NON-NLS-8$ - - for (String channel : legacyChannels) { - secureChannels = secureChannels.replace(channel, channel.substring(1)); - } - - return secureChannels; - } - - public String getCipherSuite() { - return consoleOptions.getCipherSuite(); - } - - public void setCipherSuite(String cipherSuite) { - this.consoleOptions.setCipherSuite(cipherSuite); - } - - public String getHostSubject() { - return consoleOptions.getHostSubject(); - } - - public void setHostSubject(String hostSubject) { - this.consoleOptions.setHostSubject(hostSubject); - } - - public String getTrustStore() { - return consoleOptions.getTrustStore(); - } - - public void setTrustStore(String trustStore) { - this.consoleOptions.setTrustStore(trustStore); - } - - public String getTitle() { - return consoleOptions.getTitle(); - } - - public void setTitle(String title) { - this.consoleOptions.setTitle(title); - } - - public String getToggleFullscreenHotKey() { - return consoleOptions.getToggleFullscreenHotKey(); - } - - public void setToggleFullscreenHotKey(String toggleFullscreenHotKey) { - this.consoleOptions.setToggleFullscreenHotKey(toggleFullscreenHotKey); - } - - public String getReleaseCursorHotKey() { - return consoleOptions.getReleaseCursorHotKey(); - } - - public void setReleaseCursorHotKey(String releaseCursorHotKey) { - this.consoleOptions.setReleaseCursorHotKey(releaseCursorHotKey); - } - - public String[] getLocalizedStrings() { - return consoleOptions.getLocalizedStrings(); - } - - public void setLocalizedStrings(String[] localizedStrings) { - this.consoleOptions.setLocalizedStrings(localizedStrings); - } - - public String getMenu() { - return consoleOptions.getMenu(); - } - - public void setMenu(String menu) { - this.consoleOptions.setMenu(menu); - } - - public String getGuestID() { - return guestID; - } - - public void setGuestID(String guestID) { - this.guestID = guestID; - } - - public boolean getNoTaskMgrExecution() { - return consoleOptions.isNoTaskMgrExecution(); - } - - public void setNoTaskMgrExecution(boolean noTaskMgrExecution) { - this.consoleOptions.setNoTaskMgrExecution(noTaskMgrExecution); - } - - public boolean isRemapCtrlAltDel() { - return consoleOptions.isRemapCtrlAltDelete(); - } - - public void setRemapCtrlAltDel(boolean remapCtrlAltDelete) { - this.consoleOptions.setRemapCtrlAltDelete(remapCtrlAltDelete); - } - - public boolean getUsbAutoShare() { - return consoleOptions.isUsbAutoShare(); - } - - public void setUsbAutoShare(boolean usbAutoShare) { - this.consoleOptions.setUsbAutoShare(usbAutoShare); - getUsbAutoShareChangedEvent().raise(this, EventArgs.EMPTY); - } - - public String getUsbFilter() { - return consoleOptions.getUsbFilter(); - } - - public void setUsbFilter(String usbFilter) { - consoleOptions.setUsbFilter(usbFilter); - } - - public String getSpiceBaseURL() { - return spiceBaseURL; - } - - public void setSpiceBaseURL(String spiceBaseURL) { - this.spiceBaseURL = spiceBaseURL; - } - - public boolean passSmartcardOption() { - return isSmartcardEnabled() && !isSmartcardEnabledOverridden(); - } - - public boolean isSmartcardEnabled() { - return consoleOptions.isSmartcardEnabled(); - } - - public void setSmartcardEnabled(boolean smartcardEnabled) { - this.consoleOptions.setSmartcardEnabled(smartcardEnabled); - } - - protected int colorDepthAsInt() { - if (getWANColorDepth() != null) { - return getWANColorDepth().asInt(); - } - - return ConsoleOptions.WanColorDepth.depth16.asInt(); - } - - public boolean isWanOptionsEnabled() { - return consoleOptions.isWanOptionsEnabled(); - } - - public void setWanOptionsEnabled(boolean wanOptionsEnabled) { - this.consoleOptions.setWanOptionsEnabled(wanOptionsEnabled); - } - - public void setOverrideEnabledSmartcard(boolean enabled) { - this.consoleOptions.setSmartcardEnabledOverridden(enabled); - } - - /** - * Returns true if the user has choosen to disable the smartcard even it is by default enabled - */ - public boolean isSmartcardEnabledOverridden() { - return this.consoleOptions.isSmartcardEnabledOverridden(); - } - - protected String disableEffectsAsString() { - StringBuffer disableEffectsBuffer = new StringBuffer(""); - int countdown = getWANDisableEffects().size(); - for (ConsoleOptions.WanDisableEffects disabledEffect : getWANDisableEffects()) { - disableEffectsBuffer.append(disabledEffect.asString()); - - if (countdown != 1) { - disableEffectsBuffer.append(", "); //$NON-NLS-1$ - } - countdown--; - } - - return disableEffectsBuffer.toString(); - } - - public String getSpiceProxy() { - return consoleOptions.getSpiceProxy(); - } - - public void setSpiceProxy(String spiceProxy) { - this.consoleOptions.setSpiceProxy(spiceProxy); - } - - public void setSpiceProxyEnabled(boolean enabled) { - this.consoleOptions.setSpiceProxyEnabled(enabled); - } - - public boolean isSpiceProxyEnabled() { - return consoleOptions.isSpiceProxyEnabled(); - } - - protected String getSecureAttentionMapping() { - return ConsoleOptions.SECURE_ATTENTION_MAPPING; - } - - public int getTicketValiditySeconds() { - return consoleOptions.getTicketValiditySeconds(); - } - - public void setTicketValiditySeconds(int ticketValiditySeconds) { - this.consoleOptions.setTicketValiditySeconds(ticketValiditySeconds); - } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java index 7e8afaf..8608210 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/AbstractVnc.java @@ -7,73 +7,12 @@ private final ConsoleOptions consoleOptions = new ConsoleOptions(GraphicsType.VNC); + public ConsoleOptions getOptions() { + return consoleOptions; + } + public AbstractVnc() { consoleOptions.setRemapCtrlAltDelete(true); - } - - public String getTitle() { - return consoleOptions.getTitle(); - } - - public void setTitle(String title) { - consoleOptions.setTitle(title); - } - - public String getVncHost() { - return consoleOptions.getHost(); - } - - public String getVncPort() { - Integer port = consoleOptions.getPort(); - return (port == null) - ? null - : port.toString(); - } - - public String getTicket() { - return consoleOptions.getTicket(); - } - - public void setVncHost(String vncHost) { - consoleOptions.setHost(vncHost); - } - - public void setVncPort(String vncPort) { - consoleOptions.setPort((vncPort == null) - ? null - : Integer.parseInt(vncPort)); - } - - public void setTicket(String ticket) { - consoleOptions.setTicket(ticket); - } - - public boolean isRemapCtrlAltDelete() { - return consoleOptions.isRemapCtrlAltDelete(); - } - - public void setRemapCtrlAltDelete(boolean remapCtrlAltDelete) { - consoleOptions.setRemapCtrlAltDelete(remapCtrlAltDelete); - } - - protected String getSecureAttentionMapping() { - return ConsoleOptions.SECURE_ATTENTION_MAPPING; - } - - public String getToggleFullscreenHotKey() { - return consoleOptions.getToggleFullscreenHotKey(); - } - - public void setToggleFullscreenHotKey(String toggleFullscreenHotKey) { - consoleOptions.setToggleFullscreenHotKey(toggleFullscreenHotKey); - } - - public String getReleaseCursorHotKey() { - return consoleOptions.getReleaseCursorHotKey(); - } - - public void setReleaseCursorHotKey(String releaseCursorHotKey) { - consoleOptions.setReleaseCursorHotKey(releaseCursorHotKey); } } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/NoVncImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/NoVncImpl.java index 617f978..24eaaf6 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/NoVncImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/NoVncImpl.java @@ -13,12 +13,16 @@ public NoVncImpl() { this.config = new WebsocketProxyConfig( - (String) AsyncDataProvider.getInstance().getConfigValuePreConverted(ConfigurationValues.WebSocketProxy), getVncHost()); + (String) AsyncDataProvider.getInstance().getConfigValuePreConverted(ConfigurationValues.WebSocketProxy), + getOptions().getHost()); } @Override public void invokeClient() { - WebClientConsoleInvoker invoker = new WebClientConsoleInvoker(CLIENT_PAGE, config, getVncHost(), getVncPort(), getTicket(), false); + WebClientConsoleInvoker invoker = + new WebClientConsoleInvoker(CLIENT_PAGE, config, + getOptions().getHost(), getOptions().getPort(), + getOptions().getTicket(), false); invoker.invokeClient(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceHtml5Impl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceHtml5Impl.java index c53096b..7e9deb5 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceHtml5Impl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceHtml5Impl.java @@ -12,16 +12,17 @@ private final WebsocketProxyConfig config; public SpiceHtml5Impl() { - super(); - this.config = new WebsocketProxyConfig( - (String) AsyncDataProvider.getInstance().getConfigValuePreConverted(ConfigurationValues.WebSocketProxy), getHost()); + (String) AsyncDataProvider.getInstance().getConfigValuePreConverted(ConfigurationValues.WebSocketProxy), + getOptions().getHost()); } @Override - public void connect() { + public void invokeClient() { boolean sslTarget = consoleOptions.getSecurePort() == -1 ? false : true; - WebClientConsoleInvoker invoker = new WebClientConsoleInvoker(CLIENT_PAGE, config, getHost(), String.valueOf(sslTarget ? consoleOptions.getSecurePort() : consoleOptions.getPort()), getPassword(), sslTarget); + int port = sslTarget ? consoleOptions.getSecurePort() : consoleOptions.getPort(); + WebClientConsoleInvoker invoker = + new WebClientConsoleInvoker(CLIENT_PAGE, config, getOptions().getHost(), port, getOptions().getTicket(), sslTarget); invoker.invokeClient(); } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java index 8d72378..090e314 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpiceNativeImpl.java @@ -1,5 +1,6 @@ package org.ovirt.engine.ui.common.uicommon; +import org.ovirt.engine.core.common.console.ConsoleOptions; import org.ovirt.engine.core.compat.StringHelper; import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpiceNative; @@ -11,74 +12,75 @@ } @Override - public void connect() { + public void invokeClient() { + ConsoleOptions options = getOptions(); StringBuilder configBuilder = new StringBuilder("[virt-viewer]"); //$NON-NLS-1$ int fullscreen = 0; - if (isFullScreen()) { + if (options.isFullScreen()) { fullscreen = 1; } int enableSmartcard = 0; - if (isSmartcardEnabled()) { + if (options.isSmartcardEnabled()) { enableSmartcard = 1; } int usbAutoShare = 0; - if (getUsbAutoShare()) { + if (options.isUsbAutoShare()) { usbAutoShare = 1; } configBuilder.append("\ntype=spice") //$NON-NLS-1$ - .append("\nhost=").append(getHost()) //$NON-NLS-1$ - .append("\nport=").append(Integer.toString(getPort())) //$NON-NLS-1$ - .append("\npassword=").append(getPassword()) //$NON-NLS-1$ - .append("\n# Password is valid for ").append(getTicketValiditySeconds()).append(" seconds.") //$$NON-NLS-1$NON-NLS-2$ - .append("\ntls-port=").append(getSecurePort()) //$NON-NLS-1$ + .append("\nhost=").append(options.getHost()) //$NON-NLS-1$ + .append("\nport=").append(options.getPort()) //$NON-NLS-1$ + .append("\npassword=").append(options.getTicket())//$NON-NLS-1$ + .append("\n# Password is valid for ").append(ConsoleOptions.TICKET_VALIDITY_SECONDS).append(" seconds.") //$$NON-NLS-1$NON-NLS-2$ + .append("\ntls-port=").append(getOptions().getSecurePort()) //$NON-NLS-1$ .append("\nfullscreen=").append(fullscreen) //$NON-NLS-1$ - .append("\ntitle=").append(getTitle()) //$NON-NLS-1$ + .append("\ntitle=").append(options.getTitle()) //$NON-NLS-1$ .append("\nenable-smartcard=").append(enableSmartcard) //$NON-NLS-1$ .append("\nenable-usb-autoshare=").append(usbAutoShare) //$NON-NLS-1$ .append("\ndelete-this-file=1") //$NON-NLS-1$ - .append("\nusb-filter=").append(getUsbFilter()); //$NON-NLS-1$ + .append("\nusb-filter=").append(options.getUsbFilter()); //$NON-NLS-1$ - if (getCipherSuite() != null) { - configBuilder.append("\ntls-ciphers=").append(getCipherSuite()); //$NON-NLS-1$ + if (options.getCipherSuite() != null) { + configBuilder.append("\ntls-ciphers=").append(options.getCipherSuite()); //$NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getHostSubject())) { - configBuilder.append("\nhost-subject=").append(getHostSubject()); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getHostSubject())) { + configBuilder.append("\nhost-subject=").append(options.getHostSubject()); //$NON-NLS-1$ } - if (getTrustStore() != null) { + if (options.getTrustStore() != null) { //virt-viewer-file doesn't want newlines in ca - String trustStore= getTrustStore().replace("\n", "\\n"); //$NON-NLS-1$ $NON-NLS-2$ + String trustStore= options.getTrustStore().replace("\n", "\\n"); //$NON-NLS-1$ $NON-NLS-2$ configBuilder.append("\nca=").append(trustStore); //$NON-NLS-1$ } - if (isWanOptionsEnabled()) { - configBuilder.append("\ncolor-depth=").append(colorDepthAsInt()) //$NON-NLS-1$ - .append("\ndisable-effects=").append(disableEffectsAsString()); //$NON-NLS-1$ + if (options.isWanOptionsEnabled()) { + configBuilder.append("\ncolor-depth=").append(options.colorDepthAsInt()) //$NON-NLS-1$ + .append("\ndisable-effects=").append(options.disableEffectsAsString()); //$NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getToggleFullscreenHotKey())) { - configBuilder.append("\ntoggle-fullscreen=").append(getToggleFullscreenHotKey()); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getToggleFullscreenHotKey())) { + configBuilder.append("\ntoggle-fullscreen=").append(options.getToggleFullscreenHotKey()); //$NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getReleaseCursorHotKey())) { - configBuilder.append("\nrelease-cursor=").append(getReleaseCursorHotKey()); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getReleaseCursorHotKey())) { + configBuilder.append("\nrelease-cursor=").append(options.getReleaseCursorHotKey()); //$NON-NLS-1$ } - if (isRemapCtrlAltDel() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { - configBuilder.append("\nsecure-attention=").append(getSecureAttentionMapping()); //$NON-NLS-1$ + if (options.isRemapCtrlAltDelete()) { + configBuilder.append("\nsecure-attention=").append(ConsoleOptions.SECURE_ATTENTION_MAPPING); //$NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getSpiceProxy())) { - configBuilder.append("\nproxy=").append(getSpiceProxy()); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getSpiceProxy())) { + configBuilder.append("\nproxy=").append(options.getSpiceProxy()); //$NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getSslChanels())) { - configBuilder.append("\nsecure-channels=").append(formatSecureChannels(getSslChanels())); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getSslChanels())) { + configBuilder.append("\nsecure-channels=").append(formatSecureChannels(getOptions().getSslChanels())); //$NON-NLS-1$ } ConsoleModel.makeConsoleConfigRequest("console.vv", "application/x-virt-viewer; charset=UTF-8", configBuilder.toString()); //$NON-NLS-1$ $NON-NLS-2$ diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java index 5894b11..d7c339c 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/SpicePluginImpl.java @@ -4,19 +4,26 @@ import java.util.List; import java.util.logging.Logger; +import org.ovirt.engine.core.common.console.ConsoleOptions; import org.ovirt.engine.core.compat.StringHelper; +import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.ui.uicommonweb.Configurator; import org.ovirt.engine.ui.uicommonweb.ConsoleUtils; import org.ovirt.engine.ui.uicommonweb.TypeResolver; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpicePlugin; public class SpicePluginImpl extends AbstractSpice implements ISpicePlugin { + + protected Version pluginVersion = new Version(4, 4); + protected String spiceBaseURL; + private static final Logger logger = Logger.getLogger(SpicePluginImpl.class.getName()); private final Configurator configurator = (Configurator) TypeResolver.getInstance().resolve(Configurator.class); private final ConsoleUtils cu = (ConsoleUtils) TypeResolver.getInstance().resolve(ConsoleUtils.class); + private final ClientAgentType cat = new ClientAgentType(); @Override - public void connect() { + public void invokeClient() { logger.warning("Connecting via spice..."); //$NON-NLS-1$ if (configurator.isClientLinuxFirefox()) { @@ -49,6 +56,13 @@ } } + private String getPortAsString() { + Integer port = getOptions().getPort(); + return (port == null) + ? null + : port.toString(); + } + public String getHotKeysAsString() { List<String> hotKeysList = getHotKeysAsList(); @@ -67,17 +81,18 @@ private List<String> getHotKeysAsList() { List<String> result = new LinkedList<String>(); + ConsoleOptions options = getOptions(); - if (!StringHelper.isNullOrEmpty(getReleaseCursorHotKey())) { - result.add("release-cursor=" + getReleaseCursorHotKey()); // $NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getReleaseCursorHotKey())) { + result.add("release-cursor=" + options.getReleaseCursorHotKey()); // $NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getToggleFullscreenHotKey())) { - result.add("toggle-fullscreen=" + getToggleFullscreenHotKey()); // $NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getToggleFullscreenHotKey())) { + result.add("toggle-fullscreen=" + options.getToggleFullscreenHotKey()); // $NON-NLS-1$ } - if (isRemapCtrlAltDel() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { - result.add("secure-attention=" + getSecureAttentionMapping()); // $NON-NLS-1$ + if (options.isRemapCtrlAltDelete()) { + result.add("secure-attention=" + ConsoleOptions.SECURE_ATTENTION_MAPPING); // $NON-NLS-1$ } return result; @@ -119,41 +134,38 @@ return; } - var hostIp = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getHost()(); - var port = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPort()(); - var fullScreen = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::isFullScreen()(); - var password = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPassword()(); - var numberOfMonitors = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getNumberOfMonitors()(); - var usbListenPort = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getUsbListenPort()(); - var adminConsole = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::isAdminConsole()(); - var guestHostName = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getGuestHostName()(); - var securePort = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSecurePort()(); - var sslChanels = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSslChanels()(); - var cipherSuite = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getCipherSuite()(); - var hostSubject = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getHostSubject()(); - var trustStore = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getTrustStore()(); - var title = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getTitle()(); + var options = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getOptions()(); + + var hostIp = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getHost()(); + var port = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPortAsString()(); + var fullScreen = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isFullScreen()(); + var password = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getTicket()(); + var numberOfMonitors = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getNumberOfMonitors()(); + var usbListenPort = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getUsbListenPort()(); + var adminConsole = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isAdminConsole()(); + var guestHostName = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getGuestHostName()(); + var securePort = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getSecurePort()(); + var sslChanels = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getSslChanels()(); + var cipherSuite = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getCipherSuite()(); + var hostSubject = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getHostSubject()(); + var trustStore = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getTrustStore()(); + var title = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getTitle()(); var hotKey = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getHotKeysAsString()(); - var menu = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getMenu()(); - var guestID = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getGuestID()(); - var version = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getCurrentVersion()(); - var spiceCabURL = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSpiceCabURL()(); - var spiceCabOjectClassId = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSpiceObjectClassId()(); var id = "SpiceX_" + guestHostName; - var noTaskMgrExecution = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getNoTaskMgrExecution()(); - var usbAutoShare = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getUsbAutoShare()(); - var usbFilter = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getUsbFilter()(); + var noTaskMgrExecution = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isNoTaskMgrExecution()(); + var usbAutoShare = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isUsbAutoShare()(); + var usbFilter = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getUsbFilter()(); var disconnectedEvent = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getDisconnectedEvent()(); var connectedEvent = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getConnectedEvent()(); - var wanOptionsEnabled = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::isWanOptionsEnabled()(); + var wanOptionsEnabled = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isWanOptionsEnabled()(); // the !! is there to convert the value to boolean because it is returned as int - var smartcardEnabled = !!th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::passSmartcardOption()(); - var colorDepth = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::colorDepthAsInt()(); - var disableEffects = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::disableEffectsAsString()(); - var spiceProxy = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSpiceProxy()(); + var smartcardEnabled = !!optio...@org.ovirt.engine.core.common.console.ConsoleOptions::passSmartcardOption()(); + var colorDepth = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::colorDepthAsInt()(); + var disableEffects = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::disableEffectsAsString()(); + var spiceProxy = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getSpiceProxy()(); var model = this; - //alert("Smartcard ["+smartcardEnabled+"] disableEffects ["+disableEffects+"], wanOptionsEnabled ["+wanOptionsEnabled+"], colorDepth ["+colorDepth+"], Host IP ["+hostIp+"], port ["+port+"], fullScreen ["+fullScreen+"], password ["+password+"], numberOfMonitors ["+numberOfMonitors+"], Usb Listen Port ["+usbListenPort+"], Admin Console ["+adminConsole+"], Guest HostName ["+guestHostName+"], Secure Port ["+securePort+"], Ssl Chanels ["+sslChanels+"], cipherSuite ["+cipherSuite+"], Host Subject ["+hostSubject+"], Title [" + title+"], Hot Key ["+hotKey+"], Menu ["+menu+"], GuestID [" + guestID+"], version ["+version+"]"); + //alert("Smartcard ["+smartcardEnabled+"] disableEffects ["+disableEffects+"], wanOptionsEnabled ["+wanOptionsEnabled+"], colorDepth ["+colorDepth+"], Host IP ["+hostIp+"], port ["+port+"], fullScreen ["+fullScreen+"], password ["+password+"], numberOfMonitors ["+numberOfMonitors+"], Usb Listen Port ["+usbListenPort+"], Admin Console ["+adminConsole+"], Guest HostName ["+guestHostName+"], Secure Port ["+securePort+"], Ssl Chanels ["+sslChanels+"], cipherSuite ["+cipherSuite+"], Host Subject ["+hostSubject+"], Title [" + title+"], Hot Key ["+hotKey+"]); th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::loadXpi(Ljava/lang/String;)(id); var client = document.getElementById(id); client.hostIP = hostIp; @@ -274,43 +286,43 @@ object.addEventListener(eventName, callbackFn, false); } } + var options = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getOptions()(); - var hostIp = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getHost()(); - var port = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPort()(); - var fullScreen = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::isFullScreen()(); - var password = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPassword()(); - var numberOfMonitors = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getNumberOfMonitors()(); - var usbListenPort = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getUsbListenPort()(); - var adminConsole = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::isAdminConsole()(); - var guestHostName = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getGuestHostName()(); - var securePort = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSecurePort()(); - var sslChanels = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSslChanels()(); - var cipherSuite = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getCipherSuite()(); - var hostSubject = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getHostSubject()(); - var trustStore = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getTrustStore()(); - var title = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getTitle()(); + var hostIp = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getHost()(); + var port = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPortAsString()(); + var fullScreen = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isFullScreen()(); + var password = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getTicket()()(); + var numberOfMonitors = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getNumberOfMonitors()(); + var usbListenPort = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getUsbListenPort()(); + var adminConsole = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isAdminConsole()(); + var guestHostName = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getGuestHostName()(); + var securePort = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getSecurePort()(); + var sslChanels = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getSslChanels()(); + var cipherSuite = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getCipherSuite()(); + var hostSubject = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getHostSubject()(); + var trustStore = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getTrustStore()(); + var title = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getTitle()(); var hotKey = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getHotKeysAsString()(); - var menu = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getMenu()(); - var guestID = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getGuestID()(); - var version = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getDesiredVersionStr()(); + var menu = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getMenu()(); + var version = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getPluginVersionStr()(); var spiceCabURL = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSpiceCabURL()(); var spiceCabOjectClassId = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSpiceObjectClassId()(); - var noTaskMgrExecution = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getNoTaskMgrExecution()(); - var usbAutoShare = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getUsbAutoShare()(); - var usbFilter = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getUsbFilter()(); + var noTaskMgrExecution = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isNoTaskMgrExecution()(); + var usbAutoShare = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isUsbAutoShare()(); + var usbFilter = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getUsbFilter()(); var disconnectedEvent = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getDisconnectedEvent()(); var menuItemSelectedEvent = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getMenuItemSelectedEvent()(); var connectedEvent = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getConnectedEvent()(); - var wanOptionsEnabled = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::isWanOptionsEnabled()(); + var wanOptionsEnabled = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::isWanOptionsEnabled()(); // the !! is there to convert the value to boolean because it is returned as int - var smartcardEnabled = !!th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::passSmartcardOption()(); - var colorDepth = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::colorDepthAsInt()(); - var disableEffects = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::disableEffectsAsString()(); - var spiceProxy = th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::getSpiceProxy()(); + var smartcardEnabled = !!optio...@org.ovirt.engine.core.common.console.ConsoleOptions::passSmartcardOption()(); + var colorDepth = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::colorDepthAsInt()(); + var disableEffects = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::disableEffectsAsString()(); + var spiceProxy = optio...@org.ovirt.engine.core.common.console.ConsoleOptions::getSpiceProxy()(); var codebase = spiceCabURL + "#version=" + version; var model = this; var id = "SpiceX_" + guestHostName; - //alert("Host IP ["+hostIp+"], port ["+port+"], fullScreen ["+fullScreen+"], password ["+password+"], numberOfMonitors ["+numberOfMonitors+"], Usb Listen Port ["+usbListenPort+"], Admin Console ["+adminConsole+"], Guest HostName ["+guestHostName+"], Secure Port ["+securePort+"], Ssl Chanels ["+sslChanels+"], cipherSuite ["+cipherSuite+"], Host Subject ["+hostSubject+"], Title [" + title+"], Hot Key ["+hotKey+"], Menu ["+menu+"], GuestID [" + guestID+"], version ["+version+"]"); + //alert("Host IP ["+hostIp+"], port ["+port+"], fullScreen ["+fullScreen+"], password ["+password+"], numberOfMonitors ["+numberOfMonitors+"], Usb Listen Port ["+usbListenPort+"], Admin Console ["+adminConsole+"], Guest HostName ["+guestHostName+"], Secure Port ["+securePort+"], Ssl Chanels ["+sslChanels+"], cipherSuite ["+cipherSuite+"], Host Subject ["+hostSubject+"], Title [" + title+"], Hot Key ["+hotKey+"], Menu ["+menu+"], version ["+version+"]"); //alert("Trust Store ["+trustStore+"]"); th...@org.ovirt.engine.ui.common.uicommon.SpicePluginImpl::loadActiveX(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(id,codebase,spiceCabOjectClassId); @@ -393,4 +405,20 @@ } }-*/; + public void setPluginVersion(Version pluginVersion) { + this.pluginVersion = pluginVersion; + } + + private String getPluginVersionStr() { + return pluginVersion.toString().replace('.', ','); + } + + public String getSpiceBaseURL() { + return spiceBaseURL; + } + + public void setSpiceBaseURL(String spiceBaseURL) { + this.spiceBaseURL = spiceBaseURL; + } + } diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java index bb47bc9..70e6741 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/VncNativeImpl.java @@ -9,26 +9,28 @@ @Override public void invokeClient() { + ConsoleOptions options = getOptions(); StringBuilder configBuilder = new StringBuilder("[virt-viewer]"); //$NON-NLS-1$ configBuilder.append("\ntype=vnc") //$NON-NLS-1$ - .append("\nhost=").append(getVncHost()) //$NON-NLS-1$ - .append("\nport=").append(getVncPort()) //$NON-NLS-1$ - .append("\npassword=").append(getTicket()) //$NON-NLS-1$ + .append("\nhost=").append(options.getHost()) //$NON-NLS-1$ + .append("\nport=").append(options.getPort()) //$NON-NLS-1$ + .append("\npassword=").append(options.getTicket()) //$NON-NLS-1$ .append("\n# Password is valid for ") //$NON-NLS-1$ .append(ConsoleOptions.TICKET_VALIDITY_SECONDS).append(" seconds.") //$NON-NLS-1$ .append("\ndelete-this-file=1") //$NON-NLS-1$ - .append("\ntitle=").append(getTitle()); //$NON-NLS-1$ + .append("\ntitle=").append(options.getTitle()); //$NON-NLS-1$ - if (!StringHelper.isNullOrEmpty(getToggleFullscreenHotKey())) { - configBuilder.append("\ntoggle-fullscreen=").append(getToggleFullscreenHotKey()); //$NON-NLS-1$ + if (!StringHelper.isNullOrEmpty(options.getToggleFullscreenHotKey())) { + configBuilder.append("\ntoggle-fullscreen=").append(options.getToggleFullscreenHotKey()); //$NON-NLS-1$ } - if (!StringHelper.isNullOrEmpty(getReleaseCursorHotKey())) { - configBuilder.append("\nrelease-cursor=").append(getReleaseCursorHotKey()); //$NON-NLS-1$ + String releaseCursorHotKey = options.getReleaseCursorHotKey(); + if (!StringHelper.isNullOrEmpty(releaseCursorHotKey)) { + configBuilder.append("\nrelease-cursor=").append(releaseCursorHotKey); //$NON-NLS-1$ } - if (isRemapCtrlAltDelete() && !StringHelper.isNullOrEmpty(getSecureAttentionMapping())) { - configBuilder.append("\nsecure-attention=").append(getSecureAttentionMapping()); //$NON-NLS-1$ + if (options.isRemapCtrlAltDelete()) { + configBuilder.append("\nsecure-attention=").append(ConsoleOptions.SECURE_ATTENTION_MAPPING); //$NON-NLS-1$ } ConsoleModel.makeConsoleConfigRequest("console.vv", "application/x-virt-viewer; charset=UTF-8", configBuilder.toString()); //$NON-NLS-1$ $NON-NLS-2$ diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/WebClientConsoleInvoker.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/WebClientConsoleInvoker.java index cbf45c5..896abaf 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/WebClientConsoleInvoker.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/uicommon/WebClientConsoleInvoker.java @@ -21,13 +21,13 @@ private final String host; private final String port; - public WebClientConsoleInvoker(String clientPage, WebsocketProxyConfig proxyConfig, String host, String port, String password, boolean useSsl) { + public WebClientConsoleInvoker(String clientPage, WebsocketProxyConfig proxyConfig, String host, Integer port, String password, boolean useSsl) { this.clientPage = clientPage; this.proxyConfig = proxyConfig; this.host = host; - this.port = port; this.password = password; this.useSsl = useSsl; + this.port = (port == null) ? null : port.toString(); } public void invokeClient() { 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 83a038d..facdbf7 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 @@ -126,7 +126,7 @@ try { vmConsoles.getConsoleModel(VncConsoleModel.class).setVncImplementation(VncConsoleModel.ClientConsoleMode .valueOf(clientStorage.getLocalItem(keyMaker.make(VNC_CLIENT_MODE)))); - asVnc(vmConsoles).setRemapCtrlAltDelete(readBool(keyMaker.make(REMAP_CAD_VNC))); + asVnc(vmConsoles).getOptions().setRemapCtrlAltDelete(readBool(keyMaker.make(REMAP_CAD_VNC))); } catch (Exception e) { logger.log(Level.WARNING, "Failed loading VNC data. Exception message: " + e.getMessage()); //$NON-NLS-1$ } @@ -139,19 +139,19 @@ clientStorage.setLocalItem(keyMaker.make(SPICE_CLIENT_MODE), consoleModel.getClientConsoleMode().toString()); - storeBool(keyMaker.make(OPEN_IN_FULL_SCREEN), spice.isFullScreen()); - storeBool(keyMaker.make(SMARTCARD_ENABLED_OVERRIDDEN), spice.isSmartcardEnabledOverridden()); - storeBool(keyMaker.make(WAN_OPTIONS), spice.isWanOptionsEnabled()); - storeBool(keyMaker.make(USB_AUTOSHARE), spice.getUsbAutoShare()); - storeBool(keyMaker.make(SPICE_PROXY_ENABLED), spice.isSpiceProxyEnabled()); - storeBool(keyMaker.make(REMAP_CAD_SPICE), spice.isRemapCtrlAltDel()); + storeBool(keyMaker.make(OPEN_IN_FULL_SCREEN), spice.getOptions().isFullScreen()); + storeBool(keyMaker.make(SMARTCARD_ENABLED_OVERRIDDEN), spice.getOptions().isSmartcardEnabledOverridden()); + storeBool(keyMaker.make(WAN_OPTIONS), spice.getOptions().isWanOptionsEnabled()); + storeBool(keyMaker.make(USB_AUTOSHARE), spice.getOptions().isUsbAutoShare()); + storeBool(keyMaker.make(SPICE_PROXY_ENABLED), spice.getOptions().isSpiceProxyEnabled()); + storeBool(keyMaker.make(REMAP_CAD_SPICE), spice.getOptions().isRemapCtrlAltDelete()); } private void storeVncData(VmConsoles vmConsoles, KeyMaker keyMaker) { VncConsoleModel consoleModel = vmConsoles.getConsoleModel(VncConsoleModel.class); if (consoleModel != null) { clientStorage.setLocalItem(keyMaker.make(VNC_CLIENT_MODE), consoleModel.getClientConsoleMode().toString()); - storeBool(keyMaker.make(REMAP_CAD_VNC), consoleModel.getVncImpl().isRemapCtrlAltDelete()); + storeBool(keyMaker.make(REMAP_CAD_VNC), consoleModel.getVncImpl().getOptions().isRemapCtrlAltDelete()); } } @@ -183,17 +183,17 @@ ISpice spice = asSpice(vmConsoles); if (vmConsoles.getConsoleModel(SpiceConsoleModel.class).isWanOptionsAvailableForMyVm()) { - spice.setWanOptionsEnabled(readBool(keyMaker.make(WAN_OPTIONS))); + spice.getOptions().setWanOptionsEnabled(readBool(keyMaker.make(WAN_OPTIONS))); } if (consoleUtils.isSpiceProxyDefined(vmConsoles.getVm())) { - spice.setSpiceProxyEnabled(readBool(keyMaker.make(SPICE_PROXY_ENABLED))); + spice.getOptions().setSpiceProxyEnabled(readBool(keyMaker.make(SPICE_PROXY_ENABLED))); } - spice.setFullScreen(readBool(keyMaker.make(OPEN_IN_FULL_SCREEN))); - spice.setOverrideEnabledSmartcard(readBool(keyMaker.make(SMARTCARD_ENABLED_OVERRIDDEN))); - spice.setUsbAutoShare(readBool(keyMaker.make(USB_AUTOSHARE))); - spice.setRemapCtrlAltDel(readBool(keyMaker.make(REMAP_CAD_SPICE))); + spice.getOptions().setFullScreen(readBool(keyMaker.make(OPEN_IN_FULL_SCREEN))); + spice.getOptions().setSmartcardEnabledOverridden(readBool(keyMaker.make(SMARTCARD_ENABLED_OVERRIDDEN))); + spice.getOptions().setUsbAutoShare(readBool(keyMaker.make(USB_AUTOSHARE))); + spice.getOptions().setRemapCtrlAltDelete(readBool(keyMaker.make(REMAP_CAD_SPICE))); } protected ISpice asSpice(VmConsoles vmConsoles) { diff --git a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java index df4508f..4e8fc66 100644 --- a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java +++ b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/view/popup/ConsolePopupView.java @@ -213,12 +213,12 @@ @Override protected void updateModel(ISpice spice, boolean value) { - spice.setOverrideEnabledSmartcard(value); + spice.getOptions().setSmartcardEnabledOverridden(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.isSmartcardEnabledOverridden(); + return spice.getOptions().isSmartcardEnabledOverridden(); } }); @@ -228,12 +228,12 @@ @Override protected void updateModel(ISpice spice, boolean value) { - spice.setWanOptionsEnabled(value); + spice.getOptions().setWanOptionsEnabled(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.isWanOptionsEnabled(); + return spice.getOptions().isWanOptionsEnabled(); } }); @@ -242,12 +242,12 @@ remapCtrlAltDeleteSpice = new EntityModelValueCheckBoxEditor<ConsoleModel>(Align.RIGHT, new SpiceRenderer() { @Override protected void updateModel(ISpice spice, boolean value) { - spice.setRemapCtrlAltDel(value); + spice.getOptions().setRemapCtrlAltDelete(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.isRemapCtrlAltDel(); + return spice.getOptions().isRemapCtrlAltDelete(); } }); @@ -255,12 +255,12 @@ remapCtrlAltDeleteVnc = new EntityModelValueCheckBoxEditor<ConsoleModel>(Align.RIGHT, new VncRenderer() { @Override protected void updateModel(IVnc vnc, boolean value) { - vnc.setRemapCtrlAltDelete(value); + vnc.getOptions().setRemapCtrlAltDelete(value); } @Override protected boolean extractBoolean(IVnc vnc) { - return vnc.isRemapCtrlAltDelete(); + return vnc.getOptions().isRemapCtrlAltDelete(); } }); @@ -268,12 +268,12 @@ @Override protected void updateModel(ISpice spice, boolean value) { - spice.setUsbAutoShare(value); + spice.getOptions().setUsbAutoShare(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.getUsbAutoShare(); + return spice.getOptions().isUsbAutoShare(); } }); enableUsbAutoshare.setLabel(constants.usbAutoshare()); @@ -282,12 +282,12 @@ @Override protected void updateModel(ISpice spice, boolean value) { - spice.setFullScreen(value); + spice.getOptions().setFullScreen(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.isFullScreen(); + return spice.getOptions().isFullScreen(); } }); openInFullScreen.setLabel(constants.openInFullScreen()); @@ -296,12 +296,12 @@ @Override protected void updateModel(ISpice spice, boolean value) { - spice.setSpiceProxyEnabled(value); + spice.getOptions().setSpiceProxyEnabled(value); } @Override protected boolean extractBoolean(ISpice spice) { - return spice.isSpiceProxyEnabled(); + return spice.getOptions().isSpiceProxyEnabled(); } }); enableSpiceProxy.setLabel(constants.enableSpiceProxy()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java index 9454903..8dd2ee7 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Configurator.java @@ -8,6 +8,7 @@ import org.ovirt.engine.ui.frontend.utils.FrontendUrlUtils; import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider; import org.ovirt.engine.ui.uicommonweb.models.vms.ISpice; +import org.ovirt.engine.ui.uicommonweb.models.vms.ISpicePlugin; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; @@ -263,12 +264,14 @@ } public void configure(ISpice spice) { - spice.setDesiredVersion(getSpiceVersion()); - spice.setCurrentVersion(getSpiceVersion()); - spice.setAdminConsole(getSpiceAdminConsole()); - spice.setFullScreen(getSpiceFullScreen()); - spice.setSpiceBaseURL(getSpiceBaseURL()); - spice.setUsbFilter(getUsbFilter()); + if (spice instanceof ISpicePlugin) { + ((ISpicePlugin) spice).setPluginVersion(getSpiceVersion()); + ((ISpicePlugin) spice).setSpiceBaseURL(getSpiceBaseURL()); + } + + spice.getOptions().setAdminConsole(getSpiceAdminConsole()); + spice.getOptions().setFullScreen(getSpiceFullScreen()); + spice.getOptions().setUsbFilter(getUsbFilter()); updateSpiceUsbAutoShare(spice); if (!isInitialized) { @@ -293,7 +296,7 @@ new INewAsyncCallback() { @Override public void onSuccess(Object target, Object returnValue) { - spice.setUsbAutoShare((Boolean) returnValue); + spice.getOptions().setUsbAutoShare((Boolean) returnValue); } })); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleClient.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleClient.java new file mode 100644 index 0000000..8e1fe40 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleClient.java @@ -0,0 +1,8 @@ +package org.ovirt.engine.ui.uicommonweb.models.vms; + +import org.ovirt.engine.core.common.console.ConsoleOptions; + +public interface ConsoleClient { + ConsoleOptions getOptions(); + void invokeClient(); +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java index 156e8d3..24a6c0b 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ConsoleModel.java @@ -7,8 +7,6 @@ import com.google.gwt.user.client.ui.FormPanel.SubmitCompleteHandler; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextArea; -import org.ovirt.engine.core.common.businessentities.GraphicsInfo; -import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; import org.ovirt.engine.core.common.queries.ConfigurationValues; @@ -35,8 +33,6 @@ public abstract class ConsoleModel extends EntityModel<VM> { public static final String GET_ATTACHMENT_SERVLET_URL = BaseContextPathData.getInstance().getPath() + "services/attachment/"; //$NON-NLS-1$ - - protected static final int TICKET_VALIDITY_SECONDS = 120; private static String EJECT_LABEL; @@ -319,11 +315,4 @@ return getEntity().getName() + ":%d" + releaseCursorMsg; //$NON-NLS-1$ } - protected Integer extractDisplayPort(GraphicsType graphicsType) { - GraphicsInfo graphicsInfo = getEntity().getGraphicsInfos().get(graphicsType); - if (graphicsInfo != null && graphicsInfo.getPort() != null) { - return graphicsInfo.getPort(); - } - return 0; - } } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java index a175a76..870bec0 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpice.java @@ -1,164 +1,12 @@ package org.ovirt.engine.ui.uicommonweb.models.vms; -import java.util.List; - -import org.ovirt.engine.core.common.console.ConsoleOptions.WanColorDepth; -import org.ovirt.engine.core.common.console.ConsoleOptions.WanDisableEffects; -import org.ovirt.engine.core.compat.Version; import org.ovirt.engine.ui.uicompat.Event; import org.ovirt.engine.ui.uicompat.EventArgs; -/** - * Represents an implementor of a Spice. That way we have a bridge between Console model and concrete Spice accessor. In - * case of WPF there will be direct Spice ActiveX instantiation, while Web implementor of Spice will generate - * corresponding HTML. - */ -public interface ISpice { +public interface ISpice extends ConsoleClient { Event<EventArgs> getDisconnectedEvent(); - Event<EventArgs> getConnectedEvent(); - Event<EventArgs> getMenuItemSelectedEvent(); - - Event<EventArgs> getUsbAutoShareChangedEvent(); - - Event<EventArgs> getWANDisableEffectsChangeEvent(); - - Event<EventArgs> getWANColorDepthChangedEvent(); - - Version getCurrentVersion(); - - Version getDesiredVersion(); - - void setDesiredVersion(Version value); - - int getPort(); - - void setPort(int value); - - String getHost(); - - void setHost(String value); - - boolean isFullScreen(); - - void setFullScreen(boolean value); - - String getPassword(); - - void setPassword(String value); - - int getNumberOfMonitors(); - - void setNumberOfMonitors(int value); - - int getUsbListenPort(); - - void setUsbListenPort(int value); - - boolean isAdminConsole(); - - void setAdminConsole(boolean value); - - String getGuestHostName(); - - void setGuestHostName(String value); - - int getSecurePort(); - - void setSecurePort(int value); - - String getSslChanels(); - - void setSslChanels(String value); - - String getCipherSuite(); - - void setCipherSuite(String value); - - String getHostSubject(); - - void setHostSubject(String value); - - String getTrustStore(); - - void setTrustStore(String value); - - String getTitle(); - - void setTitle(String value); - - String getToggleFullscreenHotKey(); - - void setToggleFullscreenHotKey(String toggleFullscreenHotKey); - - String getReleaseCursorHotKey(); - - void setReleaseCursorHotKey(String releaseCursorHotKey); - - String[] getLocalizedStrings(); - - void setLocalizedStrings(String[] value); - - String getMenu(); - - void setMenu(String value); - - String getGuestID(); - - void setGuestID(String value); - - boolean getNoTaskMgrExecution(); - - void setNoTaskMgrExecution(boolean value); - - boolean isRemapCtrlAltDel(); - - void setRemapCtrlAltDel(boolean value); - - boolean getUsbAutoShare(); - - void setUsbAutoShare(boolean value); - - void setWANDisableEffects(List<WanDisableEffects> disableEffects); - - List<WanDisableEffects> getWANDisableEffects(); - - void setWANColorDepth(WanColorDepth colorDepth); - - WanColorDepth getWANColorDepth(); - - String getUsbFilter(); - - void setUsbFilter(String value); - - void connect(); - - void setCurrentVersion(Version currentVersion); - - void setSpiceBaseURL(String spiceBaseURL); - - boolean isWanOptionsEnabled(); - - void setWanOptionsEnabled(boolean enabled); - - public void setSmartcardEnabled(boolean enabled); - - boolean isSmartcardEnabled(); - - void setOverrideEnabledSmartcard(boolean enabled); - - boolean isSmartcardEnabledOverridden(); - - void setSpiceProxy(String spiceProxy); - - void setSpiceProxyEnabled(boolean enabled); - - boolean isSpiceProxyEnabled(); - - void setTicketValiditySeconds(int seconds); - - int getTicketValiditySeconds(); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpicePlugin.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpicePlugin.java index 01cad5e..b843e8e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpicePlugin.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ISpicePlugin.java @@ -1,7 +1,11 @@ package org.ovirt.engine.ui.uicommonweb.models.vms; +import org.ovirt.engine.core.compat.Version; + public interface ISpicePlugin extends ISpice { - public boolean detectBrowserPlugin(); + boolean detectBrowserPlugin(); + void setPluginVersion(Version value); + void setSpiceBaseURL(String spiceBaseURL); } diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java index d110f83..4cc1ee0 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/IVnc.java @@ -1,16 +1,5 @@ package org.ovirt.engine.ui.uicommonweb.models.vms; -public interface IVnc { - - void setVncHost(String host); - void setVncPort(String port); - void setTicket(String ticket); - void setTitle(String title); - boolean isRemapCtrlAltDelete(); - void setRemapCtrlAltDelete(boolean remapCtrlAltDelete); - void setToggleFullscreenHotKey(String toggleFullscreenHotKey); - void setReleaseCursorHotKey(String releaseCursorHotKey); - - void invokeClient(); - +public interface IVnc extends ConsoleClient { + // todo consider existence of these markers } 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 4270f3b..aa657ca 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 @@ -1,6 +1,5 @@ package org.ovirt.engine.ui.uicommonweb.models.vms; -import com.google.gwt.user.client.Window; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -23,6 +22,7 @@ import org.ovirt.engine.core.common.businessentities.UsbPolicy; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.businessentities.VMStatus; +import org.ovirt.engine.core.common.console.ConsoleOptions; import org.ovirt.engine.core.common.errors.VdcBllErrors; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.GetConfigurationValueParameters; @@ -60,9 +60,6 @@ public static EventDefinition spiceDisconnectedEventDefinition; public static EventDefinition spiceConnectedEventDefinition; public static EventDefinition spiceMenuItemSelectedEventDefinition; - public static EventDefinition usbAutoShareChangedEventDefinition; - public static EventDefinition wanColorDepthChangedEventDefinition; - public static EventDefinition wanDisableEffectsChangeEventDefinition; private SpiceMenu menu; private ISpice privatespice; @@ -80,9 +77,6 @@ spiceDisconnectedEventDefinition = new EventDefinition("SpiceDisconnected", SpiceConsoleModel.class); //$NON-NLS-1$ spiceConnectedEventDefinition = new EventDefinition("SpiceConnected", SpiceConsoleModel.class); //$NON-NLS-1$ spiceMenuItemSelectedEventDefinition = new EventDefinition("SpiceMenuItemSelected", SpiceConsoleModel.class); //$NON-NLS-1$ - usbAutoShareChangedEventDefinition = new EventDefinition("UsbAutoShareChanged", SpiceConsoleModel.class); //$NON-NLS-1$ - wanColorDepthChangedEventDefinition = new EventDefinition("ColorDepthChanged", SpiceConsoleModel.class); //$NON-NLS-1$ - wanDisableEffectsChangeEventDefinition = new EventDefinition("DisableEffectsChange", SpiceConsoleModel.class); //$NON-NLS-1$ } public SpiceConsoleModel(VM myVm, Model parentModel) { @@ -147,7 +141,7 @@ if (getEntity() != null) { boolean isSpiceProxyDefined = consoleUtils.isSpiceProxyDefined(getEntity()); - getspice().setSpiceProxyEnabled(isSpiceProxyDefined); + getspice().getOptions().setSpiceProxyEnabled(isSpiceProxyDefined); } } @@ -166,13 +160,6 @@ protected void connect() { if (getEntity() != null) { getLogger().debug("Connecting to Spice console..."); //$NON-NLS-1$ - // Check a spice version. - if (getConfigurator().getIsAdmin() - && getspice().getCurrentVersion().compareTo(getspice().getDesiredVersion()) < 0) - { - Window.alert("Spice client version is not as desired (" + getspice().getDesiredVersion() + ")"); //$NON-NLS-1$ //$NON-NLS-2$ - return; - } // Don't connect if there VM is not running on any host. if (getEntity().getRunOnVds() == null) { @@ -181,7 +168,7 @@ // If it is not windows or SPICE guest agent is not installed, make sure the WAN options are disabled. if (!AsyncDataProvider.getInstance().isWindowsOsType(getEntity().getVmOsId()) || !getEntity().getHasSpiceDriver()) { - getspice().setWanOptionsEnabled(false); + getspice().getOptions().setWanOptionsEnabled(false); } UICommand setVmTicketCommand = new UICommand("setVmCommand", new BaseCommandTarget() { //$NON-NLS-1$ @@ -377,47 +364,44 @@ if (spiceInfo == null) { throw new IllegalStateException("Trying to invoke SPICE console but VM GraphicsInfo is null.");//$NON-NLS-1$ } - getspice().setSmartcardEnabled(getEntity().isSmartcardEnabled()); - Integer port = spiceInfo.getPort(); - getspice().setPort(port == null ? 0 : port); - getspice().setPassword(ticket); - getspice().setTicketValiditySeconds(TICKET_VALIDITY_SECONDS); - getspice().setNumberOfMonitors(getEntity().getNumOfMonitors()); - getspice().setGuestHostName(getEntity().getVmHost().split("[ ]", -1)[0]); //$NON-NLS-1$ + ConsoleOptions options = getspice().getOptions(); + options.setSmartcardEnabled(getEntity().isSmartcardEnabled()); + int port = 0; + if (spiceInfo.getPort() != null) { + port = spiceInfo.getPort(); + } + options.setPort(port); + options.setTicket(ticket); + options.setNumberOfMonitors(getEntity().getNumOfMonitors()); + options.setGuestHostName(getEntity().getVmHost().split("[ ]", -1)[0]); //$NON-NLS-1$ if (spiceInfo.getTlsPort() != null) { - getspice().setSecurePort(spiceInfo.getTlsPort()); + options.setSecurePort(spiceInfo.getTlsPort()); } if (!StringHelper.isNullOrEmpty(spiceSecureChannels)) { - getspice().setSslChanels(spiceSecureChannels); + options.setSslChanels(spiceSecureChannels); } if (!StringHelper.isNullOrEmpty(cipherSuite)) { - getspice().setCipherSuite(cipherSuite); + options.setCipherSuite(cipherSuite); } - getspice().setHostSubject(certificateSubject); - getspice().setTrustStore(caCertificate); + options.setHostSubject(certificateSubject); + options.setTrustStore(caCertificate); - getspice().setTitle(getClientTitle()); + options.setTitle(getClientTitle()); - getspice().setSpiceProxy(determineSpiceProxy()); + options.setSpiceProxy(determineSpiceProxy()); // If 'AdminConsole' is true, send true; otherwise, false should be sent only for VMs with SPICE driver // installed. - getspice().setAdminConsole(getConfigurator().getSpiceAdminConsole() ? true : !getEntity().getHasSpiceDriver()); + options.setAdminConsole(getConfigurator().getSpiceAdminConsole() ? true : !getEntity().getHasSpiceDriver()); // Update 'UsbListenPort' value - getspice().setUsbListenPort(getConfigurator().getIsUsbEnabled() + options.setUsbListenPort(getConfigurator().getIsUsbEnabled() && getEntity().getUsbPolicy() == UsbPolicy.ENABLED_LEGACY ? getConfigurator().getSpiceDefaultUsbPort() : getConfigurator().getSpiceDisableUsbListenPort()); - getspice().setToggleFullscreenHotKey(getToggleFullScreenKeys()); - getspice().setReleaseCursorHotKey(getReleaseCursorKeys()); - - getspice().setLocalizedStrings(new String[]{ - ConstantsManager.getInstance().getConstants().usb(), - ConstantsManager.getInstance() - .getConstants() - .usbDevicesNoUsbdevicesClientSpiceUsbRedirectorNotInstalled()}); + options.setToggleFullscreenHotKey(getToggleFullScreenKeys()); + options.setReleaseCursorHotKey(getReleaseCursorKeys()); // Create menu. int id = 1; @@ -466,9 +450,7 @@ .getConstants() .stopSpiceConsole(), CommandStop)); - getspice().setMenu(menu.toString()); - - getspice().setGuestID(getEntity().getId().toString()); + options.setMenu(menu.toString()); // Subscribe to events. getspice().getDisconnectedEvent().addListener(this); @@ -480,13 +462,13 @@ } else { // Try to connect. - getspice().setHost(displayIp); + options.setHost(displayIp); spiceConnect(); } } private String determineSpiceProxy() { - if (!getspice().isSpiceProxyEnabled()) { + if (!getspice().getOptions().isSpiceProxyEnabled()) { return null; } @@ -519,7 +501,7 @@ SpiceConsoleModel spiceConsoleModel = (SpiceConsoleModel) model; String address = (String) ((VdcQueryReturnValue) ReturnValue).getReturnValue(); - spiceConsoleModel.getspice().setHost(address); + spiceConsoleModel.getspice().getOptions().setHost(address); spiceConsoleModel.spiceConnect(); } }; @@ -531,7 +513,7 @@ private void setVmTicket() { // Create ticket for single sign on. - Frontend.getInstance().runAction(VdcActionType.SetVmTicket, new SetVmTicketParameters(getEntity().getId(), null, TICKET_VALIDITY_SECONDS, GraphicsType.SPICE), + Frontend.getInstance().runAction(VdcActionType.SetVmTicket, new SetVmTicketParameters(getEntity().getId(), null, ConsoleOptions.TICKET_VALIDITY_SECONDS, GraphicsType.SPICE), new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { @@ -642,7 +624,7 @@ public void spiceConnect() { try { - getspice().connect(); + getspice().invokeClient(); } catch (RuntimeException ex) { getLogger().error("Exception on Spice connect", ex); //$NON-NLS-1$ } 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 ea6e60e..0707ed5 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 @@ -6,6 +6,7 @@ import org.ovirt.engine.core.common.businessentities.GraphicsInfo; import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.businessentities.VM; +import org.ovirt.engine.core.common.console.ConsoleOptions; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryReturnValue; @@ -114,7 +115,7 @@ Frontend.getInstance().runAction(VdcActionType.SetVmTicket, new SetVmTicketParameters(getEntity().getId(), null, - TICKET_VALIDITY_SECONDS, GraphicsType.VNC), new IFrontendActionAsyncCallback() { + ConsoleOptions.TICKET_VALIDITY_SECONDS, GraphicsType.VNC), new IFrontendActionAsyncCallback() { @Override public void executed(FrontendActionAsyncResult result) { @@ -152,14 +153,13 @@ } private void setAndInvokeClient() { - vncImpl.setVncHost(getHost()); + vncImpl.getOptions().setHost(getHost()); GraphicsInfo vncInfo = getEntity().getGraphicsInfos().get(GraphicsType.VNC); - Integer port = vncInfo.getPort(); - vncImpl.setVncPort(port == null ? null : port.toString()); - vncImpl.setTicket(getOtp64()); - vncImpl.setTitle(getClientTitle()); - vncImpl.setToggleFullscreenHotKey(getToggleFullScreenKeys()); - vncImpl.setReleaseCursorHotKey(getReleaseCursorKeys()); + vncImpl.getOptions().setPort(vncInfo.getPort()); + vncImpl.getOptions().setTicket(getOtp64()); + vncImpl.getOptions().setTitle(getClientTitle()); + vncImpl.getOptions().setToggleFullscreenHotKey(getToggleFullScreenKeys()); + vncImpl.getOptions().setReleaseCursorHotKey(getReleaseCursorKeys()); vncImpl.invokeClient(); } diff --git a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java index 36e786a..599dae6 100644 --- a/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java +++ b/frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java @@ -1815,12 +1815,6 @@ @DefaultStringValue("No host found in 'UP' state in the cluster, please select another cluster.") String volumeEmptyClusterValidationMsg(); - @DefaultStringValue("USB") - String usb(); - - @DefaultStringValue("USB Devices,No USB devices,Client's SPICE USB Redirector is not installed") - String usbDevicesNoUsbdevicesClientSpiceUsbRedirectorNotInstalled(); - @DefaultStringValue("Change CD") String changeCd(); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java index 0ee8378..80eb9eb 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/section/main/presenter/tab/basic/MainTabBasicDetailsPresenterWidget.java @@ -219,7 +219,7 @@ ConsoleProtocol selectedProcotol = vmConsoles.getSelectedProcotol(); boolean smartcardEnabled = selectedProcotol == ConsoleProtocol.SPICE && vmConsoles.getVm().isSmartcardEnabled(); - boolean smartcardOverriden = vmConsoles.getConsoleModel(SpiceConsoleModel.class).getspice().isSmartcardEnabledOverridden(); + boolean smartcardOverriden = vmConsoles.getConsoleModel(SpiceConsoleModel.class).getspice().getOptions().isSmartcardEnabledOverridden(); if (smartcardEnabled && !smartcardOverriden) { return messages.consoleWithSmartcard(consoleTypeToName.get(selectedProcotol)); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java index 3b91d71..10dc88b 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/java/org/ovirt/engine/ui/userportal/uicommon/UserPortalConfigurator.java @@ -83,7 +83,7 @@ @SuppressWarnings("unchecked") @Override public void onSuccess(Object target, Object returnValue) { - spice.setWANDisableEffects((List<WanDisableEffects>) returnValue); + spice.getOptions().setWanDisableEffects((List<WanDisableEffects>) returnValue); } })); } @@ -92,7 +92,7 @@ AsyncDataProvider.getInstance().getWANColorDepth(new AsyncQuery(this, new INewAsyncCallback() { @Override public void onSuccess(Object target, Object returnValue) { - spice.setWANColorDepth((WanColorDepth) returnValue); + spice.getOptions().setWanColorDepth((WanColorDepth) returnValue); } })); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java index d0b5264..feffbf6 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/uicommon/WebAdminConfigurator.java @@ -61,8 +61,8 @@ @Override public void configure(ISpice spice) { super.configure(spice); - spice.setWANDisableEffects(new ArrayList<WanDisableEffects>()); - spice.setWanOptionsEnabled(false); + spice.getOptions().setWanDisableEffects(new ArrayList<WanDisableEffects>()); + spice.getOptions().setWanOptionsEnabled(false); } @Override -- To view, visit https://gerrit.ovirt.org/37973 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5a5b5b323f788bd2882984a2dce183791f72949d Gerrit-PatchSet: 6 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Frank Kobzik <fkob...@redhat.com> Gerrit-Reviewer: Tomas Jelinek <tjeli...@redhat.com> Gerrit-Reviewer: automat...@ovirt.org Gerrit-Reviewer: oVirt Jenkins CI Server _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches