def __init__(self, debug=False):
# In debug mode, enable debug logging.
if debug:
- logger.setLevel(logging.DEBUG)
+ rootlogger = logging.getLogger("ddns")
+ rootlogger.setLevel(logging.DEBUG)
+ for handler in rootlogger.handlers:
+ handler.setLevel(logging.DEBUG)
+
logger.debug(_("Debugging mode enabled"))
# Initialize the settings array.
"""
assert issubclass(provider, DDNSProvider)
- provider_handle = provider.INFO.get("handle")
- assert provider_handle
-
- assert not self.providers.has_key(provider_handle), \
- "Provider '%s' has already been registered" % provider_handle
+ if not all((provider.handle, provider.name, provider.website)):
+ raise DDNSError(_("Provider is not properly configured"))
- provider_name = provider.INFO.get("name")
- assert provider_name
+ assert not self.providers.has_key(provider.handle), \
+ "Provider '%s' has already been registered" % provider.handle
- 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):
"""
DDNSProviderRegfish,
DDNSProviderSelfhost,
DDNSProviderSPDNS,
+ DDNSProviderStrato,
+ DDNSProviderTwoDNS,
DDNSProviderUdmedia,
DDNSProviderVariomedia,
+ DDNSProviderZoneedit,
):
self.register_provider(provider)
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") % \