Updated Branches:
  refs/heads/master 0a69b8289 -> 48913679e

CLOUDSTACK-2648 [Multiple_IP_Ranges] Reboot or start/stop router vm deletes the 
ip alises created on VR in case of multiple subnets

Signed-off-by: Abhinandan Prateek <aprat...@apache.org>


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

Branch: refs/heads/master
Commit: 48913679e80e50228b1bd4b3d17fe5245461626a
Parents: 0a69b82
Author: Bharat Kumar <bharat.ku...@citrix.com>
Authored: Thu May 23 19:24:22 2013 +0530
Committer: Abhinandan Prateek <aprat...@apache.org>
Committed: Mon Jun 3 19:22:27 2013 +0530

----------------------------------------------------------------------
 .../virtualnetwork/VirtualRoutingResource.java     |    2 +-
 .../systemvm/debian/config/root/deleteIpAlias.sh   |    2 +-
 .../hypervisor/vmware/resource/VmwareResource.java |    2 +-
 .../xen/resource/CitrixResourceBase.java           |    3 ++-
 .../router/VirtualNetworkApplianceManagerImpl.java |   13 ++++++++-----
 5 files changed, 13 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/48913679/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 8b996d1..9e40eef 100755
--- 
a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
+++ 
b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java
@@ -642,7 +642,7 @@ public class VirtualRoutingResource implements Manager {
         for (IpAliasTO ipAliasTO : revokedIpAliasTOs) {
             args = args + 
ipAliasTO.getAlias_count()+":"+ipAliasTO.getRouterip()+":"+ipAliasTO.getNetmask()+"-";
         }
-        args = args + " " ;
+        args = args + "- " ;
         List<IpAliasTO> activeIpAliasTOs = cmd.getCreateIpAliasTos();
         for (IpAliasTO ipAliasTO : activeIpAliasTOs) {
             args = args + 
ipAliasTO.getAlias_count()+":"+ipAliasTO.getRouterip()+":"+ipAliasTO.getNetmask()+"-";

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/48913679/patches/systemvm/debian/config/root/deleteIpAlias.sh
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/root/deleteIpAlias.sh 
b/patches/systemvm/debian/config/root/deleteIpAlias.sh
index 865ff3b..cf6d4de 100755
--- a/patches/systemvm/debian/config/root/deleteIpAlias.sh
+++ b/patches/systemvm/debian/config/root/deleteIpAlias.sh
@@ -24,7 +24,7 @@ set -x
 var="$1"
 cert="/root/.ssh/id_rsa.cloud"
 
-while [ -n "$var" ]
+while [[ !( "$var" == "-" ) ]]
 do
  var1=$(echo $var | cut -f1 -d "-")
  alias_count=$( echo $var1 | cut -f1 -d ":" )

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/48913679/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 5f99a15..bcd02d4 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
@@ -1976,7 +1976,7 @@ public class VmwareResource implements 
StoragePoolResource, ServerResource, Vmwa
         for (IpAliasTO ipAliasTO : revokedIpAliasTOs) {
             args = args + 
ipAliasTO.getAlias_count()+":"+ipAliasTO.getRouterip()+":"+ipAliasTO.getNetmask()+"-";
         }
-        args = args + " " ;
+        args = args + "- " ;
         for (IpAliasTO ipAliasTO : activeIpAliasTOs) {
             args = args + 
ipAliasTO.getAlias_count()+":"+ipAliasTO.getRouterip()+":"+ipAliasTO.getNetmask()+"-";
         }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/48913679/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 a2cceb1..66f96ad 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
@@ -2006,7 +2006,8 @@ public abstract class CitrixResourceBase implements 
ServerResource, HypervisorRe
         for (IpAliasTO ipAliasTO : revokedIpAliasTOs) {
             args = args + 
ipAliasTO.getAlias_count()+":"+ipAliasTO.getRouterip()+":"+ipAliasTO.getNetmask()+"-";
         }
-        args = args + " " ;
+        //this is to ensure that thre is some argument passed to the 
deleteipAlias script  when there are no revoked rules.
+        args = args + "- " ;
         List<IpAliasTO> activeIpAliasTOs = cmd.getCreateIpAliasTos();
         for (IpAliasTO ipAliasTO : activeIpAliasTOs) {
             args = args + 
ipAliasTO.getAlias_count()+":"+ipAliasTO.getRouterip()+":"+ipAliasTO.getNetmask()+"-";

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/48913679/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 020dbda..f7e77f3 100755
--- 
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -2473,18 +2473,21 @@ public class VirtualNetworkApplianceManagerImpl extends 
ManagerBase implements V
         //Reapply dhcp and dns configuration.
         if (_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, 
Service.Dhcp, provider)) {
             List<NicIpAliasVO> revokedIpAliasVOs = 
_nicIpAliasDao.listByNetworkIdAndState(guestNetworkId, 
NicIpAlias.state.revoked);
-            s_logger.debug("Found" + revokedIpAliasVOs.size() + "ip Aliases to 
apply on the router as a part of dhco configuration");
+            s_logger.debug("Found" + revokedIpAliasVOs.size() + "ip Aliases to 
revoke on the router as a part of dhcp configuration");
             List<IpAliasTO> revokedIpAliasTOs = new ArrayList<IpAliasTO>();
             for (NicIpAliasVO revokedAliasVO : revokedIpAliasVOs) {
                 revokedIpAliasTOs.add(new 
IpAliasTO(revokedAliasVO.getIp4Address(), revokedAliasVO.getNetmask(), 
revokedAliasVO.getAliasCount().toString()));
             }
             List<NicIpAliasVO> aliasVOs = 
_nicIpAliasDao.listByNetworkIdAndState(guestNetworkId, NicIpAlias.state.active);
-            s_logger.debug("Found" + aliasVOs.size() + "ip Aliases to apply on 
the router as a part of dhco configuration");
+            s_logger.debug("Found" + aliasVOs.size() + "ip Aliases to apply on 
the router as a part of dhcp configuration");
             List<IpAliasTO> activeIpAliasTOs = new ArrayList<IpAliasTO>();
             for (NicIpAliasVO aliasVO : aliasVOs) {
                    activeIpAliasTOs.add(new IpAliasTO(aliasVO.getIp4Address(), 
aliasVO.getNetmask(), aliasVO.getAliasCount().toString()));
             }
-            createDeleteIpAliasCommand(router, revokedIpAliasTOs, 
activeIpAliasTOs, guestNetworkId, cmds);
+            if (revokedIpAliasTOs.size() != 0 || activeIpAliasTOs.size() != 0){
+                createDeleteIpAliasCommand(router, revokedIpAliasTOs, 
activeIpAliasTOs, guestNetworkId, cmds);
+                configDnsMasq(router, _networkDao.findById(guestNetworkId), 
cmds);
+            }
 
         }
     }
@@ -2844,13 +2847,13 @@ public class VirtualNetworkApplianceManagerImpl extends 
ManagerBase implements V
 
             Commands cmds = new Commands(OnError.Continue);
             List<NicIpAliasVO> revokedIpAliasVOs = 
_nicIpAliasDao.listByNetworkIdAndState(network.getId(), 
NicIpAlias.state.revoked);
-            s_logger.debug("Found" + revokedIpAliasVOs.size() + "ip Aliases to 
apply on the router as a part of dhco configuration");
+            s_logger.debug("Found" + revokedIpAliasVOs.size() + "ip Aliases to 
revoke on the router as a part of dhcp configuration");
             List<IpAliasTO> revokedIpAliasTOs = new ArrayList<IpAliasTO>();
             for (NicIpAliasVO revokedAliasVO : revokedIpAliasVOs) {
                 revokedIpAliasTOs.add(new 
IpAliasTO(revokedAliasVO.getIp4Address(), revokedAliasVO.getNetmask(), 
revokedAliasVO.getAliasCount().toString()));
             }
             List<NicIpAliasVO> aliasVOs = 
_nicIpAliasDao.listByNetworkIdAndState(network.getId(), 
NicIpAlias.state.active);
-            s_logger.debug("Found" + aliasVOs.size() + "ip Aliases to apply on 
the router as a part of dhco configuration");
+            s_logger.debug("Found" + aliasVOs.size() + "ip Aliases to apply on 
the router as a part of dhcp configuration");
             List<IpAliasTO> activeIpAliasTOs = new ArrayList<IpAliasTO>();
             for (NicIpAliasVO aliasVO : aliasVOs) {
                 activeIpAliasTOs.add(new IpAliasTO(aliasVO.getIp4Address(), 
aliasVO.getNetmask(), aliasVO.getAliasCount().toString()));

Reply via email to