[Openstack] nova, keystone from packages on ubuntu and nova-api.ini

Kevin Jackson kevin at linuxservices.co.uk
Tue Jan 10 15:19:43 UTC 2012


Hi all,
I have a set up with the following

Ubuntu 11.10
oneiric-proposed repo enabled
ppa:keystone-core/trunk

ii  nova-api
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute - API
frontend
ii  nova-common
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute -
common files
ii  nova-compute
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute -
compute node
ii  nova-compute-kvm
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute -
compute node (KVM)
ii  nova-network
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute -
Network manager
ii  nova-objectstore
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute -
object store
ii  nova-scheduler
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute -
virtual machine scheduler
ii  python-nova
2012.1~e3~20120110.11992-0ubuntu0ppa1~oneiric1 OpenStack Compute
Python libraries
ii  python-novaclient
2012.1~e3~20120110.451-0ubuntu0ppa1~oneiric1   client library for
OpenStack Compute API
ii  keystone
2012.1~e3~20120109.1511-0ubuntu0ppa1~oneiric1  Proposed OpenStack
identity service - Daemons
ii  python-keystone
2012.1~e3~20120109.1511-0ubuntu0ppa1~oneiric1  Proposed OpenStack
identity service - Python library

I also have swift running on another host, working great with Keystone.

The problem I have is nova from the packages (versions above).  I'd
like to know what /etc/nova/api-paste.ini file I should be using.

I've tried various variations of this paste file and I can get nova to
work, but without keystone, or if I try to get keystone working I get
an error.

The file that I've been told should work with keystone and nova is:
https://github.com/openstack/keystone/blob/master/doc/source/nova-api-paste.rst

but this causes my nova-api to error


2012-01-10 15:13:20,856 CRITICAL nova [-] No module named metadatarequesthandler
(nova): TRACE: Traceback (most recent call last):
(nova): TRACE:   File "/usr/bin/nova-api", line 51, in <module>
(nova): TRACE:     servers.append(service.WSGIService(api))
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/nova/service.py", line 307, in
__init__
(nova): TRACE:     self.app = self.loader.load_app(name)
(nova): TRACE:   File "/usr/lib/python2.7/dist-packages/nova/wsgi.py",
line 385, in load_app
(nova): TRACE:     return deploy.loadapp("config:%s" %
self.config_path, name=name)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247,
in loadapp
(nova): TRACE:     return loadobj(APP, uri, name=name, **kw)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272,
in loadobj
(nova): TRACE:     return context.create()
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710,
in create
(nova): TRACE:     return self.object_type.invoke(self)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 144,
in invoke
(nova): TRACE:     **context.local_conf)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 56, in
fix_call
(nova): TRACE:     val = callable(*args, **kw)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 25, in
urlmap_factory
(nova): TRACE:     app = loader.get_app(app_name, global_conf=global_conf)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 350,
in get_app
(nova): TRACE:     name=name, global_conf=global_conf).create()
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 362,
in app_context
(nova): TRACE:     APP, name=name, global_conf=global_conf)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 450,
in get_context
(nova): TRACE:     global_additions=global_additions)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 559,
in _pipeline_app_context
(nova): TRACE:     APP, pipeline[-1], global_conf)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 458,
in get_context
(nova): TRACE:     section)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 517,
in _context_from_explicit
(nova): TRACE:     value = import_string(found_expr)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 22,
in import_string
(nova): TRACE:     return pkg_resources.EntryPoint.parse("x=" + s).load(False)
(nova): TRACE:   File
"/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1955, in
load
(nova): TRACE:     entry = __import__(self.module_name,
globals(),globals(), ['__name__'])
(nova): TRACE: ImportError: No module named metadatarequesthandler
(nova): TRACE:

which is due to this line


[app:ec2md]
paste.app_factory =
nova.api.ec2.metadatarequesthandler:MetadataRequestHandler.factory

And viewing the python for this does in face come up empty for that
module (I'm no python programmer but presume this refers to
/usr/share/pyshared/nova/api/ec2/__init__.py where there are other
modules, but nothing referring to this?)

Has anyone seen this, aware of this - and best course of action to get
a resolution?  To me this seems a relatively logical approach to
installing Nova and Keystone and although people have reported success
with installation from source I'd prefer if there were plans or at
least acknowledgement that this is being addressed.

Cheers,

Kev




More information about the Openstack mailing list