The ceilometer team is using Pecan [1] for our next-generation API framework. Pecan depends on a newer WebOb than is used by the other OpenStack components, so I spent this morning reviewing the differences in WebOb between 1.0.8 and 1.2.3 (the latest stable release) [2] and what impact those changes might have on nova, cinder, keystone, and oslo (the 4 projects where I found WebOb being used -- please let me know if I missed one).<div>
<br></div><div>Most of the changes appear to be bug fixes and changes that either have a backwards-compatible alias, are deprecations that were reversed later, or should not have an impact on us because we were not using the changed area of the code directly. The only thing I found to be questionable is the change to Request.path_info and Request.script_name. Those properties are now unicode objects instead of str objects, as WebOb is trying to provide better Python 3 support. I found a few uses of those variables in comparisons and concatenation with str objects, but the casting should work automatically as long as the path can be encoded in the default encoding, which should be the case as the paths to our API use only ASCII characters. All of the unit tests pass when I run them locally.</div>
<div><br></div><div>I have submitted patches against the 4 projects to update the version number in tools/pip-requires, without any other code changes:</div><div><br></div><div>Oslo: <a href="https://review.openstack.org/#/c/18885/">https://review.openstack.org/#/c/18885/</a></div>
<div>Nova: <a href="https://review.openstack.org/#/c/18886/">https://review.openstack.org/#/c/18886/</a></div><div>Keystone: <a href="https://review.openstack.org/#/c/18887/">https://review.openstack.org/#/c/18887/</a></div>
<div>Cinder: <a href="https://review.openstack.org/#/c/18888/">https://review.openstack.org/#/c/18888/</a></div><div><br></div><div>If anyone else has done similar analysis in the past and come to a different conclusion about whether it is safe to upgrade, please let me know.</div>
<div><br></div><div><div>Doug</div><div><br></div><div>[1] Pecan: <a href="http://pecan.readthedocs.org/en/latest/">http://pecan.readthedocs.org/en/latest/</a></div><div>[2] The full release notes for WebOb: <a href="http://docs.webob.org/en/latest/news.html">http://docs.webob.org/en/latest/news.html</a></div>
</div><div><br></div>