Your message dated Mon, 10 Mar 2014 15:40:35 +0000 with message-id <[email protected]> and subject line Bug#710690: fixed in pywebdav 0.9.8-8 has caused the Debian Bug report #710690, regarding python-webdav: recursive <allprops> only yields a subset of properties to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [email protected] immediately.) -- 710690: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=710690 Debian Bug Tracking System Contact [email protected] with problems
--- Begin Message ---Package: python-webdav Version: 0.9.8-3 Severity: normal Dear Maintainer, when all properties for a resource and its children are requested, pywebdav only returns the value of those properties that are also set on requested collection itself. It does not return the properties that are only on one of the children (or grandchildren for that matter). Also, 404 is returned for any property that is on the requested collection, but not on the current child. The reason for this is that the list of property names is created once in pywebdav.lib.propfind.PROPFIND.create_allprop() and applied to each resource. Here's a quick hack to fix it: === Begin === --- propfind.py.old 2013-06-01 17:03:19.031822359 +0200 +++ /usr/lib/python2.7/dist-packages/pywebdav/lib/propfind.py 2013-06-01 17:08:50.000000000 +0200 @@ -66,7 +66,7 @@ df = None if self.request_type == RT_ALLPROP: - df = self.create_allprop() + df = self.create_prop(allprop=True) if self.request_type == RT_PROPNAME: df = self.create_propname() @@ -78,7 +78,7 @@ return df # no body means ALLPROP! - df = self.create_allprop() + df = self.create_prop(allprop=True) return df def create_propname(self): @@ -118,17 +118,7 @@ return doc.toxml(encoding="utf-8") - def create_allprop(self): - """ return a list of all properties """ - self.proplist = {} - self.namespaces = [] - for ns, plist in self._dataclass.get_propnames(self._uri).items(): - self.proplist[ns] = plist - self.namespaces.append(ns) - - return self.create_prop() - - def create_prop(self): + def create_prop(self, allprop=False): """ handle a <prop> request This will @@ -156,16 +146,25 @@ ms.tagName = 'D:multistatus' if self._depth == "0": + if allprop: + self.proplist = self._dataclass.get_propnames(self._uri) + self.namespaces = self.proplist.keys() gp, bp = self.get_propvalues(self._uri) res = self.mk_prop_response(self._uri, gp, bp, doc) ms.appendChild(res) elif self._depth == "1": + if allprop: + self.proplist = self._dataclass.get_propnames(self._uri) + self.namespaces = self.proplist.keys() gp, bp = self.get_propvalues(self._uri) res = self.mk_prop_response(self._uri, gp, bp, doc) ms.appendChild(res) for newuri in self._dataclass.get_childs(self._uri): + if allprop: + self.proplist = self._dataclass.get_propnames(newuri) + self.namespaces = self.proplist.keys() gp, bp = self.get_propvalues(newuri) res = self.mk_prop_response(newuri, gp, bp, doc) ms.appendChild(res) @@ -173,6 +172,9 @@ uri_list = [self._uri] while uri_list: uri = uri_list.pop() + if allprop: + self.proplist = self._dataclass.get_propnames(uri) + self.namespaces = self.proplist.keys() gp, bp = self.get_propvalues(uri) res = self.mk_prop_response(uri, gp, bp, doc) ms.appendChild(res) === End === Not sure why proplist and namespaces are instance variables rather than getting passed as a parameter to get_propvalues() and why we namespaces is a separate variable instead of just using proplist.keys() in mk_propname_response(), so I haven't changed that. -- System Information: Debian Release: 7.0 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'testing'), (500, 'stable'), (100, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.8-trunk-amd64 (SMP w/4 CPU cores) Locale: LANG=en_GB, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages python-webdav depends on: ii python 2.7.3-4 ii python-pkg-resources 0.6.24-1 python-webdav recommends no packages. python-webdav suggests no packages. -- no debconf information
--- End Message ---
--- Begin Message ---Source: pywebdav Source-Version: 0.9.8-8 We believe that the bug you reported is fixed in the latest version of pywebdav, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to [email protected], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Mathias Behrle <[email protected]> (supplier of updated pywebdav package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing [email protected]) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 1.8 Date: Mon, 10 Mar 2014 15:17:30 +0100 Source: pywebdav Binary: python-webdav Architecture: source all Version: 0.9.8-8 Distribution: unstable Urgency: medium Maintainer: Debian Tryton Maintainers <[email protected]> Changed-By: Mathias Behrle <[email protected]> Description: python-webdav - WebDAV server implementation in Python Closes: 710672 710690 Changes: pywebdav (0.9.8-8) unstable; urgency=medium . * Removing debian/source/options, we are building with dpkg defaults. * Updating year in debian copyright. * Removing PYBUILD_DESTDIR_python2 from rules, it is no more needed. * Adding pgp verification for uscan. * Adding gbp.conf for usage with git-buildpackage. * Adding 01-recursive-properties.patch (Closes: #710690). Thanks to Sascha Silbe for providing the patch, no feedback from maintainers so far. * Adding 02-RFC2616-keep-alive.patch (Closes: #710672). Thanks to Sascha Silbe for providing the patch, no feedback from maintainers so far. Checksums-Sha1: 1072c5af9acd4f9ea134ad5b3e0cae19bf6fe031 1943 pywebdav_0.9.8-8.dsc 36f7dcb0ea70bead2d327ac92a972939d44f47e2 13800 pywebdav_0.9.8-8.debian.tar.xz bb77df99c001379459a806de7691a4beb99f5481 44858 python-webdav_0.9.8-8_all.deb Checksums-Sha256: 8ced6a4f3e536f5c020b5ecd2cf6b60d1bfafcefc05f9672d4edf1cf22f26394 1943 pywebdav_0.9.8-8.dsc 6709cfe8525b37eb8cffbb9af1d9d3733ba3f40b9630dcbc4bea3b183c90885b 13800 pywebdav_0.9.8-8.debian.tar.xz ca823b80d11868f4493d692118e862f584bb054d91a5d3e61ef0e552479e2903 44858 python-webdav_0.9.8-8_all.deb Files: 6e53e67fdd9734261209209331705dc3 1943 python optional pywebdav_0.9.8-8.dsc a6179ca6f77c22e088dd5c91a99a0cca 13800 python optional pywebdav_0.9.8-8.debian.tar.xz e867daa7d98e9951e6991972aff29df3 44858 python optional python-webdav_0.9.8-8_all.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBCAAGBQJTHcpiAAoJENbQm+SEBbv2r1oP/RDergyjSLIear9LdCchSGsQ TsyMMDwN/UZ624SFtfOrW0+dXNhsJFl6j53cSk8ytp87vKYgEzeLq1xjQcIa3Rhp j1sKsA6TRiucjwOEzow//4nBkgIYiq5aru9RJx4a0sQ35lHrZWq7CUzsWN1haDCr uAlG5W6Z39hOK/Se+vWFEZwFvoSw8uhTseTS39/w9H84NycHFX1e1W5LaOT5erEH TgnZQUm2TXf8LWWYlsK4netT8clx8mnrR6IAByOh9HGIT1gjMI20qLj5NDje1HYU xvhZWzW10WZVBjVbfbvXIM7hCrEBJqIiEtzoqQ6Taba9obYPjitISL7qb7e1n2ot h7x+dqX3qBy7Oz6r6mk6IYf1bEvS9DHBfdeQT/fPoGVzXoqHo4RLlvvSFmkdQGpl biuGAGWc92qLLJ8oKKfn0N4YQcix9JNRxIVhoAapwjUl7+YiS1dMwYlS4g8ge++K c0EgFeLXh++niFUs99HWV9Wcqej6jQZLo2+niabt2cnKAtuZFyGM364zkZ+jdr5P rBCZ/u1UaXh9PzDaXzjAJ2iJmNTL/OWUYfKU5/yZnYR312pDY/hbQZ5wqLBbixpI K1ozVNVbnKWGtUqHn3NQzjv1bEH2mxg87dyxuMpsigsmA1eTHDPybailI/JEN1Wa aQTWJTBy9gkMJJVwdAgK =9vIO -----END PGP SIGNATURE-----
--- End Message ---

