You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ya...@apache.org on 2014/01/17 01:13:52 UTC

[2/2] git commit: updated refs/heads/master to 0cdf0f6

CLOUDSTACK-5779: Moving bumpUpPriority, edithosts.sh, dnsmasq.sh to use routeProxy


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

Branch: refs/heads/master
Commit: 0cdf0f6f67c99a06fc1b94c2f2a38eff020f3f67
Parents: b703b43
Author: Sheng Yang <sh...@citrix.com>
Authored: Thu Jan 16 12:48:27 2014 -0800
Committer: Sheng Yang <sh...@citrix.com>
Committed: Thu Jan 16 16:03:09 2014 -0800

----------------------------------------------------------------------
 .../virtualnetwork/VirtualRoutingResource.java  |  98 +++-----
 .../vmware/resource/VmwareResource.java         | 192 ++++++++-------
 .../xen/resource/CitrixResourceBase.java        |   2 +-
 scripts/network/domr/bumpUpPriority.sh          |  47 ----
 scripts/network/domr/call_dnsmasq.sh            |  27 ---
 scripts/network/domr/dhcp_entry.sh              |  82 -------
 scripts/vm/hypervisor/xenserver/vmops           |  47 +---
 .../config/opt/cloud/bin/bumpup_priority.sh     |  19 ++
 .../debian/config/opt/cloud/bin/dnsmasq.sh      | 130 +++++++++++
 .../debian/config/opt/cloud/bin/edithosts.sh    | 234 +++++++++++++++++++
 .../debian/config/root/bumpup_priority.sh       |  19 --
 systemvm/patches/debian/config/root/dnsmasq.sh  | 130 -----------
 .../patches/debian/config/root/edithosts.sh     | 234 -------------------
 13 files changed, 517 insertions(+), 744 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
index 8478b31..f469d8a 100755
--- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
+++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
@@ -16,31 +16,6 @@
 // under the License.
 package com.cloud.agent.resource.virtualnetwork;
 
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.net.InetSocketAddress;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.channels.SocketChannel;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.ejb.Local;
-import javax.naming.ConfigurationException;
-
-import com.cloud.agent.api.routing.SetMonitorServiceCommand;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
-
-import com.google.gson.Gson;
-
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.BumpUpPriorityCommand;
 import com.cloud.agent.api.CheckRouterAnswer;
@@ -66,6 +41,7 @@ import com.cloud.agent.api.routing.RemoteAccessVpnCfgCommand;
 import com.cloud.agent.api.routing.SavePasswordCommand;
 import com.cloud.agent.api.routing.SetFirewallRulesAnswer;
 import com.cloud.agent.api.routing.SetFirewallRulesCommand;
+import com.cloud.agent.api.routing.SetMonitorServiceCommand;
 import com.cloud.agent.api.routing.SetPortForwardingRulesAnswer;
 import com.cloud.agent.api.routing.SetPortForwardingRulesCommand;
 import com.cloud.agent.api.routing.SetPortForwardingRulesVpcCommand;
@@ -92,6 +68,27 @@ import com.cloud.utils.net.NetUtils;
 import com.cloud.utils.script.OutputInterpreter;
 import com.cloud.utils.script.Script;
 import com.cloud.utils.ssh.SshHelper;
+import com.google.gson.Gson;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
+
+import javax.ejb.Local;
+import javax.naming.ConfigurationException;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.net.InetSocketAddress;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.channels.SocketChannel;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * VirtualNetworkResource controls and configures virtual networking
@@ -107,14 +104,12 @@ public class VirtualRoutingResource implements Manager {
     private String _publicIpAddress;
     private String _firewallPath;
     private String _loadbPath;
-    private String _dhcpEntryPath;
     private String _publicEthIf;
     private String _privateEthIf;
     private String _bumpUpPriorityPath;
     private String _routerProxyPath;
     private String _createIpAliasPath;
     private String _deleteIpAliasPath;
-    private String _callDnsMasqPath;
 
     private int _timeout;
     private int _startTimeout;
@@ -559,35 +554,34 @@ public class VirtualRoutingResource implements Manager {
     }
 
     protected Answer execute(final DhcpEntryCommand cmd) {
-        final Script command = new Script(_dhcpEntryPath, _timeout, s_logger);
-        command.add("-r", cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP));
+        String args = " -m " + cmd.getVmMac();
         if (cmd.getVmIpAddress() != null) {
-            command.add("-v", cmd.getVmIpAddress());
+            args += " -4 " + cmd.getVmIpAddress();
         }
-        command.add("-m", cmd.getVmMac());
-        command.add("-n", cmd.getVmName());
+        args += " -h " + cmd.getVmName();
 
         if (cmd.getDefaultRouter() != null) {
-            command.add("-d", cmd.getDefaultRouter());
-        }
-        if (cmd.getStaticRoutes() != null) {
-            command.add("-s", cmd.getStaticRoutes());
+            args += " -d " + cmd.getDefaultRouter();
         }
 
         if (cmd.getDefaultDns() != null) {
-            command.add("-N", cmd.getDefaultDns());
+            args += " -n " + cmd.getDefaultDns();
+        }
+
+        if (cmd.getStaticRoutes() != null) {
+            args += " -s " + cmd.getStaticRoutes();
         }
 
         if (cmd.getVmIp6Address() != null) {
-            command.add("-6", cmd.getVmIp6Address());
-            command.add("-u", cmd.getDuid());
+            args += " -6 " + cmd.getVmIp6Address();
+            args += " -u " + cmd.getDuid();
         }
 
         if (!cmd.isDefault()) {
-            command.add("-z");
+            args += " -N";
         }
 
-        final String result = command.execute();
+        final String result = routerProxy("edithosts.sh", cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), args);
         return new Answer(cmd, result == null, result);
     }
 
@@ -625,16 +619,13 @@ public class VirtualRoutingResource implements Manager {
     }
 
     protected Answer execute(final DnsMasqConfigCommand cmd) {
-        final Script command = new Script(_callDnsMasqPath, _timeout, s_logger);
         String routerIp = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
         List<DhcpTO> dhcpTos = cmd.getIps();
         String args = "";
         for (DhcpTO dhcpTo : dhcpTos) {
             args = args + dhcpTo.getRouterIp() + ":" + dhcpTo.getGateway() + ":" + dhcpTo.getNetmask() + ":" + dhcpTo.getStartIpOfSubnet() + "-";
         }
-        command.add(routerIp);
-        command.add(args);
-        final String result = command.execute();
+        final String result = routerProxy("dnsmasq.sh", routerIp, args);
         return new Answer(cmd, result == null, result);
     }
 
@@ -693,13 +684,9 @@ public class VirtualRoutingResource implements Manager {
     }
 
     protected Answer execute(BumpUpPriorityCommand cmd) {
-        final String routerPrivateIPAddress = cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP);
-        final Script command = new Script(_bumpUpPriorityPath, _timeout, s_logger);
-        final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
-        command.add(routerPrivateIPAddress);
-        String result = command.execute(parser);
+        String result = routerProxy("bumpup_priority.sh", cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP), null);
         if (result != null) {
-            return new Answer(cmd, false, "BumpUpPriorityCommand failed: " + result);
+            return new Answer(cmd, false, "BumpUpPriorityCommand failed due to " + result);
         }
         return new Answer(cmd, true, null);
     }
