Updated Branches:
  refs/heads/master bd79fb33a -> 0cdf0f6f6

CLOUDSTACK-5779: Refactor mechanism for calling routerProxy in CitrixResource


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

Branch: refs/heads/master
Commit: b703b43d7c7495984f841ebb7587882da179e151
Parents: bd79fb3
Author: Sheng Yang <sheng.y...@citrix.com>
Authored: Thu Jan 16 12:48:27 2014 -0800
Committer: Sheng Yang <sheng.y...@citrix.com>
Committed: Thu Jan 16 16:02:53 2014 -0800

----------------------------------------------------------------------
 .../xen/resource/CitrixResourceBase.java        | 222 +++++++++----------
 1 file changed, 99 insertions(+), 123 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b703b43d/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 acdc70f..2568a21 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
@@ -16,46 +16,6 @@
 // under the License.
 package com.cloud.hypervisor.xen.resource;
 
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.StringReader;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Queue;
-import java.util.Random;
-import java.util.Set;
-import java.util.UUID;
-
-import javax.ejb.Local;
-import javax.naming.ConfigurationException;
-import javax.xml.parsers.DocumentBuilderFactory;
-
-import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
-import org.apache.xmlrpc.XmlRpcException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-
 import com.cloud.agent.IAgentControl;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.AttachIsoCommand;
@@ -274,6 +234,44 @@ import com.xensource.xenapi.VLAN;
 import com.xensource.xenapi.VM;
 import com.xensource.xenapi.VMGuestMetrics;
 import com.xensource.xenapi.XenAPIObject;
