From 67463e8c4332db1696c186cf750f69426c57048f Mon Sep 17 00:00:00 2001 From: anthony Date: Thu, 5 Jan 2012 15:32:15 -0800 Subject: [PATCH] bug 12328: XenServer 6.0 changes vnc-port path in xenstore status 12328: resolved fixed Conflicts: core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java --- .../hypervisor/xen/resource/CitrixResourceBase.java | 7 +++++-- scripts/vm/hypervisor/xenserver/vmops | 9 +++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index cda7daf2ddc..d6675a959f7 100755 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -2564,7 +2564,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe hvm = "false"; } - String vncport = callHostPlugin(conn, "vmops", "getvncport", "domID", record.domid.toString(), "hvm", hvm); + String vncport = callHostPlugin(conn, "vmops", "getvncport", "domID", record.domid.toString(), "hvm", hvm, "version", _host.product_version); if (vncport == null || vncport.isEmpty()) { return -1; } @@ -3769,6 +3769,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe _host.speed = hc.getSpeed(conn).intValue(); break; } + Host.Record hr = myself.getRecord(conn); + _host.product_version = hr.softwareVersion.get("product_version").trim(); + XsLocalNetwork privateNic = getManagementNetwork(conn); _privateNetworkName = privateNic.getNetworkRecord(conn).nameLabel; _host.privatePif = privateNic.getPifRecord(conn).uuid; @@ -6448,7 +6451,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe public String pool; public int speed; public int cpus; - + public String product_version; @Override public String toString() { return new StringBuilder("XS[").append(uuid).append("-").append(ip).append("]").toString(); diff --git a/scripts/vm/hypervisor/xenserver/vmops b/scripts/vm/hypervisor/xenserver/vmops index 983805ffb72..8c6e99f569a 100755 --- a/scripts/vm/hypervisor/xenserver/vmops +++ b/scripts/vm/hypervisor/xenserver/vmops @@ -47,12 +47,17 @@ def setup_iscsi(session, args): def getvncport(session, args): domid = args['domID'] hvm = args['hvm'] + version = args['version'] if hvm == 'true': path1 = "/local/domain/" + domid + "/qemu-pid" path2 = "/local/domain/" + domid + "/console/vnc-port" else: - path1 = "/local/domain/" + domid + "/serial/0/vncterm-pid" - path2 = "/local/domain/" + domid + "/serial/0/vnc-port" + if version == '6.0.0': + path1 = "/local/domain/" + domid + "/vncterm-pid" + path2 = "/local/domain/" + domid + "/console/vnc-port" + else: + path1 = "/local/domain/" + domid + "/serial/0/vncterm-pid" + path2 = "/local/domain/" + domid + "/serial/0/vnc-port" try: cmd = ["xenstore-read", path1] pid = util.pread2(cmd)