+++ This bug was initially created as a clone of Bug #971026 +++ The same issue was reported with webob in swift3 plugin (openstack-swift-plugin-swift3 RPM) # swift-proxy-server /etc/swift/proxy-server.conf Traceback (most recent call last): File "/usr/bin/swift-proxy-server", line 22, in <module> run_wsgi(conf_file, 'proxy-server', default_port=8080, **options) File "/usr/lib/python2.6/site-packages/swift/common/wsgi.py", line 119, in run_wsgi init_request_processor(conf_file, app_section, *args, **kwargs) File "/usr/lib/python2.6/site-packages/swift/common/wsgi.py", line 246, in init_request_processor app = loadapp('config:%s' % conf_file, global_conf={'log_name': log_name}) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 247, in loadapp return loadobj(APP, uri, name=name, **kw) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 271, in loadobj global_conf=global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 296, in loadcontext global_conf=global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 320, in _loadconfig return loader.get_context(object_type, name, global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 450, in get_context global_additions=global_additions) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 562, in _pipeline_app_context for name in pipeline[:-1]] File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 454, in get_context section) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 476, in _context_from_use object_type, name=use, global_conf=global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 406, in get_context global_conf=global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 296, in loadcontext global_conf=global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 328, in _loadegg return loader.get_context(object_type, name, global_conf) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 620, in get_context object_type, name=name) File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 646, in find_egg_entry_point possible.append((entry.load(), protocol, entry.name)) File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 1948, in load entry = __import__(self.module_name, globals(),globals(), ['__name__']) File "/usr/lib/python2.6/site-packages/swift3/middleware.py", line 58, in <module> from webob import Request, Response ImportError: No module named webob RPMs installed: # rpm -qa openstack-swift* python-webob* python-keystoneclient openstack-swift-proxy-1.8.0-3.el6ost.noarch openstack-swift-plugin-swift3-1.0.0-0.20120711git.el6.noarch python-keystoneclient-0.2.3-4.el6ost.noarch openstack-swift-1.8.0-3.el6ost.noarch openstack-swift-container-1.8.0-3.el6ost.noarch openstack-swift-account-1.8.0-3.el6ost.noarch openstack-swift-object-1.8.0-3.el6ost.noarch python-webob1.2-1.2.3-2.2.el6ost.noarch python-webob1.0-1.0.8-3.el6.noarch The keystoneclient fix definitely does handle webob 1.2 fine: # python Python 2.6.6 (r266:84292, Oct 12 2012, 14:23:48) [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import keystoneclient >>> import webob.dec >>> But the problem is with openstack-swift-plugin-swift3. We need to add this to __init__.py: import os import sys import pkg_resources def replace_dist(requirement): try: return pkg_resources.require(requirement) except pkg_resources.VersionConflict: e = sys.exc_info()[1] dist=e.args[0] req=e.args[1] if dist.key == req.key and not dist.location.endswith('.egg'): del pkg_resources.working_set.by_key[dist.key] # We assume there is no need to adjust sys.path # and the associated pkg_resources.working_set.entries return pkg_resources.require(requirement) replace_dist("WebOb >= 1.2") OR, as proposed by Pete, patch swift3 to use Swift's swob "swift3 is Swift-only. Just swob the heck out of it, I say."
I meant this: https://github.com/fujita/swift3/commit/6429b1c5b97fd61452e1d3e66d0af17302922d8b
Created attachment 762871 [details] swift3 6429b1c5b97fd61452e1d3e66d0af17302922d8b rebased to openstack-swift-plugin-swift3-1.0.0-0.20120711git
I've created https://github.com/redhat-openstack/swift3 and pushed rebased webob->swob patch there. We'll use that fork for Fedora/RHOS until we decide to rebase to the latest upstream, looks like there was v1.7 release in the meantime.
Actually, Pete already pushed swift3 v1.7 to f19 http://koji.fedoraproject.org/koji/buildinfo?buildID=373000 so this will be a patch for RDO/RHOS only.
verified, proxy is up. [root@nott-vdsb log(keystone_admin)]# ps aux | grep swift | grep proxy swift 17749 0.0 0.0 237852 19100 ? Ss Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17765 0.0 0.0 239788 18796 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17766 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17767 0.0 0.0 239820 19272 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17768 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17770 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17771 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17772 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17773 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17774 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17775 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17776 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17777 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17778 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17779 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17780 0.0 0.0 239820 19280 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf swift 17781 0.0 0.0 239820 18828 ? S Jun19 0:00 /usr/bin/python /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf openstack-nova-console-2013.1.2-2.el6ost.noarch openstack-nova-compute-2013.1.2-2.el6ost.noarch openstack-nova-scheduler-2013.1.2-2.el6ost.noarch openstack-nova-network-2013.1.2-2.el6ost.noarch openstack-swift-1.8.0-4.el6ost.noarch openstack-swift-account-1.8.0-4.el6ost.noarch openstack-selinux-0.1.2-10.el6ost.noarch openstack-nova-common-2013.1.2-2.el6ost.noarch openstack-nova-conductor-2013.1.2-2.el6ost.noarch openstack-nova-novncproxy-0.4-5.el6ost.noarch python-django-openstack-auth-1.0.6-2.el6ost.noarch openstack-dashboard-2013.1.2-1.el6ost.noarch openstack-swift-plugin-swift3-1.0.0-0.20120711git.el6.noarch openstack-swift-container-1.8.0-4.el6ost.noarch openstack-swift-proxy-1.8.0-4.el6ost.noarch openstack-packstack-2013.1.1-0.19.dev632.el6ost.noarch openstack-utils-2013.1-8.1.el6ost.noarch kernel-2.6.32-358.111.1.openstack.el6.x86_64 openstack-keystone-2013.1.2-2.el6ost.noarch openstack-glance-2013.1.2-1.el6ost.noarch openstack-nova-api-2013.1.2-2.el6ost.noarch openstack-nova-cert-2013.1.2-2.el6ost.noarch openstack-swift-object-1.8.0-4.el6ost.noarch kernel-firmware-2.6.32-358.111.1.openstack.el6.noarch openstack-cinder-2013.1.2-3.el6ost.noarch
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2013-0968.html