Bug 975579 - Dependancy issue prevents swift proxy from starting when using swift3 plugin
Summary: Dependancy issue prevents swift proxy from starting when using swift3 plugin
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-swift-plugin-swift3
Version: 3.0
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: rc
: 3.0
Assignee: Alan Pevec
QA Contact: Martina Kollarova
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-06-18 20:01 UTC by Alan Pevec
Modified: 2016-04-26 14:34 UTC (History)
8 users (show)

Fixed In Version: openstack-swift-plugin-swift3-1.0.0-0.20120711git.1.el6ost
Doc Type: Bug Fix
Doc Text:
Clone Of: 971026
Environment:
Last Closed: 2013-06-27 17:18:27 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
swift3 6429b1c5b97fd61452e1d3e66d0af17302922d8b rebased to openstack-swift-plugin-swift3-1.0.0-0.20120711git (9.17 KB, patch)
2013-06-19 11:21 UTC, Alan Pevec
zaitcev: review+
Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2013:0968 0 normal SHIPPED_LIVE Red Hat OpenStack 3.0 ("Grizzly") bug fix and enhancement update 2013-06-27 21:14:27 UTC

Description Alan Pevec 2013-06-18 20:01:36 UTC
+++ 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."

Comment 2 Alan Pevec 2013-06-19 11:21:26 UTC
Created attachment 762871 [details]
swift3 6429b1c5b97fd61452e1d3e66d0af17302922d8b rebased to openstack-swift-plugin-swift3-1.0.0-0.20120711git

Comment 3 Alan Pevec 2013-06-19 11:29:45 UTC
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.

Comment 4 Alan Pevec 2013-06-19 11:44:46 UTC
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.

Comment 7 Haim 2013-06-20 11:12:20 UTC
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

Comment 9 errata-xmlrpc 2013-06-27 17:18:27 UTC
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


Note You need to log in before you can comment on or make changes to this bug.