cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From yas...@apache.org
Subject git commit: updated refs/heads/4.2 to 30419ca
Date Thu, 30 Jan 2014 01:59:00 GMT
Updated Branches:
  refs/heads/4.2 252913374 -> 30419cac2


CLOUDSTACK-5986: Make dnsmasq handle dnsmasq.leases when dhcp_release is available

The original issue has been exposed due to CloudStack VR would modify the
dnsmasq.leases, thus make it unsync with dnsmasq's memory lease.

Make the modification to let dnsmasq handle the lease file if dhcp_release is
available.


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

Branch: refs/heads/4.2
Commit: 30419cac26993d279e589674faa084c15f2694ee
Parents: 2529133
Author: Sheng Yang <sheng.yang@citrix.com>
Authored: Wed Jan 29 16:15:24 2014 -0800
Committer: Sheng Yang <sheng.yang@citrix.com>
Committed: Wed Jan 29 17:58:45 2014 -0800

----------------------------------------------------------------------
 .../debian/config/etc/init.d/cloud-early-config | 10 ++++
 .../systemvm/debian/config/root/edithosts.sh    | 53 +++++++++-----------
 2 files changed, 35 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30419cac/patches/systemvm/debian/config/etc/init.d/cloud-early-config
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/etc/init.d/cloud-early-config b/patches/systemvm/debian/config/etc/init.d/cloud-early-config
index d44f94d..2c9fcbd 100755
--- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config
+++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config
@@ -737,6 +737,16 @@ setup_dnsmasq() {
       sed -i -e "/^dhcp-client-update/d" /etc/dnsmasq.conf
       echo 'dhcp-client-update' >> /etc/dnsmasq.conf
   fi
+
+  command -v dhcp_release > /dev/null 2>&1
+  no_dhcp_release=$?
+  if [ $no_dhcp_release -eq 0 -a -z "$ETH0_IP6" ]
+  then
+      echo 1 > /var/cache/cloud/dnsmasq_managed_lease
+      sed -i -e "/^leasefile-ro/d" /etc/dnsmasq.conf
+  else
+      echo 0 > /var/cache/cloud/dnsmasq_managed_lease
+  fi
 }
 
 setup_sshd(){

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/30419cac/patches/systemvm/debian/config/root/edithosts.sh
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/root/edithosts.sh b/patches/systemvm/debian/config/root/edithosts.sh
index b82fb8e..8e7ddac 100755
--- a/patches/systemvm/debian/config/root/edithosts.sh
+++ b/patches/systemvm/debian/config/root/edithosts.sh
@@ -80,8 +80,7 @@ fi
 grep "redundant_router=1" /var/cache/cloud/cmdline > /dev/null
 no_redundant=$?
 
-command -v dhcp_release > /dev/null 2>&1
-no_dhcp_release=$?
+dnsmasq_managed_lease=`cat /var/cache/cloud/dnsmasq_managed_lease`
 
 wait_for_dnsmasq () {
   local _pid=$(pidof dnsmasq)
@@ -96,12 +95,7 @@ wait_for_dnsmasq () {
   return 1
 }
 
-if [ $ipv6 ]
-then
-    no_dhcp_release=1
-fi
-
-if [ $no_dhcp_release -eq 0 ]
+if [ $dnsmasq_managed_lease ]
 then
   #release previous dhcp lease if present
   logger -t cloud "edithosts: releasing $ipv4"
@@ -145,27 +139,30 @@ then
   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 ]
+if [ $dnsmasq_managed_lease -eq 0 ]
 then
-  sed -i  /$duid/d $DHCP_LEASES 
-  sed -i  /"$ipv6 "/d $DHCP_LEASES 
-fi
-sed -i  /"$host "/d $DHCP_LEASES 
+  #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
+  #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
 fi
 
 #edit hosts file as well
@@ -215,7 +212,7 @@ pid=$(pidof dnsmasq)
 if [ "$pid" != "" ]
 then
   # use SIGHUP to avoid service outage if dhcp_release is available.
-  if [ $no_dhcp_release -eq 0 ]
+  if [ $dnsmasq_managed_lease ]
   then
     kill -HUP $pid
   else


Mime
View raw message