nova-api throws TypeError exception while loading osapi_compute

Bug #1516808 reported by Kali
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Incomplete
Low
Unassigned

Bug Description

Using git revision: e6100f593413de77cc825cb9aeb5b86a739874e9

When I run nova-api without an arguments I get an exception. I used the api-paste.ini that was in the source tree.

2015-11-16 16:21:28.376 47780 DEBUG nova.wsgi [-] Loading app osapi_compute from /etc/nova/api-paste.ini load_app /usr/lib/python2.7/site-packages/nova/wsgi.py:543
2015-11-16 16:21:28.380 47780 CRITICAL nova [-] TypeError: factory() takes exactly 3 arguments (2 given); got ({'__file...va'}, oslo_config_project=...), wanted (cls, global_conf, allowed_origin, **local_conf)
2015-11-16 16:21:28.380 47780 ERROR nova Traceback (most recent call last):
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/bin/nova-api", line 10, in <module>
2015-11-16 16:21:28.380 47780 ERROR nova sys.exit(main())
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/nova/cmd/api.py", line 56, in main
2015-11-16 16:21:28.380 47780 ERROR nova server = service.WSGIService(api, use_ssl=should_use_ssl)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/nova/service.py", line 328, in __init__
2015-11-16 16:21:28.380 47780 ERROR nova self.app = self.loader.load_app(name)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/nova/wsgi.py", line 544, in load_app
2015-11-16 16:21:28.380 47780 ERROR nova return deploy.loadapp("config:%s" % self.config_path, name=name)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
2015-11-16 16:21:28.380 47780 ERROR nova return loadobj(APP, uri, name=name, **kw)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
2015-11-16 16:21:28.380 47780 ERROR nova return context.create()
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-11-16 16:21:28.380 47780 ERROR nova return self.object_type.invoke(self)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2015-11-16 16:21:28.380 47780 ERROR nova **context.local_conf)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 59, in fix_call
2015-11-16 16:21:28.380 47780 ERROR nova reraise(*exc_info)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/compat.py", line 22, in reraise
2015-11-16 16:21:28.380 47780 ERROR nova exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-11-16 16:21:28.380 47780 ERROR nova val = callable(*args, **kw)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/nova/api/openstack/urlmap.py", line 160, in urlmap_factory
2015-11-16 16:21:28.380 47780 ERROR nova app = loader.get_app(app_name, global_conf=global_conf)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2015-11-16 16:21:28.380 47780 ERROR nova name=name, global_conf=global_conf).create()
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-11-16 16:21:28.380 47780 ERROR nova return self.object_type.invoke(self)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2015-11-16 16:21:28.380 47780 ERROR nova **context.local_conf)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 59, in fix_call
2015-11-16 16:21:28.380 47780 ERROR nova reraise(*exc_info)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/compat.py", line 22, in reraise
2015-11-16 16:21:28.380 47780 ERROR nova exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-11-16 16:21:28.380 47780 ERROR nova val = callable(*args, **kw)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/nova/api/auth.py", line 79, in pipeline_factory_v21
2015-11-16 16:21:28.380 47780 ERROR nova return _load_pipeline(loader, local_conf[CONF.auth_strategy].split())
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/nova/api/auth.py", line 58, in _load_pipeline
2015-11-16 16:21:28.380 47780 ERROR nova filters = [loader.get_filter(n) for n in pipeline[:-1]]
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 354, in get_filter
2015-11-16 16:21:28.380 47780 ERROR nova name=name, global_conf=global_conf).create()
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 710, in create
2015-11-16 16:21:28.380 47780 ERROR nova return self.object_type.invoke(self)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/loadwsgi.py", line 161, in invoke
2015-11-16 16:21:28.380 47780 ERROR nova context.global_conf, **context.local_conf)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 59, in fix_call
2015-11-16 16:21:28.380 47780 ERROR nova reraise(*exc_info)
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/compat.py", line 22, in reraise
2015-11-16 16:21:28.380 47780 ERROR nova exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2015-11-16 16:21:28.380 47780 ERROR nova File "/usr/lib/python2.7/site-packages/paste/deploy/util.py", line 56, in fix_call
2015-11-16 16:21:28.380 47780 ERROR nova val = callable(*args, **kw)
2015-11-16 16:21:28.380 47780 ERROR nova TypeError: factory() takes exactly 3 arguments (2 given); got ({'__file...va'}, oslo_config_project=...), wanted (cls, global_conf, allowed_origin, **local_conf)
2015-11-16 16:21:28.380 47780 ERROR nova

