From 89ee8772015f512c085ed26b179ae1c19bb73b58 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 2 Feb 2026 18:46:57 +0900 Subject: [PATCH] Parse domain_name header The 'name' headers (eg. X-User-Name) and the 'id' headers (eg. X-User-Id) are handled almost consistently, but for only domain header we read only id. Add the parse marker to make sure that the X-Domain-Name header is loaded to RequestContext, so that both name and id are present for domain scoped access. Change-Id: I813e7db514854ffb030fe3e455e7d1ea26028253 Signed-off-by: Takashi Kajinami --- oslo_context/context.py | 1 + oslo_context/tests/test_context.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/oslo_context/context.py b/oslo_context/context.py index dfc594b..395d7b0 100644 --- a/oslo_context/context.py +++ b/oslo_context/context.py @@ -49,6 +49,7 @@ _ENVIRON_HEADERS: dict[str, list[str]] = { 'user_id': ['HTTP_X_USER_ID', 'HTTP_X_USER'], 'project_id': ['HTTP_X_PROJECT_ID', 'HTTP_X_TENANT_ID', 'HTTP_X_TENANT'], 'domain_id': ['HTTP_X_DOMAIN_ID'], + 'domain_name': ['HTTP_X_DOMAIN_NAME'], 'system_scope': ['HTTP_OPENSTACK_SYSTEM_SCOPE'], 'user_domain_id': ['HTTP_X_USER_DOMAIN_ID'], 'project_domain_id': ['HTTP_X_PROJECT_DOMAIN_ID'], diff --git a/oslo_context/tests/test_context.py b/oslo_context/tests/test_context.py index 098d176..db9f5e2 100644 --- a/oslo_context/tests/test_context.py +++ b/oslo_context/tests/test_context.py @@ -248,6 +248,7 @@ class ContextTest(test_base.BaseTestCase): 'HTTP_X_USER_ID': user_id, 'HTTP_X_PROJECT_ID': project_id, 'HTTP_X_DOMAIN_ID': domain_id, + 'HTTP_X_DOMAIN_NAME': domain_name, 'HTTP_X_USER_DOMAIN_ID': user_domain_id, 'HTTP_X_PROJECT_DOMAIN_ID': project_domain_id, 'HTTP_X_ROLES': ','.join(roles), @@ -275,8 +276,9 @@ class ContextTest(test_base.BaseTestCase): self.assertEqual(user_id, ctx.user_id) self.assertEqual(user_name, ctx.user_name) self.assertEqual(project_id, ctx.project_id) - self.assertEqual(domain_id, ctx.domain_id) self.assertEqual(project_name, ctx.project_name) + self.assertEqual(domain_id, ctx.domain_id) + self.assertEqual(domain_name, ctx.domain_name) self.assertEqual(user_domain_id, ctx.user_domain_id) self.assertEqual(user_domain_name, ctx.user_domain_name) self.assertEqual(project_domain_id, ctx.project_domain_id)