You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by an...@apache.org on 2020/02/24 10:58:50 UTC

[cloudstack] 01/01: Fix infinite lease time

This is an automated email from the ASF dual-hosted git repository.

andrijapanic pushed a commit to branch fix-infinite-lease-time
in repository https://gitbox.apache.org/repos/asf/cloudstack.git

commit 4339debed7f67181774582a89de8742c3404dfe6
Author: Andrija Panic <45...@users.noreply.github.com>
AuthorDate: Mon Feb 24 11:58:34 2020 +0100

    Fix infinite lease time
    
    previous setup of many hours would not work, due to some internal dnsmasq issues - lease was set correclty, but dnsmasq was setting the dhcp-renew-time (and rebind time) to less than 2 years from the date the lease was issued.
    
    Using "infinite" as the value (instead of the number) works as expected - and (atm) the renew date is set to year 2088, etc..
---
 systemvm/debian/opt/cloud/bin/cs/CsDhcp.py | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/systemvm/debian/opt/cloud/bin/cs/CsDhcp.py b/systemvm/debian/opt/cloud/bin/cs/CsDhcp.py
index d0b40e5..f1984ba 100755
--- a/systemvm/debian/opt/cloud/bin/cs/CsDhcp.py
+++ b/systemvm/debian/opt/cloud/bin/cs/CsDhcp.py
@@ -174,18 +174,15 @@ class CsDhcp(CsDataBag):
 
     def add(self, entry):
         self.add_host(entry['ipv4_address'], entry['host_name'])
-        # Lease time set to effectively infinite (36000+ days) since we properly control all DHCP/DNS config via CloudStack.
+        # Lease time set to "infinite" since we properly control all DHCP/DNS config via CloudStack.
         # Infinite time helps avoid some edge cases which could cause DHCPNAK being sent to VMs since
         # (RHEL) system lose routes when they receive DHCPNAK.
         # When VM is expunged, its active lease and DHCP/DNS config is properly removed from related files in VR,
         # so the infinite duration of lease does not cause any issues or garbage.
-        # There will be soon a PR which also regenerates the /var/lib/misc/dnsmasq.leases (active lease DB file)
-        # in the new VR (when restarting network with cleanup), which will help around RHEL edge cases (described above)
-        # for the VMs who are already running in productions systems with 30d lease time.
-        lease = randint(870000, 870010)
+        lease = 'infinite'
 
         if entry['default_entry']:
-            self.cloud.add("%s,%s,%s,%sh" % (entry['mac_address'],
+            self.cloud.add("%s,%s,%s,%s" % (entry['mac_address'],
                                              entry['ipv4_address'],
                                              entry['host_name'],
                                              lease))