I use happily duply as my backup solution. This is a frontend for duplicity, an encrypted, bandwidth-efficient backup system using the rsync algorithm. To store the backups I use a different server of mine with plenty of storage, but which runs Windows Server unfortunately. So the only easy way of transferring the files seemed to be via webdav, which is natively supported by duplicity.
After setting up the webdav server and creating a new backup profile with duply
the backup process was aborted with the error message
object has no attribute 'warn'.
Due to my lack of python knowledge the error was not very helpful to me, neither
were the internet search results.
Finally I had the idea to have a look at the source code and promptly found the
culprit. Have a look at
if token.split(',').lower() == 'negotiate': try: return self.get_kerberos_authorization() except ImportError: log.warn(_("python-kerberos needed to use kerberos \ authorization, falling back to basic auth.")) return self.get_basic_authorization() except Exception as e: log.warn(_("Kerberos authorization failed: %s.\ Falling back to basic auth.") % e) return self.get_basic_authorization()
There we can see two calls to
log.warn, which cause the error. The log module
does not have a
warn method, but it does have a
Warn method. So just change
lines 260 and 264 to contain
log.Warn(), with an uppercase W, and everything
I reported the bug to the maintainers, so it will be fixed in the next version hopefully.
EDIT: The maintainers commited a fix, so this bug should be fixed from now.