← Back to team overview

openstack team mailing list archive

Re: nova-api start failed in multi_host compute nodes.

 

Your api-paste.ini is very out of date.  Here is the section from the current version:

############
# Metadata #
############
[composite:metadata]
use = egg:Paste#urlmap
/: metaversions
/latest: meta
/1.0: meta
/2007-01-19: meta
/2007-03-01: meta
/2007-08-29: meta
/2007-10-10: meta
/2007-12-15: meta
/2008-02-01: meta
/2008-09-01: meta
/2009-04-04: meta

[pipeline:metaversions]
pipeline = ec2faultwrap logrequest metaverapp

[pipeline:meta]
pipeline = ec2faultwrap logrequest metaapp

[app:metaverapp]
paste.app_factory = nova.api.metadata.handler:Versions.factory

[app:metaapp]
paste.app_factory = nova.api.metadata.handler:MetadataRequestHandler.factory

-----

Try updating to the paste included in etc/nova/api-paste.ini

FYI you can also run just the metadata server by using the binary:

nova-api-metadata

Instead of using nova-api and changing enabled_apis

Vish

On Apr 3, 2012, at 1:19 AM, 한승진 wrote:

> Hi all
> 
> I am trying to start nova-api in my compute node to use metadata.
> 
> I couldn't success yet. I found this log in nova-api log
> 
> 2012-04-03 15:18:43,908 CRITICAL nova [-] Could not load paste app 'metadata' from /etc/nova/api-paste.ini
>  36 (nova): TRACE: Traceback (most recent call last):
>  37 (nova): TRACE:   File "/usr/local/bin/nova-api", line 51, in <module>
>  38 (nova): TRACE:     servers.append(service.WSGIService(api))
>  39 (nova): TRACE:   File "/usr/local/lib/python2.7/dist-packages/nova/service.py", line 299, in __init__
>  40 (nova): TRACE:     self.app = self.loader.load_app(name)
>  41 (nova): TRACE:   File "/usr/local/lib/python2.7/dist-packages/nova/wsgi.py", line 414, in load_app
>  42 (nova): TRACE:     raise exception.PasteAppNotFound(name=name, path=self.config_path)
>  43 (nova): TRACE: PasteAppNotFound: Could not load paste app 'metadata' from /etc/nova/api-paste.ini
>  44 (nova): TRACE:
>  45 2012-04-03 15:20:43,786 ERROR nova.wsgi [-] No section 'metadata' (prefixed by 'app' or 'application' or 'composite' or 'composit' or 'pipeline' or 'filter-app') found in config /etc/nov    a/api-paste.ini
> 
> I added the flag in my nova.conf
> 
> --enbled_apis=metadata
> 
> Here is my api-paste.ini
> 
> #######
> # EC2 #
> #######
> 
> [composite:ec2]
> use = egg:Paste#urlmap
> /: ec2versions
> /services/Cloud: ec2cloud
> /services/Admin: ec2admin
> /latest: ec2metadata
> /2007-01-19: ec2metadata
> /2007-03-01: ec2metadata
> /2007-08-29: ec2metadata
> /2007-10-10: ec2metadata
> /2007-12-15: ec2metadata
> /2008-02-01: ec2metadata
> /2008-09-01: ec2metadata
> /2009-04-04: ec2metadata
> 
> [pipeline:ec2cloud]
> pipeline = logrequest ec2noauth cloudrequest authorizer ec2executor
> # NOTE(vish): use the following pipeline for deprecated auth
> #pipeline = logrequest authenticate cloudrequest authorizer ec2executor
> 
> [pipeline:ec2admin]
> pipeline = logrequest ec2noauth adminrequest authorizer ec2executor
> # NOTE(vish): use the following pipeline for deprecated auth
> #pipeline = logrequest authenticate adminrequest authorizer ec2executor
> 
> [pipeline:ec2metadata]
> pipeline = logrequest ec2md
> 
> [pipeline:ec2versions]
> pipeline = logrequest ec2ver
> 
> [filter:logrequest]
> paste.filter_factory = nova.api.ec2:RequestLogging.factory
> 
> [filter:ec2lockout]
> paste.filter_factory = nova.api.ec2:Lockout.factory
> 
> [filter:ec2noauth]
> paste.filter_factory = nova.api.ec2:NoAuth.factory
> 
> [filter:authenticate]
> paste.filter_factory = nova.api.ec2:Authenticate.factory
> 
> [filter:cloudrequest]
> controller = nova.api.ec2.cloud.CloudController
> paste.filter_factory = nova.api.ec2:Requestify.factory
> 
> [filter:adminrequest]
> controller = nova.api.ec2.admin.AdminController
> paste.filter_factory = nova.api.ec2:Requestify.factory
> 
> [filter:authorizer]
> paste.filter_factory = nova.api.ec2:Authorizer.factory
> 
> [app:ec2executor]
> paste.app_factory = nova.api.ec2:Executor.factory
> 
> [app:ec2ver]
> paste.app_factory = nova.api.ec2:Versions.factory
> 
> [app:ec2md]
> paste.app_factory = nova.api.ec2.metadatarequesthandler:MetadataRequestHandler.factory
> 
> #############
> # Openstack #
> #############
> 
> [composite:osapi]
> use = call:nova.api.openstack.urlmap:urlmap_factory
> /: osversions
> /v1.1: openstackapi11
> 
> [pipeline:openstackapi11]
> pipeline = faultwrap noauth ratelimit serialize extensions osapiapp11
> # NOTE(vish): use the following pipeline for deprecated auth
> # pipeline = faultwrap auth ratelimit serialize extensions osapiapp11
> 
> [filter:faultwrap]
> paste.filter_factory = nova.api.openstack:FaultWrapper.factory
> 
> [filter:auth]
> paste.filter_factory = nova.api.openstack.auth:AuthMiddleware.factory
> 
> [filter:noauth]
> paste.filter_factory = nova.api.openstack.auth:NoAuthMiddleware.factory
> 
> [filter:ratelimit]
> paste.filter_factory = nova.api.openstack.limits:RateLimitingMiddleware.factory
> 
> [filter:serialize]
> paste.filter_factory = nova.api.openstack.wsgi:LazySerializationMiddleware.factory
> 
> [filter:extensions]
> paste.filter_factory = nova.api.openstack.extensions:ExtensionMiddleware.factory
> 
> [app:osapiapp11]
> paste.app_factory = nova.api.openstack:APIRouter.factory
> 
> [pipeline:osversions]
> pipeline = faultwrap osversionapp
> 
> [app:osversionapp]
> paste.app_factory = nova.api.openstack.versions:Versions.factory
> 
> 
> How can I solve this error??
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : openstack@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp



References