X-Git-Url: http://git.ipfire.org/?p=oddments%2Fddns.git;a=blobdiff_plain;f=src%2Fddns%2F__init__.py;h=d14097dbcb9cf97be66162352765cf73061ab1b6;hp=f7318878326dafeb0eaf53127990cec600702e35;hb=251ab13f71b9de2bdedcd6d69cd7f7f49874b4c0;hpb=4ec90b9325b1561f7783b28323e25dd65cadb000 diff --git a/src/ddns/__init__.py b/src/ddns/__init__.py index f731887..d14097d 100644 --- a/src/ddns/__init__.py +++ b/src/ddns/__init__.py @@ -52,7 +52,9 @@ class DDNSCore(object): 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) + logger.debug(_("Debugging mode enabled")) # Initialize the settings array. @@ -74,33 +76,40 @@ class DDNSCore(object): """ 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): """ Simply registers all providers. """ for provider in ( + DDNSProviderAllInkl, DDNSProviderDHS, DDNSProviderDNSpark, DDNSProviderDtDNS, DDNSProviderDynDNS, + DDNSProviderDynU, + DDNSProviderEasyDNS, DDNSProviderFreeDNSAfraidOrg, + DDNSProviderNamecheap, DDNSProviderNOIP, DDNSProviderLightningWireLabs, + DDNSProviderOVH, + DDNSProviderRegfish, DDNSProviderSelfhost, DDNSProviderSPDNS, + DDNSProviderStrato, + DDNSProviderTwoDNS, + DDNSProviderUdmedia, DDNSProviderVariomedia, + DDNSProviderZoneedit, ): self.register_provider(provider) @@ -176,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") % \