126 lines
2.8 KiB
Python
Executable File
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")
|