+import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
+import org.apache.xmlrpc.XmlRpcException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.InputSource;
+
+import javax.ejb.Local;
+import javax.naming.ConfigurationException;
+import javax.xml.parsers.DocumentBuilderFactory;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Queue;
+import java.util.Random;
+import java.util.Set;
+import java.util.UUID;
 
 
 /**
@@ -623,6 +621,12 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         }
     }
 
+    public String routerProxy(String script, String routerIP, String args) {
+        Connection conn = getConnection();
+        String proxyArgs = script + " " + routerIP + " " + args;
+        return callHostPlugin(conn, "vmops", "routerProxy", "args", proxyArgs);
+    }
+
     private Answer execute(PerformanceMonitorCommand cmd) {
         Connection conn = getConnection();
         String perfMon = getPerfMon(conn, cmd.getParams(), cmd.getWait());
@@ -1967,12 +1971,11 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     private CheckS2SVpnConnectionsAnswer execute(CheckS2SVpnConnectionsCommand 
cmd) {
-        Connection conn = getConnection();
-        String args = "checkbatchs2svpn.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        String args = "";
         for (String ip : cmd.getVpnIps()) {
-            args += " " + ip;
+            args += ip + " ";
         }
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("checkbatchs2svpn.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
         if (result == null || result.isEmpty()) {
             return new CheckS2SVpnConnectionsAnswer(cmd, false, 
"CheckS2SVpnConneciontsCommand failed");
         }
@@ -1980,9 +1983,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     private CheckRouterAnswer execute(CheckRouterCommand cmd) {
-        Connection conn = getConnection();
-        String args = "checkrouter.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("checkrouter.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), null);
         if (result == null || result.isEmpty()) {
             return new CheckRouterAnswer(cmd, "CheckRouterCommand failed");
         }
@@ -1990,9 +1991,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     private GetDomRVersionAnswer execute(GetDomRVersionCmd cmd) {
-        Connection conn = getConnection();
-        String args = "get_template_version.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("get_template_version.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), null);
         if (result == null || result.isEmpty()) {
             return new GetDomRVersionAnswer(cmd, "getDomRVersionCmd failed");
         }
@@ -2005,8 +2004,8 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
 
     private Answer execute(BumpUpPriorityCommand cmd) {
         Connection conn = getConnection();
-        String args = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
-        String result = callHostPlugin(conn, "vmops", "bumpUpPriority", 
"args", args);
+        String args = "bumpup_priority.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "BumpUpPriorityCommand failed");
         }
@@ -2070,18 +2069,15 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected SetStaticNatRulesAnswer 
SetVPCStaticNatRules(SetStaticNatRulesCommand cmd) {
-        Connection conn = getConnection();
-        String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         //String args = routerIp;
         String[] results = new String[cmd.getRules().length];
         int i = 0;
         boolean endResult = true;
         for (StaticNatRuleTO rule : cmd.getRules()) {
-            String args = "vpc_staticnat.sh " + routerIp;
-            args += rule.revoked() ? " -D" : " -A";
+            String args = rule.revoked() ? "-D" : "-A";
             args += " -l " + rule.getSrcIp();
             args += " -r " + rule.getDstIp();
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args.toString());
+            String result = routerProxy("vpc_staticnat.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
 
             if (result == null || result.isEmpty()) {
                 results[i++] = "Failed";
@@ -2160,9 +2156,8 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         String[] removeRules = rules[LoadBalancerConfigurator.REMOVE];
         String[] statRules = rules[LoadBalancerConfigurator.STATS];
 
-        String args = "vpc_loadbalancer.sh " + routerIp;
         String ip = cmd.getNic().getIp();
-        args += " -i " + ip;
+        String args = "-i " + ip;
         StringBuilder sb = new StringBuilder();
         if (addRules.length > 0) {
             for (int i = 0; i < addRules.length; i++) {
@@ -2190,7 +2185,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             args += " -s " + sb.toString();
         }
 
-        result = callHostPlugin(conn, "vmops", "routerProxy", "args", args);
+        result = routerProxy("vpc_loadbalancer.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
 
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "LoadBalancerConfigCommand failed");
@@ -2237,7 +2232,6 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected Answer execute(final DnsMasqConfigCommand cmd) {
-        Connection conn = getConnection();
         String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         List<DhcpTO> dhcpTos = cmd.getIps();
         String args = "";
@@ -2245,7 +2239,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             args = args + dhcpTo.getRouterIp() + ":" + dhcpTo.getGateway() + 
":" + dhcpTo.getNetmask() + ":" + dhcpTo.getStartIpOfSubnet() + "-";
         }
 
-        String result = callHostPlugin(conn, "vmops", "configdnsmasq", 
"routerip", routerIp, "args", args);
+        String result = routerProxy("dnsmasq.sh", routerIp, args);
 
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "DnsMasqconfigCommand failed");
@@ -2330,22 +2324,22 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected synchronized Answer execute(final DhcpEntryCommand cmd) {
-        Connection conn = getConnection();
-        String args = "-r " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        String args = "";
         if (cmd.getVmIpAddress() != null) {
-            args += " -v " + cmd.getVmIpAddress();
+            args += " -4 " + cmd.getVmIpAddress();
         }
-        args += " -m " + cmd.getVmMac();
-        args += " -n " + cmd.getVmName();
+        args += " -h " + cmd.getVmName();
+
         if (cmd.getDefaultRouter() != null) {
             args += " -d " + cmd.getDefaultRouter();
         }
-        if (cmd.getStaticRoutes() != null) {
-            args += " -s " + cmd.getStaticRoutes();
-        }
 
         if (cmd.getDefaultDns() != null) {
-            args += " -N " + cmd.getDefaultDns();
+            args += " -n " + cmd.getDefaultDns();
+        }
+
+        if (cmd.getStaticRoutes() != null) {
+            args += " -s " + cmd.getStaticRoutes();
         }
 
         if (cmd.getVmIp6Address() != null) {
@@ -2354,10 +2348,10 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         }
 
         if (!cmd.isDefault()) {
-            args += " -z";
+            args += " -N";
         }
 
-        String result = callHostPlugin(conn, "vmops", "saveDhcpEntry", "args", 
args);
+        String result = routerProxy("edithosts.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "DhcpEntry failed");
         }
@@ -2365,8 +2359,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected synchronized Answer execute(final RemoteAccessVpnCfgCommand cmd) 
{
-        Connection conn = getConnection();
-        String args = "vpn_l2tp.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        String args = "";
         if (cmd.isCreate()) {
             args += " -r " + cmd.getIpRange();
             args += " -p " + cmd.getPresharedKey();
@@ -2379,7 +2372,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         }
         args += " -C " + cmd.getLocalCidr();
         args += " -i " + cmd.getPublicInterface();
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("vpn_l2tp.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "Configure VPN failed");
         }
@@ -2387,15 +2380,14 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected synchronized Answer execute(final VpnUsersCfgCommand cmd) {
-        Connection conn = getConnection();
-        for (VpnUsersCfgCommand.UsernamePassword userpwd : cmd.getUserpwds()) {
-            String args = "vpn_l2tp.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        for (VpnUsersCfgCommand.UsernamePassword userpwd: cmd.getUserpwds()) {
+            String args = "";
             if (!userpwd.isAdd()) {
                 args += " -U " + userpwd.getUsername();
             } else {
                 args += " -u " + userpwd.getUsernamePassword();
             }
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+            String result = routerProxy("vpn_l2tp.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
             if (result == null || result.isEmpty()) {
                 return new Answer(cmd, false, "Configure VPN user failed for 
user " + userpwd.getUsername());
             }
@@ -2405,16 +2397,14 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected Answer execute(final VmDataCommand cmd) {
-        Connection conn = getConnection();
-        String routerPrivateIpAddress = 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         Map<String, List<String[]>> data = new HashMap<String, 
List<String[]>>();
         data.put(cmd.getVmIpAddress(), cmd.getVmData());
         String json = new Gson().toJson(data);
         json = Base64.encodeBase64String(json.getBytes());
 
-        String args = "vmdata.py " + routerPrivateIpAddress + " -d " + json;
+        String args = "-d " + json;
 
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("vmdata.py", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
 
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "vm_data failed");
@@ -2425,15 +2415,12 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected Answer execute(final SavePasswordCommand cmd) {
-        Connection conn = getConnection();
         final String password = cmd.getPassword();
-        final String routerPrivateIPAddress = 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         final String vmIpAddress = cmd.getVmIpAddress();
 
-        String args = "savepassword.sh " + routerPrivateIPAddress;
-        args += " -v " + vmIpAddress;
+        String args = " -v " + vmIpAddress;
         args += " -p " + password;
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("savepassword.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
 
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "savePassword failed");
@@ -2498,7 +2485,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
                 throw new InternalErrorException("Failed to find DomR VIF to 
associate/disassociate IP with.");
             }
 
-            String args = "ipassoc.sh " + privateIpAddress;
+            String args = "";
 
             if (add) {
                 args += " -A ";
@@ -2528,7 +2515,8 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
                 args += " -n";
             }
 
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+            String result = routerProxy("ipassoc.sh", privateIpAddress, args);
+
             if (result == null || result.isEmpty()) {
                 throw new InternalErrorException("Xen plugin \"ipassoc\" 
failed.");
             }
@@ -2573,8 +2561,8 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
                 }
             }
 
-            String args = "vpc_ipassoc.sh " + routerIp;
-            String snatArgs = "vpc_privateGateway.sh " + routerIp;
+            String args = "";
+            String snatArgs = "";
 
             if (ip.isAdd()) {
                 args += " -A ";
@@ -2599,7 +2587,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             args += " -n ";
             args += NetUtils.getSubNet(ip.getPublicIp(), ip.getVlanNetmask());
 
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+            String result = routerProxy("vpc_ipassoc.sh", routerIp, args);
             if (result == null || result.isEmpty()) {
                 throw new InternalErrorException("Xen plugin \"vpc_ipassoc\" 
failed.");
             }
@@ -2608,7 +2596,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
                 snatArgs += " -l " + ip.getPublicIp();
                 snatArgs += " -c " + "eth" + correctVif.getDevice(conn);
 
-                result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
snatArgs);
+                result = routerProxy("vpc_privateGateway.sh", routerIp, 
snatArgs);
                 if (result == null || result.isEmpty()) {
                     throw new InternalErrorException("Xen plugin 
\"vpc_privateGateway\" failed.");
                 }
@@ -7591,17 +7579,14 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
 
         String config = cmd.getConfiguration();
 
-        Connection conn = getConnection();
         String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
-
         if (routerIp == null) {
             return new Answer(cmd);
         }
 
-        String args = "monitor_service.sh " + routerIp;
-        args += " -c " + config;
+        String args = " -c " + config;
 
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("monitor_service.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "SetMonitorServiceCommand failed to 
create cfg file.");
         }
@@ -7936,7 +7921,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
                 return new SetupGuestNetworkAnswer(cmd, false, "Can not find 
vif with mac " + mac + " for VM " + domrName);
             }
 
-            String args = "vpc_guestnw.sh " + domrIP + (cmd.isAdd() ? " -C" : 
" -D");
+            String args = (cmd.isAdd()?" -C":" -D");
             String dev = "eth" + domrVif.getDevice(conn);
             args += " -d " + dev;
             args += " -i " + domrGIP;
@@ -7949,7 +7934,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             if (domainName != null && !domainName.isEmpty()) {
                 args += " -e " + domainName;
             }
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+            String result = routerProxy("vpc_guestnw.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
             if (result == null || result.isEmpty()) {
                 return new SetupGuestNetworkAnswer(cmd, false, "creating guest 
network failed due to " + ((result == null) ? "null" : result));
             }
@@ -7983,8 +7968,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected Answer execute(Site2SiteVpnCfgCommand cmd) {
-        Connection conn = getConnection();
-        String args = "ipsectunnel.sh " + 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
+        String args = "";
         if (cmd.isCreate()) {
             args += " -A";
             args += " -l ";
@@ -8025,7 +8009,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             args += " -N ";
             args += cmd.getPeerGuestCidrList();
         }
-        String result = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+        String result = routerProxy("ipsectunnel.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
         if (result == null || result.isEmpty()) {
             return new Answer(cmd, false, "Configure site to site VPN failed! 
");
         }
@@ -8035,14 +8019,13 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     protected SetSourceNatAnswer execute(SetSourceNatCommand cmd) {
         Connection conn = getConnection();
         String routerName = 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
-        String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         IpAddressTO pubIp = cmd.getIpAddress();
         try {
             VM router = getVM(conn, routerName);
 
             VIF correctVif = getCorrectVif(conn, router, pubIp);
 
-            String args = "vpc_snat.sh " + routerIp;
+            String args = "";
 
             args += " -A ";
             args += " -l ";
@@ -8051,7 +8034,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             args += " -c ";
             args += "eth" + correctVif.getDevice(conn);
 
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+            String result = routerProxy("vpc_snat.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
             if (result == null || result.isEmpty()) {
                 throw new InternalErrorException("Xen plugin \"vpc_snat\" 
failed.");
             }
@@ -8068,7 +8051,6 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         String callResult;
         Connection conn = getConnection();
         String routerName = 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
-        String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         String privateGw = 
cmd.getAccessDetail(NetworkElementCommand.VPC_PRIVATE_GATEWAY);
 
         try {
@@ -8089,11 +8071,11 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
 
             if (privateGw != null) {
                 s_logger.debug("Private gateway configuration is set");
-                String args = "vpc_privategw_acl.sh " + routerIp;
+                String args = "";
                 args += " -d " + "eth" + vif.getDevice(conn);
                 args += " -a " + sb.toString();
 
-                callResult = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+                callResult = routerProxy("vpc_privategw_acl.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
                 if (callResult == null || callResult.isEmpty()) {
                     //FIXME - in the future we have to process each rule 
separately; now we temporarily set every rule to be false if single rule fails
                     for (int i = 0; i < results.length; i++) {
@@ -8102,13 +8084,13 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
                     return new SetNetworkACLAnswer(cmd, false, results);
                 }
             } else {
-                String args = "vpc_acl.sh " + routerIp;
+                String args = "";
                 args += " -d " + "eth" + vif.getDevice(conn);
                 args += " -i " + nic.getIp();
                 args += " -m " + 
Long.toString(NetUtils.getCidrSize(nic.getNetmask()));
                 args += " -a " + sb.toString();
 
-                callResult = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args);
+                callResult = routerProxy("vpc_acl.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
                 if (callResult == null || callResult.isEmpty()) {
                     //FIXME - in the future we have to process each rule 
separately; now we temporarily set every rule to be false if single rule fails
                     for (int i = 0; i < results.length; i++) {
@@ -8126,15 +8108,12 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
     }
 
     protected SetPortForwardingRulesAnswer 
execute(SetPortForwardingRulesVpcCommand cmd) {
-        Connection conn = getConnection();
-
-        String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         String[] results = new String[cmd.getRules().length];
         int i = 0;
 
         boolean endResult = true;
         for (PortForwardingRuleTO rule : cmd.getRules()) {
-            String args = "vpc_portforwarding.sh " + routerIp;
+            String args = "";
             args += rule.revoked() ? " -D" : " -A";
             args += " -P " + rule.getProtocol().toLowerCase();
             args += " -l " + rule.getSrcIp();
@@ -8142,7 +8121,7 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             args += " -r " + rule.getDstIp();
             args += " -d " + rule.getStringDstPortRange().replace(":", "-");
 
-            String result = callHostPlugin(conn, "vmops", "routerProxy", 
"args", args.toString());
+            String result = routerProxy("vpc_portforwarding.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
 
             if (result == null || result.isEmpty()) {
                 results[i++] = "Failed";
@@ -8156,8 +8135,6 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
 
     private SetStaticRouteAnswer execute(SetStaticRouteCommand cmd) {
         String callResult;
-        Connection conn = getConnection();
-        String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         try {
             String[] results = new String[cmd.getStaticRoutes().length];
             String[][] rules = cmd.generateSRouteRules();
@@ -8166,9 +8143,8 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
             for (int i = 0; i < srRules.length; i++) {
                 sb.append(srRules[i]).append(',');
             }
-            String args = "vpc_staticroute.sh " + routerIp;
-            args += " -a " + sb.toString();
-            callResult = callHostPlugin(conn, "vmops", "routerProxy", "args", 
args);
+            String args = "-a " + sb.toString();
+            callResult = routerProxy("vpc_staticroute.sh", 
cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
             if (callResult == null || callResult.isEmpty()) {
                 //FIXME - in the future we have to process each rule 
separately; now we temporarily set every rule to be false if single rule fails
                 for (int i = 0; i < results.length; i++) {

Reply via email to