]> git.ipfire.org Git - oddments/ddns.git/blobdiff - src/ddns/__init__.py
Don't log debugging output to syslog.
[oddments/ddns.git] / src / ddns / __init__.py
index 09511ce66800fa26d0247faa2aded043c32a34a0..d14097dbcb9cf97be66162352765cf73061ab1b6 100644 (file)
@@ -54,8 +54,6 @@ class DDNSCore(object):
                if debug:
                        rootlogger = logging.getLogger("ddns")
                        rootlogger.setLevel(logging.DEBUG)
-                       for handler in rootlogger.handlers:
-                               handler.setLevel(logging.DEBUG)
 
                        logger.debug(_("Debugging mode enabled"))
 
@@ -78,17 +76,14 @@ class DDNSCore(object):
                """
                assert issubclass(provider, DDNSProvider)
 
-               provider_handle = provider.INFO.get("handle")
-               assert provider_handle
+               if not all((provider.handle, provider.name, provider.website)):
+                       raise DDNSError(_("Provider is not properly configured"))
 
-               assert not self.providers.has_key(provider_handle), \
-                       "Provider '%s' has already been registered" % provider_handle
+               assert not self.providers.has_key(provider.handle), \
+                       "Provider '%s' has already been registered" % provider.handle
 
-               provider_name = provider.INFO.get("name")
-               assert provider_name
-
-               logger.debug("Registered new provider: %s (%s)" % (provider_name, provider_handle))
-               self.providers[provider_handle] = provider
+               logger.debug("Registered new provider: %s (%s)" % (provider.name, provider.handle))
+               self.providers[provider.handle] = provider
 
        def register_all_providers(self):
                """
@@ -190,15 +185,16 @@ class DDNSCore(object):
                try:
                        entry(force=force)
 
-               except DDNSUpdateError, e:
+               except DDNSError, e:
                        logger.error(_("Dynamic DNS update for %(hostname)s (%(provider)s) failed:") % \
                                { "hostname" : entry.hostname, "provider" : entry.name })
-                       logger.error("  %s" % e)
+                       logger.error("  %s: %s" % (e.__class__.__name__, e.reason))
+                       if e.message:
+                               logger.error("  %s" % e.message)
 
                except Exception, e:
                        logger.error(_("Dynamic DNS update for %(hostname)s (%(provider)s) throwed an unhandled exception:") % \
-                               { "hostname" : entry.hostname, "provider" : entry.name })
-                       logger.error("  %s" % e)
+                               { "hostname" : entry.hostname, "provider" : entry.name }, exc_info=True)
 
                else:
                        logger.info(_("Dynamic DNS update for %(hostname)s (%(provider)s) successful") % \