zerovm / zerocloud

Swift middleware for Zerocloud
Apache License 2.0
53 stars 14 forks source link

packaging: backport oslo.config 1.4 to ZeroMV PPA #159

Open larsbutler opened 9 years ago

larsbutler commented 9 years ago

There's a problem running ZeroCloud in DevStack using the contrib/vagrant scripts.

Our package archive has oslo.config 1.2.1. ZeroCloud requires python-swiftclient, and the package we have for python-swiftclient is pinned to this version of oslo.config. Basically, we need oslo.config>=1.4, otherwise we get crashes like this in DevStack:

vagrant@precise64:~/devstack$ /opt/stack/swift/bin/swift-proxy-server /etc/swift/proxy-server.conf -v
proxy-server: Pipeline is "catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk tempurl ratelimit crossdomain authtoken keystoneauth tempauth formpost staticweb container-quotas account-quotas slo dlo proxy-logging job-chain proxy-query proxy-server"
proxy-server: Starting keystone auth_token middleware
Traceback (most recent call last):
  File "/opt/stack/swift/bin/swift-proxy-server", line 23, in <module>
    sys.exit(run_wsgi(conf_file, 'proxy-server', **options))
  File "/opt/stack/swift/swift/common/wsgi.py", line 441, in run_wsgi
    loadapp(conf_path, global_conf=global_conf)
  File "/opt/stack/swift/swift/common/wsgi.py", line 361, in loadapp
    return ctx.create()
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
    return self.object_type.invoke(self)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 207, in invoke
    app = filter(app)
  File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 1649, in auth_filter
    return AuthProtocol(app, conf)
  File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 529, in __init__
    self._conf = _conf_values_type_convert(conf)
  File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 443, in _conf_values_type_convert
    opt_types = dict((o.dest, o.type) for o in _OPTS)
  File "/usr/local/lib/python2.7/dist-packages/keystonemiddleware/auth_token.py", line 443, in <genexpr>
    opt_types = dict((o.dest, o.type) for o in _OPTS)
AttributeError: 'StrOpt' object has no attribute 'type'

The other alternative would be to pin the DevStack versions for the vagrant dev environment to a compatible revision. This could be tricky.

pkit commented 9 years ago

We should be compatible with upstream python-swiftclient. Thus I don't quite understand why we carry it in our repo.

larsbutler commented 9 years ago

The issue is just with the devstack dev environment. For everything else, it's fine.

I'm working on a workaround, to avoid installing the incompatible version of oslo.config with devstack.

The reason why we have oslo in our PPA is so that we have a zpm package. The deps are: zpm -> python-swiftclient -> python-keystoneclient -> python-oslo.config.

larsbutler commented 9 years ago

So it's just kind of irritating to not be able to the use the latest packages in Trusty (Utopic is a different story) with DevStack.

larsbutler commented 9 years ago

Hmm, probably backporting the package is not the right solution.