@@ -1137,11 +1124,6 @@ public class VirtualRoutingResource implements Manager {
             throw new ConfigurationException("Unable to find the call_loadbalancer.sh");
         }
 
-        _dhcpEntryPath = findScript("dhcp_entry.sh");
-        if (_dhcpEntryPath == null) {
-            throw new ConfigurationException("Unable to find dhcp_entry.sh");
-        }
-
         _publicEthIf = (String)params.get("public.network.device");
         if (_publicEthIf == null) {
             _publicEthIf = "xenbr1";
@@ -1171,10 +1153,6 @@ public class VirtualRoutingResource implements Manager {
         if (_deleteIpAliasPath == null) {
             throw new ConfigurationException("unable to find deleteipAlias.sh");
         }
-        _callDnsMasqPath = findScript("call_dnsmasq.sh");
-        if (_callDnsMasqPath == null) {
-            throw new ConfigurationException("unable to find call_dnsmasq.sh");
-        }
 
         return true;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
index 8b25276..a2073ea 100755
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/resource/VmwareResource.java
@@ -16,98 +16,6 @@
 // under the License.
 package com.cloud.hypervisor.vmware.resource;
 
-import java.io.File;
-import java.io.IOException;
-import java.net.ConnectException;
-import java.net.InetSocketAddress;
-import java.net.URI;
-import java.nio.channels.SocketChannel;
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-import java.util.Set;
-import java.util.TimeZone;
-import java.util.UUID;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.TimeUnit;
-
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.NDC;
-
-import com.google.gson.Gson;
-import com.vmware.vim25.AboutInfo;
-import com.vmware.vim25.BoolPolicy;
-import com.vmware.vim25.ClusterDasConfigInfo;
-import com.vmware.vim25.ComputeResourceSummary;
-import com.vmware.vim25.CustomFieldStringValue;
-import com.vmware.vim25.DVPortConfigInfo;
-import com.vmware.vim25.DVPortConfigSpec;
-import com.vmware.vim25.DatastoreSummary;
-import com.vmware.vim25.DistributedVirtualPort;
-import com.vmware.vim25.DistributedVirtualSwitchPortConnection;
-import com.vmware.vim25.DistributedVirtualSwitchPortCriteria;
-import com.vmware.vim25.DynamicProperty;
-import com.vmware.vim25.GuestInfo;
-import com.vmware.vim25.HostCapability;
-import com.vmware.vim25.HostHostBusAdapter;
-import com.vmware.vim25.HostInternetScsiHba;
-import com.vmware.vim25.HostInternetScsiHbaAuthenticationProperties;
-import com.vmware.vim25.HostInternetScsiHbaStaticTarget;
-import com.vmware.vim25.HostInternetScsiTargetTransport;
-import com.vmware.vim25.HostScsiDisk;
-import com.vmware.vim25.HostScsiTopology;
-import com.vmware.vim25.HostScsiTopologyInterface;
-import com.vmware.vim25.HostScsiTopologyLun;
-import com.vmware.vim25.HostScsiTopologyTarget;
-import com.vmware.vim25.ManagedObjectReference;
-import com.vmware.vim25.ObjectContent;
-import com.vmware.vim25.OptionValue;
-import com.vmware.vim25.PerfCounterInfo;
-import com.vmware.vim25.PerfEntityMetric;
-import com.vmware.vim25.PerfEntityMetricBase;
-import com.vmware.vim25.PerfMetricId;
-import com.vmware.vim25.PerfMetricIntSeries;
-import com.vmware.vim25.PerfMetricSeries;
-import com.vmware.vim25.PerfQuerySpec;
-import com.vmware.vim25.PerfSampleInfo;
-import com.vmware.vim25.RuntimeFaultFaultMsg;
-import com.vmware.vim25.ToolsUnavailableFaultMsg;
-import com.vmware.vim25.VMwareDVSPortSetting;
-import com.vmware.vim25.VimPortType;
-import com.vmware.vim25.VirtualDevice;
-import com.vmware.vim25.VirtualDeviceBackingInfo;
-import com.vmware.vim25.VirtualDeviceConfigSpec;
-import com.vmware.vim25.VirtualDeviceConfigSpecOperation;
-import com.vmware.vim25.VirtualDisk;
-import com.vmware.vim25.VirtualEthernetCard;
-import com.vmware.vim25.VirtualEthernetCardDistributedVirtualPortBackingInfo;
-import com.vmware.vim25.VirtualEthernetCardNetworkBackingInfo;
-import com.vmware.vim25.VirtualMachineConfigSpec;
-import com.vmware.vim25.VirtualMachineGuestOsIdentifier;
-import com.vmware.vim25.VirtualMachinePowerState;
-import com.vmware.vim25.VirtualMachineRelocateSpec;
-import com.vmware.vim25.VirtualMachineRelocateSpecDiskLocator;
-import com.vmware.vim25.VirtualMachineRuntimeInfo;
-import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanIdSpec;
-
-import org.apache.cloudstack.storage.command.DeleteCommand;
-import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-
 import com.cloud.agent.IAgentControl;
 import com.cloud.agent.api.Answer;
 import com.cloud.agent.api.AttachIsoCommand;
@@ -327,6 +235,94 @@ import com.cloud.vm.VirtualMachine.PowerState;
 import com.cloud.vm.VirtualMachine.State;
 import com.cloud.vm.VirtualMachineName;
 import com.cloud.vm.VmDetailConstants;
+import com.google.gson.Gson;
+import com.vmware.vim25.AboutInfo;
+import com.vmware.vim25.BoolPolicy;
+import com.vmware.vim25.ClusterDasConfigInfo;
+import com.vmware.vim25.ComputeResourceSummary;
+import com.vmware.vim25.CustomFieldStringValue;
+import com.vmware.vim25.DVPortConfigInfo;
+import com.vmware.vim25.DVPortConfigSpec;
+import com.vmware.vim25.DatastoreSummary;
+import com.vmware.vim25.DistributedVirtualPort;
+import com.vmware.vim25.DistributedVirtualSwitchPortConnection;
+import com.vmware.vim25.DistributedVirtualSwitchPortCriteria;
+import com.vmware.vim25.DynamicProperty;
+import com.vmware.vim25.GuestInfo;
+import com.vmware.vim25.HostCapability;
+import com.vmware.vim25.HostHostBusAdapter;
+import com.vmware.vim25.HostInternetScsiHba;
+import com.vmware.vim25.HostInternetScsiHbaAuthenticationProperties;
+import com.vmware.vim25.HostInternetScsiHbaStaticTarget;
+import com.vmware.vim25.HostInternetScsiTargetTransport;
+import com.vmware.vim25.HostScsiDisk;
+import com.vmware.vim25.HostScsiTopology;
+import com.vmware.vim25.HostScsiTopologyInterface;
+import com.vmware.vim25.HostScsiTopologyLun;
+import com.vmware.vim25.HostScsiTopologyTarget;
+import com.vmware.vim25.ManagedObjectReference;
+import com.vmware.vim25.ObjectContent;
+import com.vmware.vim25.OptionValue;
+import com.vmware.vim25.PerfCounterInfo;
+import com.vmware.vim25.PerfEntityMetric;
+import com.vmware.vim25.PerfEntityMetricBase;
+import com.vmware.vim25.PerfMetricId;
+import com.vmware.vim25.PerfMetricIntSeries;
+import com.vmware.vim25.PerfMetricSeries;
+import com.vmware.vim25.PerfQuerySpec;
+import com.vmware.vim25.PerfSampleInfo;
+import com.vmware.vim25.RuntimeFaultFaultMsg;
+import com.vmware.vim25.ToolsUnavailableFaultMsg;
+import com.vmware.vim25.VMwareDVSPortSetting;
+import com.vmware.vim25.VimPortType;
+import com.vmware.vim25.VirtualDevice;
+import com.vmware.vim25.VirtualDeviceBackingInfo;
+import com.vmware.vim25.VirtualDeviceConfigSpec;
+import com.vmware.vim25.VirtualDeviceConfigSpecOperation;
+import com.vmware.vim25.VirtualDisk;
+import com.vmware.vim25.VirtualEthernetCard;
+import com.vmware.vim25.VirtualEthernetCardDistributedVirtualPortBackingInfo;
+import com.vmware.vim25.VirtualEthernetCardNetworkBackingInfo;
+import com.vmware.vim25.VirtualMachineConfigSpec;
+import com.vmware.vim25.VirtualMachineGuestOsIdentifier;
+import com.vmware.vim25.VirtualMachinePowerState;
+import com.vmware.vim25.VirtualMachineRelocateSpec;
+import com.vmware.vim25.VirtualMachineRelocateSpecDiskLocator;
+import com.vmware.vim25.VirtualMachineRuntimeInfo;
+import com.vmware.vim25.VmwareDistributedVirtualSwitchVlanIdSpec;
+import org.apache.cloudstack.storage.command.DeleteCommand;
+import org.apache.cloudstack.storage.command.StorageSubSystemCommand;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.log4j.Logger;
+import org.apache.log4j.NDC;
+
+import javax.naming.ConfigurationException;
+import java.io.File;
+import java.io.IOException;
+import java.net.ConnectException;
+import java.net.InetSocketAddress;
+import java.net.URI;
+import java.nio.channels.SocketChannel;
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Random;
+import java.util.Set;
+import java.util.TimeZone;
+import java.util.UUID;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
 
 public class VmwareResource implements StoragePoolResource, ServerResource, VmwareHostService {
     private static final Logger s_logger = Logger.getLogger(VmwareResource.class);
@@ -2147,13 +2143,13 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
         }
 
         if (s_logger.isDebugEnabled()) {
-            s_logger.debug("Run command on domR " + cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP) + ", /root/edithosts.sh " + args);
+            s_logger.debug("Run command on domR " + cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP) + ", /opt/cloud/bin/edithosts.sh " + args);
         }
 
         try {
             VmwareManager mgr = getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
             String controlIp = getRouterSshControlIp(cmd);
-            Pair<Boolean, String> result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/root/edithosts.sh " + args);
+            Pair<Boolean, String> result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/opt/cloud/bin/edithosts.sh " + args);
 
             if (!result.first()) {
                 s_logger.error("dhcp_entry command on domR " + controlIp + " failed, message: " + result.second());
@@ -2275,9 +2271,9 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
         File keyFile = mgr.getSystemVMKeyFile();
 
         try {
-            Pair<Boolean, String> result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/root/dnsmasq.sh " + args);
+            Pair<Boolean, String> result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/opt/cloud/bin/dnsmasq.sh " + args);
             if (s_logger.isDebugEnabled()) {
-                s_logger.debug("Run command on domain router " + routerIp + ",  /root/dnsmasq.sh");
+                s_logger.debug("Run command on domain router " + routerIp + ",  /opt/cloud/bin/dnsmasq.sh");
             }
 
             if (!result.first()) {
@@ -2397,14 +2393,14 @@ public class VmwareResource implements StoragePoolResource, ServerResource, Vmwa
     protected Answer execute(BumpUpPriorityCommand cmd) {
         if (s_logger.isDebugEnabled()) {
             s_logger.debug("Executing resource BumpUpPriorityCommand: " + _gson.toJson(cmd));
-            s_logger.debug("Run command on domR " + cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP) + ", /root/bumpup_priority.sh ");
+            s_logger.debug("Run command on domR " + cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP) + ", /opt/cloud/bin/bumpup_priority.sh ");
         }
 
         Pair<Boolean, String> result;
         try {
             VmwareManager mgr = getServiceContext().getStockObject(VmwareManager.CONTEXT_STOCK_NAME);
             String controlIp = getRouterSshControlIp(cmd);
-            result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/root/bumpup_priority.sh ");
+            result = SshHelper.sshExecute(controlIp, DefaultDomRSshPort, "root", mgr.getSystemVMKeyFile(), null, "/opt/cloud/bin/bumpup_priority.sh ");
 
             if (!result.first()) {
                 s_logger.error("BumpUpPriority command on domR " + cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP) + " failed, message: " + result.second());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/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 2568a21..ea812e3 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
@@ -2324,7 +2324,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
     }
 
     protected synchronized Answer execute(final DhcpEntryCommand cmd) {
-        String args = "";
+        String args = " -m " + cmd.getVmMac();
         if (cmd.getVmIpAddress() != null) {
             args += " -4 " + cmd.getVmIpAddress();
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/scripts/network/domr/bumpUpPriority.sh
----------------------------------------------------------------------
diff --git a/scripts/network/domr/bumpUpPriority.sh b/scripts/network/domr/bumpUpPriority.sh
deleted file mode 100755
index 3a7eaf9..0000000
--- a/scripts/network/domr/bumpUpPriority.sh
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-
-usage() {
-  printf "Usage:\n %s <domR eth1 ip> \n" $(basename $0) >&2
-  printf " %s <domR eth1 ip> \n" $(basename $0) >&2
-}
-
-cert="/root/.ssh/id_rsa.cloud"
-domRIp=$1
-shift
-
-check_gw() {
-  ping -c 1 -n -q $1 > /dev/null
-  if [ $? -gt 0 ]
-  then
-    sleep 1
-    ping -c 1 -n -q $1 > /dev/null
-  fi
-  return $?;
-}
-
-
-check_gw "$domRIp"
-if [ $? -gt 0 ]
-then
-  exit 1
-fi
-
-ssh -p 3922 -q -o StrictHostKeyChecking=no -i $cert root@$domRIp "/root/bumpup_priority.sh"
-exit $?

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/scripts/network/domr/call_dnsmasq.sh
----------------------------------------------------------------------
diff --git a/scripts/network/domr/call_dnsmasq.sh b/scripts/network/domr/call_dnsmasq.sh
deleted file mode 100755
index 81c218d..0000000
--- a/scripts/network/domr/call_dnsmasq.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-usage() {
-  printf "Usage: %s:  <domR eth1 ip>  <path_to_new_config_file>\n" $(basename $0) >&2
-}
-
-cert="/root/.ssh/id_rsa.cloud"
-
-ssh -p 3922 -q -o StrictHostKeyChecking=no -i $cert root@$1 "/root/dnsmasq.sh $2"	 
-exit $?
-      

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/scripts/network/domr/dhcp_entry.sh
----------------------------------------------------------------------
diff --git a/scripts/network/domr/dhcp_entry.sh b/scripts/network/domr/dhcp_entry.sh
deleted file mode 100755
index fb5a166..0000000
--- a/scripts/network/domr/dhcp_entry.sh
+++ /dev/null
@@ -1,82 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-
-# $Id: dhcp_entry.sh 9804 2010-06-22 18:36:49Z alex $ $HeadURL: svn://svn.lab.vmops.com/repos/vmdev/java/scripts/network/domr/dhcp_entry.sh $
-# dhcp_entry.sh -- add dhcp entry on domr
-# @VERSION@
-
-usage() {
-  printf "Usage: %s: -r <domr-ip> -m <vm mac> -v <vm ip> -n <vm name> -s <static route> -d <default router> -N <dns> -6 <vm IPv6> -u <duid> [-z]\n" $(basename $0) >&2
-  exit 2
-}
-
-cert="/root/.ssh/id_rsa.cloud"
-
-domrIp=
-vmMac=
-vmIp=
-vmName=
-staticrt=
-dfltrt=
-dns=
-ipv6=
-duid=
-
-opts=
-
-while getopts 'r:m:v:n:d:s:N:6:u:z' OPTION
-do
-  case $OPTION in
-  r)  domrIp="$OPTARG"
-      ;;
-  v)  vmIp="$OPTARG"
-      opts="$opts -4 $vmIp"
-      ;;
-  m)  vmMac="$OPTARG"
-      opts="$opts -m $vmMac"
-      ;;
-  n)  vmName="$OPTARG"
-      opts="$opts -h $vmName"
-      ;;
-  s)  staticrt="$OPTARG"
-      opts="$opts -s $staticrt"
-      ;;
-  d)  dfltrt="$OPTARG"
-      opts="$opts -d $dfltrt"
-      ;;
-  N)  dns="$OPTARG"
-      opts="$opts -n $dns"
-      ;;
-  6)  ipv6="$OPTARG"
-      opts="$opts -6 $ipv6"
-      ;;
-  u)  duid="$OPTARG"
-      opts="$opts -u $duid"
-      ;;
-  z)  opts="$opts -N"
-      ;;
-  ?)  usage
-      exit 1
-      ;;
-  esac
-done
-
-ssh -p 3922 -o StrictHostKeyChecking=no -i $cert root@$domrIp "/root/edithosts.sh $opts " >/dev/null
-
-exit $?

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/scripts/vm/hypervisor/xenserver/vmops
----------------------------------------------------------------------
diff --git a/scripts/vm/hypervisor/xenserver/vmops b/scripts/vm/hypervisor/xenserver/vmops
index 2e14fad..1b04533 100755
--- a/scripts/vm/hypervisor/xenserver/vmops
+++ b/scripts/vm/hypervisor/xenserver/vmops
@@ -178,21 +178,6 @@ def savePassword(session, args):
     return txt
 
 @echo
