summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2016-11-17 10:05:31 +0000
committerGerrit Code Review <review@openstack.org>2016-11-17 10:05:31 +0000
commit580654cba0ca59559c70f55922bc325b3687d808 (patch)
treeccf14ff330f66aee22189f45b7867b519f7c8a01
parent891910a1fc0f95c37fb19624dcbc253c22b72bb4 (diff)
parente8a5448b0767026925b5ad396f6de1be79ac2325 (diff)
downloadswift-580654cba0ca59559c70f55922bc325b3687d808.tar.gz
Merge "Add X-Openstack-Request-Id to Access-Control-Expose-Headers"
-rw-r--r--api-ref/source/parameters.yaml3
-rw-r--r--doc/source/cors.rst3
-rw-r--r--swift/proxy/controllers/base.py2
-rw-r--r--test/unit/proxy/test_server.py26
4 files changed, 18 insertions, 16 deletions
diff --git a/api-ref/source/parameters.yaml b/api-ref/source/parameters.yaml
index 97ee99036..8140c9fff 100644
--- a/api-ref/source/parameters.yaml
+++ b/api-ref/source/parameters.yaml
@@ -398,7 +398,8 @@ X-Container-Meta-Access-Control-Expose-Headers:
- All “simple response headers” as listed on
`http://www.w3.org/TR/cors/#simple-response-header
<http://www.w3.org/TR/cors/#simple-response-header>`_.
- - The headers ``etag``, ``x-timestamp``, ``x-trans-id``.
+ - The headers ``etag``, ``x-timestamp``, ``x-trans-id``,
+ ``x-openstack-request-id``.
- All metadata headers (``X-Container-Meta-*`` for containers and
``X-Object-Meta-*`` for objects).
- headers listed in ``X-Container-Meta-Access-Control-Expose-Headers``.
diff --git a/doc/source/cors.rst b/doc/source/cors.rst
index 3dc07d3e3..e8b07819d 100644
--- a/doc/source/cors.rst
+++ b/doc/source/cors.rst
@@ -43,7 +43,8 @@ returns the following values for this header,
* "simple response headers" as listed on
http://www.w3.org/TR/cors/#simple-response-header
-* the headers ``etag``, ``x-timestamp``, ``x-trans-id``
+* the headers ``etag``, ``x-timestamp``, ``x-trans-id``,
+ ``x-openstack-request-id``
* all metadata headers (``X-Container-Meta-*`` for containers and
``X-Object-Meta-*`` for objects)
* headers listed in ``X-Container-Meta-Access-Control-Expose-Headers``
diff --git a/swift/proxy/controllers/base.py b/swift/proxy/controllers/base.py
index c5e8ebd08..be98bc15d 100644
--- a/swift/proxy/controllers/base.py
+++ b/swift/proxy/controllers/base.py
@@ -239,7 +239,7 @@ def cors_validation(func):
expose_headers = set([
'cache-control', 'content-language', 'content-type',
'expires', 'last-modified', 'pragma', 'etag',
- 'x-timestamp', 'x-trans-id'])
+ 'x-timestamp', 'x-trans-id', 'x-openstack-request-id'])
for header in resp.headers:
if header.startswith('X-Container-Meta') or \
header.startswith('X-Object-Meta'):
diff --git a/test/unit/proxy/test_server.py b/test/unit/proxy/test_server.py
index 290086205..393d007da 100644
--- a/test/unit/proxy/test_server.py
+++ b/test/unit/proxy/test_server.py
@@ -5221,11 +5221,11 @@ class TestObjectController(unittest.TestCase):
exposed = set(
h.strip() for h in
resp.headers['access-control-expose-headers'].split(','))
- expected_exposed = set(['cache-control', 'content-language',
- 'content-type', 'expires', 'last-modified',
- 'pragma', 'etag', 'x-timestamp',
- 'x-trans-id', 'x-object-meta-color',
- 'x-object-meta-color-ex'])
+ expected_exposed = set([
+ 'cache-control', 'content-language', 'content-type', 'expires',
+ 'last-modified', 'pragma', 'etag', 'x-timestamp', 'x-trans-id',
+ 'x-openstack-request-id', 'x-object-meta-color',
+ 'x-object-meta-color-ex'])
self.assertEqual(expected_exposed, exposed)
# test allow_origin *
@@ -5272,10 +5272,10 @@ class TestObjectController(unittest.TestCase):
exposed = set(
h.strip() for h in
resp.headers['access-control-expose-headers'].split(','))
- expected_exposed = set(['cache-control', 'content-language',
- 'content-type', 'expires', 'last-modified',
- 'pragma', 'etag', 'x-timestamp',
- 'x-trans-id', 'x-object-meta-color'])
+ expected_exposed = set([
+ 'cache-control', 'content-language', 'content-type', 'expires',
+ 'last-modified', 'pragma', 'etag', 'x-timestamp', 'x-trans-id',
+ 'x-openstack-request-id', 'x-object-meta-color'])
self.assertEqual(expected_exposed, exposed)
# test allow_origin empty
@@ -7534,10 +7534,10 @@ class TestContainerController(unittest.TestCase):
exposed = set(
h.strip() for h in
resp.headers['access-control-expose-headers'].split(','))
- expected_exposed = set(['cache-control', 'content-language',
- 'content-type', 'expires', 'last-modified',
- 'pragma', 'etag', 'x-timestamp',
- 'x-trans-id', 'x-container-meta-color'])
+ expected_exposed = set([
+ 'cache-control', 'content-language', 'content-type', 'expires',
+ 'last-modified', 'pragma', 'etag', 'x-timestamp', 'x-trans-id',
+ 'x-openstack-request-id', 'x-container-meta-color'])
self.assertEqual(expected_exposed, exposed)
def _gather_x_account_headers(self, controller_call, req, *connect_args,