Frank Kobzik has uploaded a new change for review.

Change subject: core: fix graphics info update for legacy VDSM
......................................................................

core: fix graphics info update for legacy VDSM

This patch fixes an error that's reproducible with current engine and legacy
(3.4 and below) VDSM. The problem was caused in parsing graphics info from
legacy vdsm displayType values. Fixed by using correct legacy values for
displayType.

Change-Id: I48cd5f76ed870530208fcd0fc69c3d1a52b7249b
Signed-off-by: Frantisek Kobzik <fkob...@redhat.com>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
1 file changed, 18 insertions(+), 15 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/36605/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
index e3a82f0..a124600 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
@@ -23,7 +23,6 @@
 import org.ovirt.engine.core.common.businessentities.AutoNumaBalanceStatus;
 import org.ovirt.engine.core.common.businessentities.CpuStatistics;
 import org.ovirt.engine.core.common.businessentities.DiskImageDynamic;
-import org.ovirt.engine.core.common.businessentities.DisplayType;
 import org.ovirt.engine.core.common.businessentities.Entities;
 import org.ovirt.engine.core.common.businessentities.GraphicsInfo;
 import org.ovirt.engine.core.common.businessentities.GraphicsType;
@@ -347,18 +346,12 @@
      * @param xmlRpcStruct - data from VDSM
      */
     private static void updateGraphicsInfoFromConf(VmDynamic vm, Map<String, 
Object> xmlRpcStruct) {
-        DisplayType displayType = parseDisplayType(xmlRpcStruct);
-
-        if (displayType == null) {
-            log.warn("Can't set display type from XML.");
+        GraphicsType vmGraphicsType = parseGraphicsType(xmlRpcStruct);
+        if (vmGraphicsType == null) {
+            log.warn("Can't set graphics data from XML.");
             return;
         }
 
-        vm.setDisplayType(displayType);
-
-        GraphicsType vmGraphicsType = (displayType == DisplayType.qxl)
-                ? GraphicsType.SPICE
-                : GraphicsType.VNC;
         GraphicsInfo graphicsInfo = vm.getGraphicsInfos().get(vmGraphicsType);
 
         if (graphicsInfo != null) {
@@ -392,19 +385,29 @@
     }
 
     /**
-     * Retrieves display type from xml.
+     * Retrieves graphics type from xml.
      * @param xmlRpcStruct
      * @return
-     *  - display type derived from xml on success
+     *  - graphics type derived from xml on success
      *  - null on error
      */
-    private static DisplayType parseDisplayType(Map<String, Object> 
xmlRpcStruct) {
+    private static GraphicsType parseGraphicsType(Map<String, Object> 
xmlRpcStruct) {
+        GraphicsType result = null;
+
         try {
             String displayTypeStr = 
xmlRpcStruct.get(VdsProperties.displayType).toString();
-            return DisplayType.valueOf(displayTypeStr);
+            switch (displayTypeStr) {
+                case VdsProperties.VNC:
+                    result = GraphicsType.VNC;
+                    break;
+                case VdsProperties.QXL:
+                    result = GraphicsType.SPICE;
+                    break;
+            }
         } catch (Exception e) {
-            return null;
         }
+
+        return result;
     }
 
     private static Integer parseIntegerOrNull(String s) {


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48cd5f76ed870530208fcd0fc69c3d1a52b7249b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Frank Kobzik <fkob...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to