From 4669229f4613c9bed25c06d1ca36def51c6b5d4e Mon Sep 17 00:00:00 2001 From: Rodrigo Barbieri Date: Fri, 19 Apr 2024 13:01:04 -0300 Subject: [PATCH] Set service_user_id from keystone relation (#894) This is necessary so we can avoid ambiguities (by using the id vs name) when we want to use the service user. (cherry picked from commit f7e65d27b1f93fe00bca13ed3ce741dce3eb9101) (cherry picked from commit 2320efdf793de0cea35fcedd531096e051e970a2) (cherry picked from commit 7e325def4558c8aea05a215062bd3b8dda7c518f) (cherry picked from commit 57331d41f3cb1fdc8edabd8813e39c009d5229a2) Co-authored-by: Erlon R. Cruz --- charmhelpers/contrib/openstack/context.py | 3 ++- tests/contrib/openstack/test_os_contexts.py | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/charmhelpers/contrib/openstack/context.py b/charmhelpers/contrib/openstack/context.py index 5b8b284a5..39619858a 100644 --- a/charmhelpers/contrib/openstack/context.py +++ b/charmhelpers/contrib/openstack/context.py @@ -477,7 +477,7 @@ def __call__(self): 'service_project_id': rdata.get('service_tenant_id'), 'service_domain_id': rdata.get('service_domain_id')}) - # we keep all veriables in ctxt for compatibility and + # we keep all variables in ctxt for compatibility and # add nested dictionary for keystone_authtoken generic # templating if keystonemiddleware_os_release: @@ -489,6 +489,7 @@ def __call__(self): # NOTE(jamespage) this is required for >= icehouse # so a missing value just indicates keystone needs # upgrading + ctxt['admin_user_id'] = rdata.get('service_user_id') ctxt['admin_tenant_id'] = rdata.get('service_tenant_id') ctxt['admin_domain_id'] = rdata.get('service_domain_id') return ctxt diff --git a/tests/contrib/openstack/test_os_contexts.py b/tests/contrib/openstack/test_os_contexts.py index 97b0a6f61..dd10ece16 100644 --- a/tests/contrib/openstack/test_os_contexts.py +++ b/tests/contrib/openstack/test_os_contexts.py @@ -1032,6 +1032,7 @@ def test_identity_service_context_with_data(self, *args): 'admin_tenant_id': None, 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'http', @@ -1089,6 +1090,7 @@ def test_identity_service_context_with_altname(self, *args): 'admin_tenant_id': None, 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'http', @@ -1121,6 +1123,7 @@ def test_identity_service_context_with_cache(self, *args): 'admin_tenant_id': None, 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'http', @@ -1152,6 +1155,7 @@ def test_identity_service_context_with_data_http(self, *args): 'admin_tenant_id': '123456', 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'http', @@ -1182,6 +1186,7 @@ def test_identity_service_context_with_data_https(self, *args): 'admin_tenant_id': None, 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'https', @@ -1216,6 +1221,7 @@ def test_identity_service_context_with_data_versioned(self, *args): 'service_project_id': 'svc-proj-id', 'service_domain_id': 'svc-dom-id', 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'https', @@ -1247,6 +1253,7 @@ def test_identity_service_context_with_admin_role(self, *args): 'admin_tenant_id': None, 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': 'keystone-host.local', 'auth_port': '35357', 'auth_protocol': 'https', @@ -1303,6 +1310,7 @@ def test_identity_service_context_with_ipv6(self, format_ipv6_addr, *args): 'admin_tenant_id': '123456', 'admin_domain_id': None, 'admin_user': 'adam', + 'admin_user_id': None, 'auth_host': '[2001:db8:1::1]', 'auth_port': '35357', 'auth_protocol': 'http',