diff --git a/etc/murano/murano-paste.ini b/etc/murano/murano-paste.ini index 3ad448eb..733af84f 100644 --- a/etc/murano/murano-paste.ini +++ b/etc/murano/murano-paste.ini @@ -1,5 +1,5 @@ [pipeline:murano] -pipeline = versionnegotiation faultwrap authtoken context rootapp +pipeline = request_id versionnegotiation faultwrap authtoken context rootapp [filter:context] paste.filter_factory = murano.api.middleware.context:ContextMiddleware.factory @@ -25,3 +25,7 @@ paste.filter_factory = murano.api.middleware.version_negotiation:VersionNegotiat [filter:faultwrap] paste.filter_factory = murano.api.middleware.fault:FaultWrapper.factory + +# Middleware to set x-openstack-request-id in http response header +[filter:request_id] +paste.filter_factory = oslo_middleware.request_id:RequestId.factory diff --git a/murano/api/middleware/context.py b/murano/api/middleware/context.py index e2a49ba1..25b487af 100644 --- a/murano/api/middleware/context.py +++ b/murano/api/middleware/context.py @@ -14,6 +14,7 @@ from oslo_config import cfg from oslo_log import log as logging +from oslo_middleware import request_id as oslo_request_id from murano.common.i18n import _ from murano.common import wsgi @@ -48,6 +49,7 @@ class ContextMiddleware(wsgi.Middleware): 'auth_token': req.headers.get('X-Auth-Token'), 'session': req.headers.get('X-Configuration-Session'), 'is_admin': CONF.admin_role in roles, + 'request_id': req.environ.get(oslo_request_id.ENV_REQUEST_ID), 'roles': roles } req.context = murano.context.RequestContext(**kwargs) diff --git a/requirements.txt b/requirements.txt index 50be4afd..b95fcd72 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,6 +35,7 @@ oslo.config>=2.1.0 # Apache-2.0 oslo.context>=0.2.0 # Apache-2.0 oslo.policy>=0.5.0 # Apache-2.0 oslo.messaging!=1.17.0,!=1.17.1,>=1.16.0 # Apache-2.0 +oslo.middleware>=2.4.0 # Apache-2.0 oslo.serialization>=1.4.0 # Apache-2.0 oslo.service>=0.1.0 # Apache-2.0 oslo.utils>=1.9.0 # Apache-2.0