----------------

Here is my nova.conf file:

[DEFAULT]
rpc_backend = rabbit
my_ip = 10.1.255.1
auth_strategy = keystone
enabled_apis=osapi_compute,metadata
verbose = True

network_api_class = nova.network.neutronv2.api.API
security_group_api = neutron
linuxnet_interface_driver = nova.network.linux_net.NeutronLinuxBridgeInterfaceDriver
firewall_driver = nova.virt.firewall.NoopFirewallDriver

[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = ******

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_plugin = password
project_domain_id = default
user_domain_id = default
project_name = service
username = nova
password = ******

[vnc]
vncserver_listen = 10.1.255.1
vncserver_proxyclient_address = 10.1.255.1

[glance]
host = controller

[oslo_concurrency]
lock_path = /var/lib/nova/tmp

[database]
connection = mysql://nova:******@controller/nova

Tags: api
tags: added: api
Revision history for this message
Alex Xu (xuhj) wrote :

@kali, can you share your '/etc/nova/api-paste.ini' file?

Changed in nova:
status: New → Incomplete
Revision history for this message
John Thompson (p-john-t) wrote :

This issue also exists for me at this installation step (on Controller machine):

http://docs.openstack.org/liberty/install-guide-rdo/nova-verify.html

I'm installing on CentOS 7.2.1511 (x86_64).

Earlier in the process, I used these commands to acquire the Nova software -

yum install openstack-nova-api openstack-nova-cert \
  openstack-nova-conductor openstack-nova-console \
  openstack-nova-novncproxy openstack-nova-scheduler \
  python-novaclient

The nova-api.log message:

2016-01-28 08:55:03.466 DEBUG nova.wsgi [^[[00;36m-] ^[[01;35mLoading app osapi_compute from /etc/nova/api-paste.ini^[[00m ^[[00;33mfrom (pid=25370) load_app /usr/lib/python2.7/site-packages/nova/wsgi.py:542^[[00m
2016-01-28 08:55:03.471 CRITICAL nova [^[[00;36m-] ^[[01;35mTypeError: factory() takes exactly 3 arguments (2 given); got ({'__file...va'}, oslo_config_project=...), wanted (cls, global_conf, allowed_origin, **local_conf)

The shell command line and response:

# nova service-list
ERROR (ConnectionRefused): Unable to establish connection to http://controller:8774/v2/

Related Nova processes running:

# ps -ef | grep nova
nova 1122 1 0 Jan27 ? 00:00:02 /usr/bin/python2 /usr/bin/nova-cert
nova 1124 1 0 Jan27 ? 00:08:47 /usr/bin/python2 /usr/bin/nova-conductor
nova 1133 1 0 Jan27 ? 00:00:19 /usr/bin/python2 /usr/bin/nova-novncproxy --web /usr/share/novnc/
nova 1134 1 0 Jan27 ? 00:00:42 /usr/bin/python2 /usr/bin/nova-scheduler
nova 1139 1 0 Jan27 ? 00:00:36 /usr/bin/python2 /usr/bin/nova-consoleauth
nova 2828 1124 0 Jan27 ? 00:00:32 /usr/bin/python2 /usr/bin/nova-conductor
nova 2829 1124 0 Jan27 ? 00:00:35 /usr/bin/python2 /usr/bin/nova-conductor
nova 26451 1 99 09:30 ? 00:00:01 /usr/bin/python2 /usr/bin/nova-api

Revision history for this message
Sean Dague (sdague) wrote :

We really can't move forward without a paste.ini, I think this has to do with CORS support, but the current bug does not have enough information to move forward.

Sean Dague (sdague)
Changed in nova:
importance: Undecided → Low
Revision history for this message
Michael (krotscheck) wrote :

This has been fixed as of the oslo_middleware 3.0.0 release, and is already in nova's requirements.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.