From b9401f1bf25382f38e9b6df071b31e1fdd0f16d3 Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Sun, 3 Aug 2008 21:35:24 -0400 Subject: [PATCH] * sipb_xen_database -> invirt.database * use invirt.config in dnsserver.py svn path=/trunk/packages/sipb-xen-dns/; revision=851 --- code/dnsserver.py | 35 ++++++++++++++++++++--------------- config.todo | 6 ------ debian/changelog | 7 +++++++ 3 files changed, 27 insertions(+), 21 deletions(-) delete mode 100644 config.todo diff --git a/code/dnsserver.py b/code/dnsserver.py index 8a41a25..7a7cf22 100755 --- a/code/dnsserver.py +++ b/code/dnsserver.py @@ -6,7 +6,8 @@ from twisted.names import common from twisted.internet import defer from twisted.python import failure -import sipb_xen_database +from invirt.config import structs as config +import invirt.database import psycopg2 import sqlalchemy import time @@ -16,18 +17,24 @@ class DatabaseAuthority(common.ResolverBase): soa = None - def __init__(self, domains, database=None): + def __init__(self, domains=None, database=None): common.ResolverBase.__init__(self) if database is not None: - sipb_xen_database.connect(database) - self.domains = domains - self.soa = dns.Record_SOA(mname='ns1.xvm.mit.edu', - rname='xvm.mit.edu', + invirt.database.connect(database) + else: + invirt.database.connect() + if domains is not None: + self.domains = domains + else: + self.domains = config.dns.domains + ns = config.dns.nameservers[0] + self.soa = dns.Record_SOA(mname=ns.hostname, + rname=config.dns.contact.replace('@','.',1), serial=1, refresh=3600, retry=900, expire=3600000, minimum=21600, ttl=3600) - self.ns = dns.Record_NS(name='ns1.xvm.mit.edu', ttl=3600) - record = dns.Record_A(address='18.181.0.62', ttl=3600) - self.ns1 = dns.RRHeader('ns1.xvm.mit.edu', dns.A, dns.IN, + self.ns = dns.Record_NS(name=ns.hostname, ttl=3600) + record = dns.Record_A(address=ns.ip, ttl=3600) + self.ns1 = dns.RRHeader(ns.hostname, dns.A, dns.IN, 3600, record, auth=True) @@ -45,7 +52,7 @@ class DatabaseAuthority(common.ResolverBase): return value def _lookup_unsafe(self, name, cls, type, timeout): - sipb_xen_database.clear_cache() + invirt.database.clear_cache() ttl = 900 name = name.lower() @@ -67,7 +74,7 @@ class DatabaseAuthority(common.ResolverBase): host = name[:-len(domain)-1] if not host: if type in (dns.A, dns.ALL_RECORDS): - record = dns.Record_A('18.181.0.62', ttl) + record = dns.Record_A(config.dns.nameservers[0].ip, ttl) results.append(dns.RRHeader(name, dns.A, dns.IN, ttl, record, auth=True)) elif type == dns.NS: @@ -79,7 +86,7 @@ class DatabaseAuthority(common.ResolverBase): ttl, self.soa, auth=True)) else: if host: - value = sipb_xen_database.Machine.get_by(name=host) + value = invirt.database.Machine.get_by(name=host) if value is None or not value.nics: return defer.fail(failure.Failure(dns.AuthoritativeDomainError(name))) ip = value.nics[0].ip @@ -101,9 +108,7 @@ class DatabaseAuthority(common.ResolverBase): return defer.fail(failure.Failure(dns.AuthoritativeDomainError(name))) if '__main__' == __name__: - resolver = DatabaseAuthority(['servers.csail.mit.edu', - 'xvm.mit.edu'], - 'postgres://sipb-xen@sipb-xen-dev/sipb_xen') + resolver = DatabaseAuthority() verbosity = 0 f = server.DNSServerFactory(authorities=[resolver], verbose=verbosity) diff --git a/config.todo b/config.todo deleted file mode 100644 index a5a19e7..0000000 --- a/config.todo +++ /dev/null @@ -1,6 +0,0 @@ -code/dnsserver.py: -- ns1.xvm, ip -- soa: sipb-xen-dev, sipb-xen -- ip of @ -- domains -- db uri diff --git a/debian/changelog b/debian/changelog index 21bbc92..4fbaf62 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +sipb-xen-dns (1.02) unstable; urgency=low + + * sipb_xen_database -> invirt.database + * use invirt.config in dnsserver.py + + -- Yang Zhang Sun, 3 Aug 2008 19:18:40 -0400 + sipb-xen-dns (1.01) unstable; urgency=low * update SOA record for the xvm.mit.edu order of things -- 1.7.9.5