From 436dc42576a9d94cc7f8dd734f5071ddb00ed8dc Mon Sep 17 00:00:00 2001 From: Joshua Boniface Date: Sun, 30 Sep 2018 11:11:33 -0400 Subject: [PATCH] Don't delete if lease is static --- router-daemon/pvcrd/DHCPServer.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/router-daemon/pvcrd/DHCPServer.py b/router-daemon/pvcrd/DHCPServer.py index ce6f4a83..48ab1e3e 100644 --- a/router-daemon/pvcrd/DHCPServer.py +++ b/router-daemon/pvcrd/DHCPServer.py @@ -638,9 +638,13 @@ class ZKDatabase(object): def delete(self, pattern): macaddr = pattern[0] try: - zkhandler.delete(self.zk_conn, '{}/{}'.format(self.key, macaddr)) + timestamp = zkhandler.readdata(self.zk_conn, '{}/{}'.format(self.key, macaddr)) + if timestamp != 'static': + zkhandler.delete(self.zk_conn, '{}/{}'.format(self.key, macaddr)) + return True except Exception: pass + return False def all(self): leases = [] @@ -716,8 +720,8 @@ class HostDatabase(object): return list(map(Host.from_tuple, self.db.all())) def replace(self, host): - self.delete(host) - self.add(host) + if self.delete(host): + self.add(host) def sorted_hosts(hosts): hosts = list(hosts)