-def saveDhcpEntry(session, args):
-    sargs = args['args']
-    cmd = sargs.split(' ')
-    cmd.insert(0, "/opt/cloud/bin/dhcp_entry.sh")
-    cmd.insert(0, "/bin/bash")
-    try:
-        txt = util.pread2(cmd)
-        txt = 'success'
-    except:
-        logging.debug(" save dhcp entry failed "  )
-        txt = '' 
-
-    return txt
-    
-@echo
 def setLinkLocalIP(session, args):
     brName = args['brName']
     try:
@@ -286,18 +271,6 @@ def setLoadBalancerRule(session, args):
         txt = '' 
 
     return txt
-@echo
-def configdnsmasq(session, args):
-    routerip = args['routerip']
-    args = args['args']
-    target   = "root@"+routerip
-    try:
-       util.pread2(['ssh','-p','3922','-q','-o','StrictHostKeyChecking=no','-i','/root/.ssh/id_rsa.cloud',target,'/root/dnsmasq.sh',args])
-       txt='success'
-    except:
-       logging.debug("failed to config dnsmasq server")
-       txt=''
-    return txt
 
 @echo
 def createipAlias(session, args):
@@ -1608,28 +1581,12 @@ def network_rules(session, args):
   except:
     logging.debug("Failed to network rule !")
 
