You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by da...@apache.org on 2014/08/30 21:57:38 UTC

git commit: updated refs/heads/4.4 to 018bcd2

Repository: cloudstack
Updated Branches:
  refs/heads/4.4 8138984dc -> 018bcd26f


CLOUDSTACK-7124: Fix semicolon caused VPN programming issue on Xen

(cherry picked from commit abc0b40acb5d1b5b87362b4737605249525455dc)


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/018bcd26
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/018bcd26
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/018bcd26

Branch: refs/heads/4.4
Commit: 018bcd26f800c1f5981df2a522e0bdfcd5768295
Parents: 8138984
Author: Sheng Yang <sh...@citrix.com>
Authored: Fri Jul 25 16:17:30 2014 -0700
Committer: Daan Hoogland <da...@onecht.net>
Committed: Sat Aug 30 21:57:24 2014 +0200

----------------------------------------------------------------------
 .../com/cloud/hypervisor/xen/resource/CitrixResourceBase.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/018bcd26/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 5450675..c1c9795 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
@@ -566,9 +566,12 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
     @Override
     public ExecutionResult executeInVR(String routerIP, String script, String args, int timeout) {
         Pair<Boolean, String> result;
+        String cmdline = "/opt/cloud/bin/router_proxy.sh " + script + " " + routerIP + " " + args;
+        // semicolon need to be escape for bash
+        cmdline = cmdline.replaceAll(";", "\\\\;");
         try {
-            s_logger.debug("Executing command in VR:  /opt/cloud/bin/router_proxy.sh " + script + " " + routerIP + " " + args);
-            result = SshHelper.sshExecute(_host.ip, 22, _username, null, _password.peek(), "/opt/cloud/bin/router_proxy.sh " + script + " " + routerIP + " " + args,
+            s_logger.debug("Executing command in VR: " + cmdline);
+            result = SshHelper.sshExecute(_host.ip, 22, _username, null, _password.peek(), cmdline,
                     60000, 60000, timeout * 1000);
         } catch (Exception e) {
             return new ExecutionResult(false, e.getMessage());