66 lines
1.4 KiB
Python
Executable File
66 lines
1.4 KiB
Python
Executable File
#!/usr/bin/python
|
|
|
|
import Queue
|
|
import time
|
|
import shelve
|
|
|
|
from logger import Logger
|
|
import DynHandler
|
|
import DnsHandler
|
|
import Expirer
|
|
import DynReceiver
|
|
import CmdReceiver
|
|
import Entry
|
|
import Event
|
|
|
|
|
|
|
|
MSG_TIME_CORRIDOR = 5
|
|
EVENT_LIFE_TIME = 10
|
|
NULL_ADDRESS = '0.0.0.0'
|
|
TTL = 120
|
|
NAMESERVER = '88.198.170.2'
|
|
TSIGKEY = { "monitoring." : "+xLH8GuZnEgBljuIEM/iDA==" }
|
|
PIDFILE = "/tmp/yadyn.pid"
|
|
ADMIN_PWD = 'test123'
|
|
|
|
|
|
Logger.openlog()
|
|
Logger.debugEnable()
|
|
|
|
entries = shelve.open('entries', flag='c', writeback=True)
|
|
if len(entries) == 0:
|
|
entries['testhost'] = Entry.Entry('testhost', 'test123', 'test', 'test.de')
|
|
statusMap = shelve.open('statusMap', flag='c', writeback=True)
|
|
|
|
|
|
try:
|
|
eventq = Queue.Queue()
|
|
dnsq = Queue.Queue()
|
|
|
|
Event.Event.setParams(entries, MSG_TIME_CORRIDOR, dnsq)
|
|
|
|
dynHandler = DynHandler.DynHandler(eventq)
|
|
dynHandler.start()
|
|
|
|
dnsHandler = DnsHandler.DnsHandler(dnsq, TSIGKEY, NAMESERVER, TTL, statusMap)
|
|
dnsHandler.start()
|
|
|
|
dynReceiver = DynReceiver.DynReceiver(("", 8053), eventq)
|
|
dynReceiver.start()
|
|
|
|
expirer = Expirer.Expirer(entries, EVENT_LIFE_TIME, NULL_ADDRESS, dnsq)
|
|
expirer.start()
|
|
|
|
cmdReceiver = CmdReceiver.CmdReceiver(("", 8023), entries, ADMIN_PWD)
|
|
cmdReceiver.start()
|
|
|
|
while True:
|
|
entries.sync()
|
|
statusMap.sync()
|
|
time.sleep(10)
|
|
finally:
|
|
Logger.log("Closing shelves")
|
|
entries.close()
|
|
statusMap.close()
|