From 9da3e685381b6b3a00af254be3cee6376f18bbf7 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Wed, 11 Jun 2014 00:09:06 +0200 Subject: [PATCH] Allow forcing an update. --- src/ddns/__init__.py | 8 ++++---- src/ddns/providers.py | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/ddns/__init__.py b/src/ddns/__init__.py index 673ba27..2fb5e02 100644 --- a/src/ddns/__init__.py +++ b/src/ddns/__init__.py @@ -133,7 +133,7 @@ class DDNSCore(object): if not entry in self.entries: self.entries.append(entry) - def updateall(self): + def updateall(self, force=False): # If there are no entries, there is nothing to do. if not self.entries: logger.debug(_("Found no entries in the configuration file. Exiting.")) @@ -141,11 +141,11 @@ class DDNSCore(object): # Update them all. for entry in self.entries: - self.update(entry) + self.update(entry, force=force) - def update(self, entry): + def update(self, entry, force=False): try: - entry() + entry(force=force) except DDNSUpdateError, e: logger.error(_("Dynamic DNS update for %(hostname)s (%(provider)s) failed:") % \ diff --git a/src/ddns/providers.py b/src/ddns/providers.py index 2115972..03201ba 100644 --- a/src/ddns/providers.py +++ b/src/ddns/providers.py @@ -115,9 +115,12 @@ class DDNSProvider(object): def protocols(self): return self.INFO.get("protocols") - def __call__(self): + def __call__(self, force=False): + if force: + logger.info(_("Updating %s forced") % self.hostname) + # Check if we actually need to update this host. - if self.is_uptodate(self.protocols): + elif self.is_uptodate(self.protocols): logger.info(_("%s is already up to date") % self.hostname) return -- 2.39.2