-@echo
-def bumpUpPriority(session, args):
-    sargs = args['args']
-    cmd = sargs.split(' ')
-    cmd.insert(0, "/opt/cloud/bin/bumpUpPriority.sh")
-    cmd.insert(0, "/bin/bash")
-    try:
-        txt = util.pread2(cmd)
-        txt = 'success'
-    except:
-        logging.debug("bump up priority fail! ")
-        txt = ''
-
-    return txt
-
-
 if __name__ == "__main__":
      XenAPIPlugin.dispatch({"pingtest": pingtest, "setup_iscsi":setup_iscsi, "gethostvmstats": gethostvmstats, 
                             "getgateway": getgateway, "preparemigration": preparemigration, 
                             "setIptables": setIptables, "pingdomr": pingdomr, "pingxenserver": pingxenserver,  
                             "savePassword": savePassword, 
-                            "saveDhcpEntry": saveDhcpEntry, "setFirewallRule": setFirewallRule, "routerProxy": routerProxy, 
+                            "setFirewallRule": setFirewallRule, "routerProxy": routerProxy, 
                             "setLoadBalancerRule": setLoadBalancerRule, "createFile": createFile, "deleteFile": deleteFile, 
                             "network_rules":network_rules, 
                             "can_bridge_firewall":can_bridge_firewall, "default_network_rules":default_network_rules,
@@ -1637,12 +1594,10 @@ if __name__ == "__main__":
                             "default_network_rules_systemvm":default_network_rules_systemvm, 
                             "network_rules_vmSecondaryIp":network_rules_vmSecondaryIp,
                             "createipAlias":createipAlias,
-                            "configdnsmasq":configdnsmasq,
                             "deleteipAlias":deleteipAlias,
                             "get_rule_logs_for_vms":get_rule_logs_for_vms, 
 			    "add_to_VCPUs_params_live":add_to_VCPUs_params_live,
                             "setLinkLocalIP":setLinkLocalIP,
                             "cleanup_rules":cleanup_rules,
-                            "bumpUpPriority":bumpUpPriority,
                             "createFileInDomr":createFileInDomr,
                             "kill_copy_process":kill_copy_process})

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/systemvm/patches/debian/config/opt/cloud/bin/bumpup_priority.sh
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/bumpup_priority.sh b/systemvm/patches/debian/config/opt/cloud/bin/bumpup_priority.sh
new file mode 100755
index 0000000..2b8d8c3
--- /dev/null
+++ b/systemvm/patches/debian/config/opt/cloud/bin/bumpup_priority.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+touch /tmp/rrouter_bumped

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/systemvm/patches/debian/config/opt/cloud/bin/dnsmasq.sh
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/dnsmasq.sh b/systemvm/patches/debian/config/opt/cloud/bin/dnsmasq.sh
new file mode 100755
index 0000000..8fae25c
--- /dev/null
+++ b/systemvm/patches/debian/config/opt/cloud/bin/dnsmasq.sh
@@ -0,0 +1,130 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+usage() {
+  printf "Usage: %s:  <routerAliasIp:gateway:netmask:start_ip_of_subnet:-routerAlisIp:gateway:....>\n" $(basename $0) >&2
+}
+
+source /root/func.sh
+
+lock="biglock"
+locked=$(getLockFile $lock)
+if [ "$locked" != "1" ]
+then
+    exit 1
+fi
+
+#set -x
+#backup the old config file
+DHCP_CONFIG=/etc/dnsmasq.d/multiple_ranges.conf
+DHCP_CONFIG_BAK=/etc/dnsmasq.d/multiple_ranges.conf.bak
+DHCP_CONFIG_MAIN=/etc/dnsmasq.conf
+DHCP_CONFIG_MAIN_BAK=/etc/dnsmasq.conf.bak
+DHCP_FAILURE_CONFIG=/etc/multiple_ranges.conf.failure
+DHCP_FAILURE_CONFIG_MAIN=/etc/dnsmasq.conf.failure
+CMDLINE=$(cat /var/cache/cloud/cmdline | tr '\n' ' ')
+
+#take a backup copy of the dnsmasq file.
+cp "$DHCP_CONFIG_MAIN"  "$DHCP_CONFIG_MAIN_BAK"
+cp "$DHCP_CONFIG" "$DHCP_CONFIG_BAK"
+
+#empty the config file
+echo > $DHCP_CONFIG
+
+var="$1"
+dhcp_range=""
+dhcp_gateway=""
+dhcp_netmask=""
+dns_option=""
+dns_servers=""
+count=0
+
+
+# fetching the dns Ips from the command line.
+dns1=$(echo "$CMDLINE" | grep -o " dns1=[[:digit:]].* " | sed -e 's/dns1=//' | awk '{print $1}')
+dns2=$(echo "$CMDLINE" | grep -o " dns2=[[:digit:]].* "  | sed -e 's/dns2=//' | awk '{print $1}')
+
+dns_servers="${dns1}"
+if [ -n "$dns2" ]
+then
+dns_servers="${dns1},${dns2}"
+fi
+
+
+# check if useextdns is true
+use_ext_dns=$(echo "$CMDLINE" | grep -o "useextdns=true")
+while [ -n "$var" ]
+do
+ var1=$(echo $var | cut -f1 -d "-")
+ routerip=$( echo $var1 | cut -f1 -d ":" )
+ gateway=$(echo $var1 | cut -f2 -d ":")
+ netmask=$(echo $var1 | cut -f3 -d ":")
+ start_ip_of_subnet=$(echo $var1 | cut -f4 -d ":")
+ dhcp_range="${dhcp_range}"'dhcp-range=set:range'$count","$start_ip_of_subnet",static \n"
+ dhcp_gateway="${dhcp_gateway}"'dhcp-option=tag:range'$count",3,"$gateway" \n"
+ dhcp_netmask="${dhcp_netmask}"'dhcp-option=tag:range'$count",1,"$netmask" \n"
+ if [ -n "$use_ext_dns" ]
+ then
+ dns_option="${dns_option}"'dhcp-option=tag:range'$count",6,"$dns_servers" \n"
+ else
+ dns_option="${dns_option}"'dhcp-option=tag:range'$count",6,$routerip"","$dns_servers" \n"
+ fi
+ var=$( echo $var | sed "s/${var1}-//" )
+ count=$[$count+1]
+done
+
+#logging the configuration being removed.
+log=""
+log="${log}"`grep "^dhcp-option=6" "$DHCP_CONFIG_MAIN"`"\n"
+log="${log}"`grep "^dhcp-option=option:router" "$DHCP_CONFIG_MAIN"`"\n"
+log="${log}"`grep "^dhcp-range=" "$DHCP_CONFIG_MAIN"`"\n"
+
+if [ "$log" != '\n\n\n' ]
+then
+ #Cleaning the existing dhcp confgiuration
+ logger -t cloud "dnsmasq.sh: remvoing the primaryip confg from dnsmasq.conf and adding it to /etc/dnsmaq.d/multiple_ranges.conf"
+ logger -t cloud "dnsmasq.sh: config removed from dnsmasq.conf is $log"
+ sed -i -e '/dhcp-option=6/d'  "$DHCP_CONFIG_MAIN"
+ sed -i -e '/dhcp-option=option:router/d' "$DHCP_CONFIG_MAIN"
+ sed -i -e '/^dhcp-range=/d' "$DHCP_CONFIG_MAIN"
+fi
+
+#wrting the new config into the config file.
+echo -e "$dhcp_range" >> "$DHCP_CONFIG"
+echo -e "$dhcp_gateway" >> "$DHCP_CONFIG"
+echo -e "$dhcp_netmask" >> "$DHCP_CONFIG"
+echo -e "$dns_option" >> "$DHCP_CONFIG"
+
+
+#restart the dnsmasq
+service dnsmasq restart
+result=$?
+if [ "$result" -ne "0" ]
+then
+   logger -t cloud "dnsmasq.sh: could not configure dnsmasq"
+   logger -t cloud "dnsmasq.sh: reverting to the old config"
+   logger -t cloud "dnsmasq.sh: copying the failure config to `$DHCP_FAILURE_CONFIG` and `$DHCP_FAILURE_CONFIG_MAIN`"
+   cp "$DHCP_CONFIG" "$DHCP_FAILURE_CONFIG"
+   cp "$DHCP_CONFIG_MAIN" "$DHCP_FAILURE_CONFIG_MAIN"
+   cp "$DHCP_CONFIG_BAK" "$DHCP_CONFIG"
+   cp "$DHCP_CONFIG_MAIN_BAK" "$DHCP_CONFIG_MAIN"
+   service dnsmasq restart
+   unlock_exit $result $lock $locked
+fi
+rm "$DHCP_CONFIG_BAK"
+rm "$DHCP_CONFIG_MAIN_BAK"
+unlock_exit $result $lock $locked

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/systemvm/patches/debian/config/opt/cloud/bin/edithosts.sh
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/opt/cloud/bin/edithosts.sh b/systemvm/patches/debian/config/opt/cloud/bin/edithosts.sh
new file mode 100755
index 0000000..b82fb8e
--- /dev/null
+++ b/systemvm/patches/debian/config/opt/cloud/bin/edithosts.sh
@@ -0,0 +1,234 @@
+#!/usr/bin/env bash
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+ 
+# edithosts.sh -- edit the dhcphosts file on the routing domain
+
+usage() {
+  printf "Usage: %s: -m <MAC address> -4 <IPv4 address> -6 <IPv6 address> -h <hostname> -d <default router> -n <name server address> -s <Routes> -u <DUID> [-N]\n" $(basename $0) >&2
+}
+
+mac=
+ipv4=
+ipv6=
+host=
+dflt=
+dns=
+routes=
+duid=
+nondefault=
+
+while getopts 'm:4:h:d:n:s:6:u:N' OPTION
+do
+  case $OPTION in
+  m)    mac="$OPTARG"
+        ;;
+  4)    ipv4="$OPTARG"
+        ;;
+  6)    ipv6="$OPTARG"
+        ;;
+  u)    duid="$OPTARG"
+        ;;
+  h)    host="$OPTARG"
+        ;;
+  d)    dflt="$OPTARG"
+        ;;
+  n)    dns="$OPTARG"
+        ;;
+  s)    routes="$OPTARG"
+        ;;
+  N)    nondefault=1
+        ;;
+  ?)    usage
+        exit 2
+        ;;
+  esac
+done
+
+DHCP_HOSTS=/etc/dhcphosts.txt
+DHCP_OPTS=/etc/dhcpopts.txt
+DHCP_LEASES=/var/lib/misc/dnsmasq.leases
+HOSTS=/etc/hosts
+
+source /root/func.sh
+
+lock="biglock"
+#default timeout value is 30 mins as DhcpEntryCommand is not synchronized on agent side any more,
+#and multiple commands can be sent to the same VR at a time
+locked=$(getLockFile $lock 1800)
+if [ "$locked" != "1" ]
+then
+    exit 1
+fi
+
+grep "redundant_router=1" /var/cache/cloud/cmdline > /dev/null
+no_redundant=$?
+
+command -v dhcp_release > /dev/null 2>&1
+no_dhcp_release=$?
+
+wait_for_dnsmasq () {
+  local _pid=$(pidof dnsmasq)
+  for i in 0 1 2 3 4 5 6 7 8 9 10
+  do
+    sleep 1
+    _pid=$(pidof dnsmasq)
+    [ "$_pid" != "" ] && break;
+  done
+  [ "$_pid" != "" ] && return 0;
+  logger -t cloud "edithosts: timed out waiting for dnsmasq to start"
+  return 1
+}
+
+if [ $ipv6 ]
+then
+    no_dhcp_release=1
+fi
+
+if [ $no_dhcp_release -eq 0 ]
+then
+  #release previous dhcp lease if present
+  logger -t cloud "edithosts: releasing $ipv4"
+  dhcp_release eth0 $ipv4 $(grep "$ipv4 " $DHCP_LEASES | awk '{print $2}') > /dev/null 2>&1
+  logger -t cloud "edithosts: released $ipv4"
+fi
+
+logger -t cloud "edithosts: update $mac $ipv4 $ipv6 $host to hosts"
+
+[ ! -f $DHCP_HOSTS ] && touch $DHCP_HOSTS
+[ ! -f $DHCP_OPTS ] && touch $DHCP_OPTS
+[ ! -f $DHCP_LEASES ] && touch $DHCP_LEASES
+
+#delete any previous entries from the dhcp hosts file
+sed -i  /$mac/d $DHCP_HOSTS
+if [ $ipv4 ]
+then
+  sed -i  /$ipv4,/d $DHCP_HOSTS
+fi
+if [ $ipv6 ]
+then
+  #searching with [$ipv6], matching other ip so using $ipv6],
+  sed -i  /$ipv6],/d $DHCP_HOSTS
+fi
+# don't want to do this in the future, we can have same VM with multiple nics/entries
+#sed -i  /$host,/d $DHCP_HOSTS
+
+
+#put in the new entry
+if [ $ipv4 ]
+then
+  echo "$mac,$ipv4,$host,infinite" >>$DHCP_HOSTS
+fi
+if [ $ipv6 ]
+then
+  if [ $nondefault ]
+  then
+    echo "id:$duid,set:nondefault6,[$ipv6],$host,infinite" >>$DHCP_HOSTS
+  else
+    echo "id:$duid,[$ipv6],$host,infinite" >>$DHCP_HOSTS
+  fi
+fi
+
+#delete leases to supplied mac and ip addresses
+if [ $ipv4 ]
+then
+  sed -i  /$mac/d $DHCP_LEASES 
+  sed -i  /"$ipv4 "/d $DHCP_LEASES 
+fi
+if [ $ipv6 ]
+then
+  sed -i  /$duid/d $DHCP_LEASES 
+  sed -i  /"$ipv6 "/d $DHCP_LEASES 
+fi
+sed -i  /"$host "/d $DHCP_LEASES 
+
+#put in the new entry
+if [ $ipv4 ]
+then
+  echo "0 $mac $ipv4 $host *" >> $DHCP_LEASES
+fi
+if [ $ipv6 ]
+then
+  echo "0 $duid $ipv6 $host *" >> $DHCP_LEASES
+fi
+
+#edit hosts file as well
+if [ $ipv4 ]
+then
+  sed -i  /"$ipv4 "/d $HOSTS
+fi
+if [ $ipv6 ]
+then
+  sed -i  /"$ipv6 "/d $HOSTS
+fi
+sed -i  /" $host$"/d $HOSTS
+if [ $ipv4 ]
+then
+  echo "$ipv4 $host" >> $HOSTS
+fi
+if [ $ipv6 ]
+then
+  echo "$ipv6 $host" >> $HOSTS
+fi
+
+if [ "$dflt" != "" ]
+then
+  #make sure dnsmasq looks into options file
+  sed -i /dhcp-optsfile/d /etc/dnsmasq.conf
+  echo "dhcp-optsfile=$DHCP_OPTS" >> /etc/dnsmasq.conf
+
+  tag=$(echo $ipv4 | tr '.' '_')
+  sed -i /$tag/d $DHCP_OPTS
+  if [ "$dflt" == "0.0.0.0" ]
+  then
+    logger -t cloud "$0: unset default router for $ipv4"
+    logger -t cloud "$0: unset dns server for $ipv4"
+    echo "$tag,3" >> $DHCP_OPTS
+    echo "$tag,6" >> $DHCP_OPTS
+    echo "$tag,15" >> $DHCP_OPTS
+  fi
+  [ "$routes" != "" ] && echo "$tag,121,$routes" >> $DHCP_OPTS
+  #delete entry we just put in because we need a tag
+  sed -i  /$ipv4,/d $DHCP_HOSTS
+  #put it back with a tag
+  echo "$mac,set:$tag,$ipv4,$host,infinite" >>$DHCP_HOSTS
+fi
+
+# make dnsmasq re-read files
+pid=$(pidof dnsmasq)
+if [ "$pid" != "" ]
+then
+  # use SIGHUP to avoid service outage if dhcp_release is available.
+  if [ $no_dhcp_release -eq 0 ]
+  then
+    kill -HUP $pid
+  else
+    service dnsmasq restart
+  fi
+else
+  if [ $no_redundant -eq 1 ]
+  then
+      wait_for_dnsmasq
+  else
+      logger -t cloud "edithosts: skip wait dnsmasq due to redundant virtual router"
+  fi
+fi
+
+ret=$?
+unlock_exit $ret $lock $locked

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/systemvm/patches/debian/config/root/bumpup_priority.sh
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/root/bumpup_priority.sh b/systemvm/patches/debian/config/root/bumpup_priority.sh
deleted file mode 100755
index 2b8d8c3..0000000
--- a/systemvm/patches/debian/config/root/bumpup_priority.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-touch /tmp/rrouter_bumped

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/systemvm/patches/debian/config/root/dnsmasq.sh
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/root/dnsmasq.sh b/systemvm/patches/debian/config/root/dnsmasq.sh
deleted file mode 100755
index 8fae25c..0000000
--- a/systemvm/patches/debian/config/root/dnsmasq.sh
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-usage() {
-  printf "Usage: %s:  <routerAliasIp:gateway:netmask:start_ip_of_subnet:-routerAlisIp:gateway:....>\n" $(basename $0) >&2
-}
-
-source /root/func.sh
-
-lock="biglock"
-locked=$(getLockFile $lock)
-if [ "$locked" != "1" ]
-then
-    exit 1
-fi
-
-#set -x
-#backup the old config file
-DHCP_CONFIG=/etc/dnsmasq.d/multiple_ranges.conf
-DHCP_CONFIG_BAK=/etc/dnsmasq.d/multiple_ranges.conf.bak
-DHCP_CONFIG_MAIN=/etc/dnsmasq.conf
-DHCP_CONFIG_MAIN_BAK=/etc/dnsmasq.conf.bak
-DHCP_FAILURE_CONFIG=/etc/multiple_ranges.conf.failure
-DHCP_FAILURE_CONFIG_MAIN=/etc/dnsmasq.conf.failure
-CMDLINE=$(cat /var/cache/cloud/cmdline | tr '\n' ' ')
-
-#take a backup copy of the dnsmasq file.
-cp "$DHCP_CONFIG_MAIN"  "$DHCP_CONFIG_MAIN_BAK"
-cp "$DHCP_CONFIG" "$DHCP_CONFIG_BAK"
-
-#empty the config file
-echo > $DHCP_CONFIG
-
-var="$1"
-dhcp_range=""
-dhcp_gateway=""
-dhcp_netmask=""
-dns_option=""
-dns_servers=""
-count=0
-
-
-# fetching the dns Ips from the command line.
-dns1=$(echo "$CMDLINE" | grep -o " dns1=[[:digit:]].* " | sed -e 's/dns1=//' | awk '{print $1}')
-dns2=$(echo "$CMDLINE" | grep -o " dns2=[[:digit:]].* "  | sed -e 's/dns2=//' | awk '{print $1}')
-
-dns_servers="${dns1}"
-if [ -n "$dns2" ]
-then
-dns_servers="${dns1},${dns2}"
-fi
-
-
-# check if useextdns is true
-use_ext_dns=$(echo "$CMDLINE" | grep -o "useextdns=true")
-while [ -n "$var" ]
-do
- var1=$(echo $var | cut -f1 -d "-")
- routerip=$( echo $var1 | cut -f1 -d ":" )
- gateway=$(echo $var1 | cut -f2 -d ":")
- netmask=$(echo $var1 | cut -f3 -d ":")
- start_ip_of_subnet=$(echo $var1 | cut -f4 -d ":")
- dhcp_range="${dhcp_range}"'dhcp-range=set:range'$count","$start_ip_of_subnet",static \n"
- dhcp_gateway="${dhcp_gateway}"'dhcp-option=tag:range'$count",3,"$gateway" \n"
- dhcp_netmask="${dhcp_netmask}"'dhcp-option=tag:range'$count",1,"$netmask" \n"
- if [ -n "$use_ext_dns" ]
- then
- dns_option="${dns_option}"'dhcp-option=tag:range'$count",6,"$dns_servers" \n"
- else
- dns_option="${dns_option}"'dhcp-option=tag:range'$count",6,$routerip"","$dns_servers" \n"
- fi
- var=$( echo $var | sed "s/${var1}-//" )
- count=$[$count+1]
-done
-
-#logging the configuration being removed.
-log=""
-log="${log}"`grep "^dhcp-option=6" "$DHCP_CONFIG_MAIN"`"\n"
-log="${log}"`grep "^dhcp-option=option:router" "$DHCP_CONFIG_MAIN"`"\n"
-log="${log}"`grep "^dhcp-range=" "$DHCP_CONFIG_MAIN"`"\n"
-
-if [ "$log" != '\n\n\n' ]
-then
- #Cleaning the existing dhcp confgiuration
- logger -t cloud "dnsmasq.sh: remvoing the primaryip confg from dnsmasq.conf and adding it to /etc/dnsmaq.d/multiple_ranges.conf"
- logger -t cloud "dnsmasq.sh: config removed from dnsmasq.conf is $log"
- sed -i -e '/dhcp-option=6/d'  "$DHCP_CONFIG_MAIN"
- sed -i -e '/dhcp-option=option:router/d' "$DHCP_CONFIG_MAIN"
- sed -i -e '/^dhcp-range=/d' "$DHCP_CONFIG_MAIN"
-fi
-
-#wrting the new config into the config file.
-echo -e "$dhcp_range" >> "$DHCP_CONFIG"
-echo -e "$dhcp_gateway" >> "$DHCP_CONFIG"
-echo -e "$dhcp_netmask" >> "$DHCP_CONFIG"
-echo -e "$dns_option" >> "$DHCP_CONFIG"
-
-
-#restart the dnsmasq
-service dnsmasq restart
-result=$?
-if [ "$result" -ne "0" ]
-then
-   logger -t cloud "dnsmasq.sh: could not configure dnsmasq"
-   logger -t cloud "dnsmasq.sh: reverting to the old config"
-   logger -t cloud "dnsmasq.sh: copying the failure config to `$DHCP_FAILURE_CONFIG` and `$DHCP_FAILURE_CONFIG_MAIN`"
-   cp "$DHCP_CONFIG" "$DHCP_FAILURE_CONFIG"
-   cp "$DHCP_CONFIG_MAIN" "$DHCP_FAILURE_CONFIG_MAIN"
-   cp "$DHCP_CONFIG_BAK" "$DHCP_CONFIG"
-   cp "$DHCP_CONFIG_MAIN_BAK" "$DHCP_CONFIG_MAIN"
-   service dnsmasq restart
-   unlock_exit $result $lock $locked
-fi
-rm "$DHCP_CONFIG_BAK"
-rm "$DHCP_CONFIG_MAIN_BAK"
-unlock_exit $result $lock $locked

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0cdf0f6f/systemvm/patches/debian/config/root/edithosts.sh
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/root/edithosts.sh b/systemvm/patches/debian/config/root/edithosts.sh
deleted file mode 100755
index b82fb8e..0000000
--- a/systemvm/patches/debian/config/root/edithosts.sh
+++ /dev/null
@@ -1,234 +0,0 @@
-#!/usr/bin/env bash
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-
- 
-# edithosts.sh -- edit the dhcphosts file on the routing domain
-
-usage() {
-  printf "Usage: %s: -m <MAC address> -4 <IPv4 address> -6 <IPv6 address> -h <hostname> -d <default router> -n <name server address> -s <Routes> -u <DUID> [-N]\n" $(basename $0) >&2
-}
-
-mac=
-ipv4=
-ipv6=
-host=
-dflt=
-dns=
-routes=
-duid=
-nondefault=
-
-while getopts 'm:4:h:d:n:s:6:u:N' OPTION
-do
-  case $OPTION in
-  m)    mac="$OPTARG"
-        ;;
-  4)    ipv4="$OPTARG"
-        ;;
-  6)    ipv6="$OPTARG"
-        ;;
-  u)    duid="$OPTARG"
-        ;;
-  h)    host="$OPTARG"
-        ;;
-  d)    dflt="$OPTARG"
-        ;;
-  n)    dns="$OPTARG"
-        ;;
-  s)    routes="$OPTARG"
-        ;;
-  N)    nondefault=1
-        ;;
-  ?)    usage
-        exit 2
-        ;;
-  esac
-done
-
-DHCP_HOSTS=/etc/dhcphosts.txt
-DHCP_OPTS=/etc/dhcpopts.txt
-DHCP_LEASES=/var/lib/misc/dnsmasq.leases
-HOSTS=/etc/hosts
-
-source /root/func.sh
-
-lock="biglock"
-#default timeout value is 30 mins as DhcpEntryCommand is not synchronized on agent side any more,
-#and multiple commands can be sent to the same VR at a time
-locked=$(getLockFile $lock 1800)
-if [ "$locked" != "1" ]
-then
-    exit 1
-fi
-
-grep "redundant_router=1" /var/cache/cloud/cmdline > /dev/null
-no_redundant=$?
-
-command -v dhcp_release > /dev/null 2>&1
-no_dhcp_release=$?
-
-wait_for_dnsmasq () {
-  local _pid=$(pidof dnsmasq)
-  for i in 0 1 2 3 4 5 6 7 8 9 10
-  do
-    sleep 1
-    _pid=$(pidof dnsmasq)
-    [ "$_pid" != "" ] && break;
-  done
-  [ "$_pid" != "" ] && return 0;
-  logger -t cloud "edithosts: timed out waiting for dnsmasq to start"
-  return 1
-}
-
-if [ $ipv6 ]
-then
-    no_dhcp_release=1
-fi
-
-if [ $no_dhcp_release -eq 0 ]
-then
-  #release previous dhcp lease if present
-  logger -t cloud "edithosts: releasing $ipv4"
-  dhcp_release eth0 $ipv4 $(grep "$ipv4 " $DHCP_LEASES | awk '{print $2}') > /dev/null 2>&1
-  logger -t cloud "edithosts: released $ipv4"
-fi
-
-logger -t cloud "edithosts: update $mac $ipv4 $ipv6 $host to hosts"
-
-[ ! -f $DHCP_HOSTS ] && touch $DHCP_HOSTS
-[ ! -f $DHCP_OPTS ] && touch $DHCP_OPTS
-[ ! -f $DHCP_LEASES ] && touch $DHCP_LEASES
-
-#delete any previous entries from the dhcp hosts file
-sed -i  /$mac/d $DHCP_HOSTS
-if [ $ipv4 ]
-then
-  sed -i  /$ipv4,/d $DHCP_HOSTS
-fi
-if [ $ipv6 ]
-then
-  #searching with [$ipv6], matching other ip so using $ipv6],
-  sed -i  /$ipv6],/d $DHCP_HOSTS
-fi
-# don't want to do this in the future, we can have same VM with multiple nics/entries
-#sed -i  /$host,/d $DHCP_HOSTS
-
-
-#put in the new entry
-if [ $ipv4 ]
-then
-  echo "$mac,$ipv4,$host,infinite" >>$DHCP_HOSTS
-fi
-if [ $ipv6 ]
-then
-  if [ $nondefault ]
-  then
-    echo "id:$duid,set:nondefault6,[$ipv6],$host,infinite" >>$DHCP_HOSTS
-  else
-    echo "id:$duid,[$ipv6],$host,infinite" >>$DHCP_HOSTS
-  fi
-fi
-
-#delete leases to supplied mac and ip addresses
-if [ $ipv4 ]
-then
-  sed -i  /$mac/d $DHCP_LEASES 
-  sed -i  /"$ipv4 "/d $DHCP_LEASES 
-fi
-if [ $ipv6 ]
-then
-  sed -i  /$duid/d $DHCP_LEASES 
-  sed -i  /"$ipv6 "/d $DHCP_LEASES 
-fi
-sed -i  /"$host "/d $DHCP_LEASES 
-
-#put in the new entry
-if [ $ipv4 ]
-then
-  echo "0 $mac $ipv4 $host *" >> $DHCP_LEASES
-fi
-if [ $ipv6 ]
-then
-  echo "0 $duid $ipv6 $host *" >> $DHCP_LEASES
-fi
-
-#edit hosts file as well
-if [ $ipv4 ]
-then
-  sed -i  /"$ipv4 "/d $HOSTS
-fi
-if [ $ipv6 ]
-then
-  sed -i  /"$ipv6 "/d $HOSTS
-fi
-sed -i  /" $host$"/d $HOSTS
-if [ $ipv4 ]
-then
-  echo "$ipv4 $host" >> $HOSTS
-fi
-if [ $ipv6 ]
-then
-  echo "$ipv6 $host" >> $HOSTS
-fi
-
-if [ "$dflt" != "" ]
-then
-  #make sure dnsmasq looks into options file
-  sed -i /dhcp-optsfile/d /etc/dnsmasq.conf
-  echo "dhcp-optsfile=$DHCP_OPTS" >> /etc/dnsmasq.conf
-
-  tag=$(echo $ipv4 | tr '.' '_')
-  sed -i /$tag/d $DHCP_OPTS
-  if [ "$dflt" == "0.0.0.0" ]
-  then
-    logger -t cloud "$0: unset default router for $ipv4"
-    logger -t cloud "$0: unset dns server for $ipv4"
-    echo "$tag,3" >> $DHCP_OPTS
-    echo "$tag,6" >> $DHCP_OPTS
-    echo "$tag,15" >> $DHCP_OPTS
-  fi
-  [ "$routes" != "" ] && echo "$tag,121,$routes" >> $DHCP_OPTS
-  #delete entry we just put in because we need a tag
-  sed -i  /$ipv4,/d $DHCP_HOSTS
-  #put it back with a tag
-  echo "$mac,set:$tag,$ipv4,$host,infinite" >>$DHCP_HOSTS
-fi
-
-# make dnsmasq re-read files
-pid=$(pidof dnsmasq)
-if [ "$pid" != "" ]
-then
-  # use SIGHUP to avoid service outage if dhcp_release is available.
-  if [ $no_dhcp_release -eq 0 ]
-  then
-    kill -HUP $pid
-  else
-    service dnsmasq restart
-  fi
-else
-  if [ $no_redundant -eq 1 ]
-  then
-      wait_for_dnsmasq
-  else
-      logger -t cloud "edithosts: skip wait dnsmasq due to redundant virtual router"
-  fi
-fi
-
-ret=$?
-unlock_exit $ret $lock $locked