[svn] commit: r173 - /branches/f2f200910/src/lib/bind-cfgd/python/bind-cfgd.py
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu Oct 29 21:27:30 UTC 2009
Author: jelte
Date: Thu Oct 29 21:27:30 2009
New Revision: 173
Log:
save config data on SIGINT and SIGTERM
Modified:
branches/f2f200910/src/lib/bind-cfgd/python/bind-cfgd.py
Modified: branches/f2f200910/src/lib/bind-cfgd/python/bind-cfgd.py
==============================================================================
--- branches/f2f200910/src/lib/bind-cfgd/python/bind-cfgd.py (original)
+++ branches/f2f200910/src/lib/bind-cfgd/python/bind-cfgd.py Thu Oct 29 21:27:30 2009
@@ -1,5 +1,6 @@
import ISC
import pickle
+import signal
class ConfigData:
def __init__(self):
@@ -16,6 +17,7 @@
self.cc = ISC.CC.Session()
self.cc.group_subscribe("ConfigManager")
self.config = ConfigData()
+ self.running = False
def notify_boss(self):
self.cc.group_sendmsg({"running": "configmanager"}, "Boss")
@@ -71,8 +73,8 @@
return answer
def run(self):
- msg = 1
- while (msg):
+ self.running = True
+ while (self.running):
msg, env = self.cc.group_recvmsg(False)
if msg:
print("received message: ")
@@ -82,13 +84,23 @@
print(answer)
self.cc.group_reply(env, answer)
print("answer sent")
-
-
+ else:
+ self.running = False
+
+cm = None
+
+def signal_handler(signal, frame):
+ global cm
+ if cm:
+ cm.running = False
+
if __name__ == "__main__":
print("Hello, BIND10 world!")
db_file = "/tmp/parkinglot.db"
try:
cm = ConfigManager()
+ signal.signal(signal.SIGINT, signal_handler)
+ signal.signal(signal.SIGTERM, signal_handler)
cm.read_config(db_file)
# do loading here if necessary
cm.notify_boss()
More information about the bind10-changes
mailing list