]> git.ipfire.org Git - oddments/ddns.git/blobdiff - src/ddns/providers.py
Don't log a successful image if no update was performed
[oddments/ddns.git] / src / ddns / providers.py
index a36651ede616914431534f0f78e4865dc3568281..59ccd728cd1f7e26f30a4054e6d13c6abff33895 100644 (file)
@@ -129,12 +129,16 @@ class DDNSProvider(object):
 
                # Check if we actually need to update this host.
                elif self.is_uptodate(self.protocols):
-                       logger.debug(_("%s is already up to date") % self.hostname)
+                       logger.info(_("The dynamic host %(hostname)s (%(provider)s) is already up to date") % \
+                               { "hostname" : self.hostname, "provider" : self.name })
                        return
 
                # Execute the update.
                self.update()
 
+               logger.info(_("Dynamic DNS update for %(hostname)s (%(provider)s) successful") % \
+                       { "hostname" : self.hostname, "provider" : self.name })
+
        def update(self):
                raise NotImplementedError
 
@@ -812,6 +816,30 @@ class DDNSProviderNsupdateINFO(DDNSProtocolDynDNS2, DDNSProvider):
                return data
 
 
+class DDNSProviderOpenDNS(DDNSProtocolDynDNS2, DDNSProvider):
+       handle    = "opendns.com"
+       name      = "OpenDNS"
+       website   = "http://www.opendns.com"
+
+       # Detailed information about the update request and possible
+       # response codes can be obtained from here:
+       # https://support.opendns.com/entries/23891440
+
+       url = "https://updates.opendns.com/nic/update"
+
+       @property
+       def proto(self):
+               return self.get("proto")
+
+       def _prepare_request_data(self):
+               data = {
+                       "hostname" : self.hostname,
+                       "myip"     : self.get_address(self.proto)
+               }
+
+               return data
+
+
 class DDNSProviderOVH(DDNSProtocolDynDNS2, DDNSProvider):
        handle    = "ovh.com"
        name      = "OVH"