Files
yadyn/server/yadyn
Wolfgang Hottgenroth 441b6185e0 changes
2008-03-20 10:24:12 +01:00

100 lines
2.1 KiB
Python
Executable File

#!/usr/bin/python
import Queue
import time
import shelve
import os
import sys
from logger import Logger
import DynHandler
import DnsHandler
import Expirer
import DynReceiver
import CmdReceiver
import XmlRpcReceiver
import Entry
import Event
MSG_TIME_CORRIDOR = 120
EVENT_LIFE_TIME = 5
NULL_ADDRESS = '0.0.0.0'
TTL = 120
EXPIRY_PERIOD = 10
NAMESERVER = '88.198.170.2'
TSIGKEY = { "monitoring." : "+xLH8GuZnEgBljuIEM/iDA==" }
PID_FILE = "/var/db/yadyn/yadyn.pid"
ENTRIES_FILE = "/var/db/yadyn/entries"
ACTIONLOG_DIR = "/var/db/yadyn/actionlog"
ADMIN_PWD = 'test123'
DNS_DUMMY = True
DEBUG = True
if DEBUG:
pid = 0
else:
pid = os.fork()
if pid:
pidFile = file(PID_FILE , mode='w')
pidFile.write("%i\n" % pid)
pidFile.close()
sys.exit(0)
Logger.openlog()
if DEBUG:
Logger.debugEnable()
Logger.log("yadyn starting")
entries = shelve.open(ENTRIES_FILE, flag='c', writeback=True)
Logger.debug("Shelve opened")
try:
eventq = Queue.Queue()
dnsq = Queue.Queue()
Logger.debug("Queues created")
Event.Event.setParams(entries, MSG_TIME_CORRIDOR, dnsq)
dynHandler = DynHandler.DynHandler(eventq)
dynHandler.start()
Logger.debug("DynHandler started")
dnsHandler = DnsHandler.DnsHandler(dnsq, DNS_DUMMY, TSIGKEY, NAMESERVER, TTL, ACTIONLOG_DIR)
dnsHandler.start()
Logger.debug("DnsHandler started")
dynReceiver = DynReceiver.DynReceiver(("", 8053), eventq)
dynReceiver.start()
Logger.debug("DynReceiver started")
expirer = Expirer.Expirer(entries, EVENT_LIFE_TIME, NULL_ADDRESS, EXPIRY_PERIOD, dnsq)
expirer.start()
Logger.debug("Expirer started")
cmdReceiver = CmdReceiver.CmdReceiver(("", 8023), entries, ADMIN_PWD)
cmdReceiver.start()
Logger.debug("CmdReceiver started")
xmlRpcReceiver = XmlRpcReceiver.XmlRpcReceiver(("", 8024), entries, ADMIN_PWD)
xmlRpcReceiver.start()
Logger.debug("XmlRpcReceiver started")
Logger.log("yadyn running")
while True:
entries.sync()
time.sleep(10)
finally:
entries.close()
Logger.debug("Shelves closed")
Logger.log("yadyn terminating")