Frank Kobzik has uploaded a new change for review. Change subject: frontend: use GraphicsInfo instead of VmDynamic atts ......................................................................
frontend: use GraphicsInfo instead of VmDynamic atts Starting with this patch, frontend console classes retrieve console data (port, ip,...) from GraphicsInfo structures instead of simple VmDynamic attributes. Change-Id: Iae7d8a7a4b4cdd801ecf3c9c055c8a56aa796286 Signed-off-by: Frantisek Kobzik <[email protected]> Bug-Url: https://bugzilla.redhat.com/1033547 --- M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.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/SpiceConsoleModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VncConsoleModel.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java 6 files changed, 78 insertions(+), 69 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/28573/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java index da4e07f..9e2c62e 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java @@ -131,6 +131,7 @@ vm.setDisplayIp(instance.getDisplayIp()); vm.setDisplaySecurePort(instance.getDisplaySecurePort()); vm.setDisplayType(instance.getDisplayType()); + vm.getGraphicsInfos().putAll(instance.getGraphicsInfos()); vm.getDynamicData().setVncKeyboardLayout(instance.getDynamicData().getVncKeyboardLayout()); vm.setElapsedTime(instance.getElapsedTime()); vm.setRoundedElapsedTime(instance.getRoundedElapsedTime()); diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java index c117be5..e64ca70 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/ConsolesBase.java @@ -4,7 +4,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.ui.uicommonweb.ConsoleOptionsFrontendPersister; import org.ovirt.engine.ui.uicommonweb.models.vms.ConsoleModel; @@ -116,8 +116,13 @@ } public void setVm(VM newVm) { - DisplayType oldDisplayType = getVm().getDisplayType(); - DisplayType oldDefaultDisplayType = getVm().getDefaultDisplayType(); + boolean graphicsTypeChanged = false; + for (GraphicsType graphicsType : getVm().getGraphicsInfos().keySet()) { + if (getVm().getGraphicsInfos().get(graphicsType).isSet() != newVm.getGraphicsInfos().get(graphicsType).isSet()) { + graphicsTypeChanged = true; + } + } + int oldOs = getVm().getOs(); this.vm = newVm; @@ -127,9 +132,7 @@ } // if display types changed, we'd like to update the default selected protocol as the old one may be invalid - if (newVm.getDisplayType() != oldDisplayType - || newVm.getDefaultDisplayType() != oldDefaultDisplayType - || newVm.getOs() != oldOs) { + if (graphicsTypeChanged || newVm.getOs() != oldOs) { setDefaultSelectedProtocol(); } } 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 0858664..888c891 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,6 +7,7 @@ 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.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; @@ -317,4 +318,10 @@ return getEntity().getName() + ":%d" + releaseCursorMsg; //$NON-NLS-1$ } + protected Integer extractDisplayPort(GraphicsType graphicsType) { + if (getEntity().getGraphicsInfos().get(graphicsType).getPort() != null) { + return getEntity().getGraphicsInfos().get(graphicsType).getPort(); + } + return 0; + } } 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 f4a8b62..f35a015 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 @@ -13,7 +13,8 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.action.VmOperationParameterBase; -import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.GraphicsInfo; +import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.businessentities.ImageFileType; import org.ovirt.engine.core.common.businessentities.RepoImage; import org.ovirt.engine.core.common.businessentities.SsoMethod; @@ -189,12 +190,8 @@ @Override public boolean canBeSelected() { - DisplayType displayType = getEntity().getDisplayType() != null - ? getEntity().getDisplayType() - : getEntity().getDefaultDisplayType(); boolean hasVmSpiceSupport = Boolean.TRUE.equals(AsyncDataProvider.hasSpiceSupport(getEntity().getOs(), getEntity().getVdsGroupCompatibilityVersion())); - - return displayType == DisplayType.qxl && hasVmSpiceSupport; + return getEntity().getGraphicsInfos().get(GraphicsType.SPICE).isSet() && hasVmSpiceSupport; } @Override @@ -375,14 +372,15 @@ getspice().setHost(getEntity().getDisplayIp()); getspice().setSmartcardEnabled(getEntity().isSmartcardEnabled()); - getspice().setPort((getEntity().getDisplay() == null ? 0 : getEntity().getDisplay())); + Integer port = getEntity().getGraphicsInfos().get(GraphicsType.SPICE).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$ - if (getEntity().getDisplaySecurePort() != null) - { - getspice().setSecurePort(getEntity().getDisplaySecurePort()); + GraphicsInfo spiceInfo = getEntity().getGraphicsInfos().get(GraphicsType.SPICE); + if (spiceInfo.getTlsPort() != null) { + getspice().setSecurePort(spiceInfo.getTlsPort()); } if (!StringHelper.isNullOrEmpty(spiceSecureChannels)) { getspice().setSslChanels(spiceSecureChannels); 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 b58c6f8..a39e967 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 @@ -3,7 +3,7 @@ import org.ovirt.engine.core.common.action.SetVmTicketParameters; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; -import org.ovirt.engine.core.common.businessentities.DisplayType; +import org.ovirt.engine.core.common.businessentities.GraphicsType; import org.ovirt.engine.core.common.queries.ConfigurationValues; import org.ovirt.engine.core.common.businessentities.VM; import org.ovirt.engine.core.common.queries.IdQueryParameters; @@ -34,14 +34,6 @@ private String otp64 = null; private IVnc vncImpl; - - private String getPort() { - if (getEntity() == null && getEntity().getDisplay() == null) { - return null; - } - - return getEntity().getDisplay().toString(); - } private String getHost() { return host; @@ -109,56 +101,50 @@ @Override public boolean canBeSelected() { - DisplayType vmDisplayType = getEntity().getDisplayType() != null - ? getEntity().getDisplayType() - : getEntity().getDefaultDisplayType(); - - return vmDisplayType == DisplayType.vnc; + return getEntity().getGraphicsInfos().get(GraphicsType.VNC).isSet(); } private void setVmTicket() { Frontend.getInstance().runAction(VdcActionType.SetVmTicket, new SetVmTicketParameters(getEntity().getId(), - null, - TICKET_VALIDITY_SECONDS), new IFrontendActionAsyncCallback() { + null, + TICKET_VALIDITY_SECONDS), new IFrontendActionAsyncCallback() { - @Override - public void executed(FrontendActionAsyncResult result) { + @Override + public void executed(FrontendActionAsyncResult result) { - VdcReturnValueBase ticketReturnValue = result.getReturnValue(); - if (ticketReturnValue != null && ticketReturnValue.getActionReturnValue() != null) + VdcReturnValueBase ticketReturnValue = result.getReturnValue(); + if (ticketReturnValue != null && ticketReturnValue.getActionReturnValue() != null) { + otp64 = (String) ticketReturnValue.getActionReturnValue(); + // Determine the display IP. + if (StringHelper.isNullOrEmpty(getEntity().getDisplayIp()) + || "0".equals(getEntity().getDisplayIp())) //$NON-NLS-1$ { - otp64 = (String) ticketReturnValue.getActionReturnValue(); - // Determine the display IP. - if (StringHelper.isNullOrEmpty(getEntity().getDisplayIp()) - || "0".equals(getEntity().getDisplayIp())) //$NON-NLS-1$ - { - AsyncQuery _asyncQuery = new AsyncQuery(); - _asyncQuery.setModel(this); - _asyncQuery.asyncCallback = new INewAsyncCallback() { - @Override - public void onSuccess(Object model, Object ReturnValue) - { - VncConsoleModel consoleModel = (VncConsoleModel) model; - VncConsoleModel.this.host = (String) ((VdcQueryReturnValue) ReturnValue).getReturnValue(); - consoleModel.setAndInvokeClient(); - } - }; + AsyncQuery _asyncQuery = new AsyncQuery(); + _asyncQuery.setModel(this); + _asyncQuery.asyncCallback = new INewAsyncCallback() { + @Override + public void onSuccess(Object model, Object ReturnValue) { + VncConsoleModel consoleModel = (VncConsoleModel) model; + VncConsoleModel.this.host = (String) ((VdcQueryReturnValue) ReturnValue).getReturnValue(); + consoleModel.setAndInvokeClient(); + } + }; - Frontend.getInstance().runQuery(VdcQueryType.GetManagementInterfaceAddressByVmId, - new IdQueryParameters(getEntity().getId()), _asyncQuery); - } - else { - VncConsoleModel.this.host = getEntity().getDisplayIp(); - setAndInvokeClient(); - } + Frontend.getInstance().runQuery(VdcQueryType.GetManagementInterfaceAddressByVmId, + new IdQueryParameters(getEntity().getId()), _asyncQuery); + } else { + VncConsoleModel.this.host = getEntity().getDisplayIp(); + setAndInvokeClient(); } } - }); + } + }); } private void setAndInvokeClient() { vncImpl.setVncHost(getHost()); - vncImpl.setVncPort(getPort()); + Integer port = getEntity().getGraphicsInfos().get(GraphicsType.VNC).getPort(); + vncImpl.setVncPort(port == null ? null : port.toString()); vncImpl.setTicket(getOtp64()); vncImpl.setTitle(getClientTitle()); vncImpl.setToggleFullscreenHotKey(getToggleFullScreenKeys()); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java index b656ed5..58ebb89 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/tab/MainTabVirtualMachineView.java @@ -7,7 +7,9 @@ import com.google.gwt.cell.client.CompositeCell; import com.google.gwt.cell.client.HasCell; import com.google.gwt.user.cellview.client.Column; -import org.ovirt.engine.core.common.businessentities.DisplayType; +import java.util.Map; +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.ui.common.CommonApplicationConstants; @@ -153,18 +155,30 @@ }; getTable().addColumn(migrationProgressColumn, constants.migrationProgress(), "60px"); //$NON-NLS-1$ - TextColumnWithTooltip<VM> displayColumn = new EnumColumn<VM, DisplayType>() { - @Override - protected DisplayType getRawValue(VM object) { - return object.getDisplayType(); - } - + TextColumnWithTooltip<VM> displayColumn = new TextColumnWithTooltip<VM>() { @Override public String getValue(VM object) { if ((object.getStatus() == VMStatus.Down) || (object.getStatus() == VMStatus.ImageLocked)) return ""; //$NON-NLS-1$ else - return renderer.render(getRawValue(object)); + return getText(object); + } + + private String getText(VM object) { + String value = ""; + + Map<GraphicsType, GraphicsInfo> graphicsInfos = object.getGraphicsInfos(); + for (GraphicsType graphicsType : graphicsInfos.keySet()) { + if (graphicsInfos.get(graphicsType).isSet()) { + value += graphicsType.name() + ","; //$NON-NLS-1$ + } + } + + if (value.endsWith(",")) { //$NON-NLS-1$ + value = value.substring(0, value.length() - 1); + } + + return value; } }; getTable().addColumn(displayColumn, constants.displayVm(), "80px"); //$NON-NLS-1$ -- To view, visit http://gerrit.ovirt.org/28573 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Iae7d8a7a4b4cdd801ecf3c9c055c8a56aa796286 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
