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.3-forward to 441d02d
Date Thu, 30 Jan 2014 01:54:19 GMT
Updated Branches:
  refs/heads/4.3-forward b1d4c06ad -> 441d02dd4


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/441d02dd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/441d02dd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/441d02dd

Branch: refs/heads/4.3-forward
Commit: 441d02dd402e632c3eba1062a55fc0d752e76003
Parents: b1d4c06
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:54:00 2014 -0800

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


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/441d02dd/systemvm/patches/debian/config/etc/init.d/cloud-early-config
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/etc/init.d/cloud-early-config b/systemvm/patches/debian/config/etc/init.d/cloud-early-config
index d6dc8f0..77e0f17 100755
--- a/systemvm/patches/debian/config/etc/init.d/cloud-early-config
+++ b/systemvm/patches/debian/config/etc/init.d/cloud-early-config
@@ -750,6 +750,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/441d02dd/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
index b82fb8e..8e7ddac 100755
--- a/systemvm/patches/debian/config/root/edithosts.sh
+++ b/systemvm/patches/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