Updated Branches: refs/heads/master e80fdcda9 -> 4333209af
CLOUDSTACK-3495 CS used to access vnc server in xenserver dom0 to get VM console, now CS moves to use XenServer console API. getvncport plugin is not needed any more. remove the code related to getvncport in XenServer Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4333209a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4333209a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4333209a Branch: refs/heads/master Commit: 4333209af36ca001ca88935ddf2b4d981cc0150e Parents: e80fdcd Author: anthony <anth...@cloud.com> Authored: Fri Aug 9 17:18:46 2013 -0700 Committer: anthony <anth...@cloud.com> Committed: Fri Aug 9 17:22:54 2013 -0700 ---------------------------------------------------------------------- .../xen/resource/CitrixResourceBase.java | 44 +------------------- scripts/vm/hypervisor/xenserver/vmops | 31 +------------- scripts/vm/hypervisor/xenserver/xcposs/vmops | 31 +------------- 3 files changed, 5 insertions(+), 101 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4333209a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index 3186d3a..610091e 100644 --- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -2477,10 +2477,9 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe try { Set<VM> vms = VM.getByNameLabel(conn, cmd.getName()); if(vms.size() == 1) { - int vncport = getVncPort(conn, vms.iterator().next()); String consoleurl; consoleurl = "consoleurl=" +getVncUrl(conn, vms.iterator().next()) + "&" +"sessionref="+ conn.getSessionReference(); - return new GetVncPortAnswer(cmd, consoleurl, vncport); + return new GetVncPortAnswer(cmd, consoleurl, -1); } else { return new GetVncPortAnswer(cmd, "There are " + vms.size() + " VMs named " + cmd.getName()); } @@ -3371,47 +3370,6 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe return new ReadyAnswer(cmd); } - // - // using synchronized on VM name in the caller does not prevent multiple - // commands being sent against - // the same VM, there will be a race condition here in finally clause and - // the main block if - // there are multiple requests going on - // - // Therefore, a lazy solution is to add a synchronized guard here - protected int getVncPort(Connection conn, VM vm) { - VM.Record record; - try { - record = vm.getRecord(conn); - Set<Console> consoles = record.consoles; - if (consoles.isEmpty()) { - s_logger.warn("There are no Consoles available to the vm : " + record.nameDescription); - return -1; - } - consoles.iterator(); - } catch (XenAPIException e) { - String msg = "Unable to get vnc-port due to " + e.toString(); - s_logger.warn(msg, e); - return -1; - } catch (XmlRpcException e) { - String msg = "Unable to get vnc-port due to " + e.getMessage(); - s_logger.warn(msg, e); - return -1; - } - String hvm = "true"; - if (record.HVMBootPolicy.isEmpty()) { - hvm = "false"; - } - - String vncport = callHostPlugin(conn, "vmops", "getvncport", "domID", record.domid.toString(), "hvm", hvm, "version", _host.product_version); - if (vncport == null || vncport.isEmpty()) { - return -1; - } - - vncport = vncport.replace("\n", ""); - return NumbersUtil.parseInt(vncport, -1); - } - protected String getVncUrl(Connection conn, VM vm) { VM.Record record; Console c; http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4333209a/scripts/vm/hypervisor/xenserver/vmops ---------------------------------------------------------------------- diff --git a/scripts/vm/hypervisor/xenserver/vmops b/scripts/vm/hypervisor/xenserver/vmops index 928d0af..f53a967 100755 --- a/scripts/vm/hypervisor/xenserver/vmops +++ b/scripts/vm/hypervisor/xenserver/vmops @@ -73,34 +73,7 @@ def setup_iscsi(session, args): txt = '' return txt -@echo -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: - if version[:3] == '6.0' or version[:3] == '6.1' or version[:3] == '6.2': - 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) - pid = pid.strip() - cmd = ["ps", pid] - util.pread2(cmd) - cmd = ["xenstore-read", path2] - vncport = util.pread2(cmd) - vncport = vncport.strip() - return vncport - except: - return '' - + @echo def getgateway(session, args): mgmt_ip = args['mgmtIP'] @@ -1663,7 +1636,7 @@ def bumpUpPriority(session, args): if __name__ == "__main__": XenAPIPlugin.dispatch({"pingtest": pingtest, "setup_iscsi":setup_iscsi, "gethostvmstats": gethostvmstats, - "getvncport": getvncport, "getgateway": getgateway, "preparemigration": preparemigration, + "getgateway": getgateway, "preparemigration": preparemigration, "setIptables": setIptables, "pingdomr": pingdomr, "pingxenserver": pingxenserver, "savePassword": savePassword, "saveDhcpEntry": saveDhcpEntry, "setFirewallRule": setFirewallRule, "routerProxy": routerProxy, http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4333209a/scripts/vm/hypervisor/xenserver/xcposs/vmops ---------------------------------------------------------------------- diff --git a/scripts/vm/hypervisor/xenserver/xcposs/vmops b/scripts/vm/hypervisor/xenserver/xcposs/vmops index 6846e81..c5a9f94 100644 --- a/scripts/vm/hypervisor/xenserver/xcposs/vmops +++ b/scripts/vm/hypervisor/xenserver/xcposs/vmops @@ -61,34 +61,7 @@ def setup_iscsi(session, args): txt = '' return '> DONE <' -@echo -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: - if version[:3] == '6.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) - pid = pid.strip() - cmd = ["ps", pid] - util.pread2(cmd) - cmd = ["xenstore-read", path2] - vncport = util.pread2(cmd) - vncport = vncport.strip() - return vncport - except: - return '' - + @echo def getgateway(session, args): mgmt_ip = args['mgmtIP'] @@ -1498,7 +1471,7 @@ def getDomRVersion(session, args): if __name__ == "__main__": XenAPIPlugin.dispatch({"pingtest": pingtest, "setup_iscsi":setup_iscsi, "gethostvmstats": gethostvmstats, - "getvncport": getvncport, "getgateway": getgateway, "preparemigration": preparemigration, + "getgateway": getgateway, "preparemigration": preparemigration, "setIptables": setIptables, "pingdomr": pingdomr, "pingxenserver": pingxenserver, "ipassoc": ipassoc, "savePassword": savePassword, "saveDhcpEntry": saveDhcpEntry, "setFirewallRule": setFirewallRule,