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

Reply via email to