Temporarily package Mitch's hack to make delegation work again
[invirt/packages/invirt-dns.git] / invirt-dns
index de53e0d..c6394e6 100755 (executable)
@@ -45,7 +45,7 @@ class DatabaseAuthority(common.ResolverBase):
         for i in range(3):
             try:
                 value = self._lookup_unsafe(name, cls, type, timeout = None)
-            except (psycopg2.OperationalError, sqlalchemy.exceptions.SQLError):
+            except (psycopg2.OperationalError, sqlalchemy.exceptions.DBAPIError):
                 if i == 2:
                     raise
                 print "Reloading database"
@@ -127,7 +127,7 @@ class DatabaseAuthority(common.ResolverBase):
             if value:
                 ip = value.ip
             else:
-                value = invirt.database.Machine.query().filter_by(name=host).first()
+                value = invirt.database.Machine.query.filter_by(name=host).first()
                 if value:
                     ip = value.nics[0].ip
                 else:
@@ -202,7 +202,7 @@ class DelegatingQuotingBindAuthority(authority.BindAuthority):
         # check if it's within a subdomain we're supposed to delegate to
         # some other DNS server.
         while (isinstance(deferredResult.result, failure.Failure)
-               and name.find('.') != -1):
+               and '.' in name):
             maybeDelegate = True
             name = name[name.find('.') + 1 :]
             deferredResult = authority.BindAuthority._lookup(self, name, cls,
@@ -214,10 +214,10 @@ class DelegatingQuotingBindAuthority(authority.BindAuthority):
         # (because we didn't find the name we were asked about).  We
         # leave the 'additional' section as we received it because it
         # may contain A records for the DNS server we're delegating to.
-        if maybeDelegate and not isinstance(deferredResult.result,
-                                            failure.Failure):
-            (nsResults, nsAuthority, nsAdditional) = deferredResult.result
-            deferredResult = defer.succeed(([], nsResults, nsAdditional))
+#        if maybeDelegate and not isinstance(deferredResult.result,
+#                                            failure.Failure):
+#            (nsResults, nsAuthority, nsAdditional) = deferredResult.result
+#            deferredResult = defer.succeed(([], nsResults, nsAdditional))
         return deferredResult
 
 if '__main__' == __name__: