Files
yadyn/server/yadyn
Wolfgang Hottgenroth 30cbcdab92 fixes
2009-02-20 21:33:37 +01:00

126 lines
2.8 KiB
Python
Executable File

#!/usr/bin/env 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 HttpCmdReceiver
import Entry
import Event
import AdminFuncs
#MSG_TIME_CORRIDOR = 120
#EVENT_LIFE_TIME = 60
#NULL_ADDRESS = '0.0.0.0'
#TTL = 120
#EXPIRY_PERIOD = 30
#NAMESERVER = '127.0.0.1'
#NAMESERVER_PORT = 5300
#TSIGKEY = { "yadyn." : "+xLH8GuZnEgBljuIEM/iDA==" }
#PID_FILE = "/tmp/yadyn/yadyn.pid"
#ENTRIES_FILE = "/tmp/yadyn/entries"
#ACTIONLOG_DIR = "/tmp/yadyn/actionlog"
#ADMIN_PWD = 'test123'
#DNS_DUMMY = False
#DEBUG = True
MSG_TIME_CORRIDOR = 120
EVENT_LIFE_TIME = 600
NULL_ADDRESS = '0.0.0.0'
TTL = 120
EXPIRY_PERIOD = 300
NAMESERVER = '88.198.170.2'
NAMESERVER_PORT = 53
TSIGKEY = { "yadyn." : "+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 = False
DEBUG = False
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)
AdminFuncs.AdminFuncs.setParams(entries, ADMIN_PWD)
dynHandler = DynHandler.DynHandler(eventq)
dynHandler.start()
Logger.debug("DynHandler started")
dnsHandler = DnsHandler.DnsHandler(dnsq, DNS_DUMMY, TSIGKEY, NAMESERVER, NAMESERVER_PORT, 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")
httpCmdReceiver = HttpCmdReceiver.HttpCmdReceiver(("", 8025), entries, ADMIN_PWD, dnsq, NULL_ADDRESS)
httpCmdReceiver.start()
Logger.debug("httpCmdReceiver started")
Logger.log("yadyn running")
while True:
entries.sync()
time.sleep(10)
finally:
entries.close()
Logger.debug("Shelves closed")
Logger.log("yadyn terminating")