diff --git a/hooks/keystone_utils.py b/hooks/keystone_utils.py index c2cd58dd..17d20c33 100644 --- a/hooks/keystone_utils.py +++ b/hooks/keystone_utils.py @@ -2159,6 +2159,9 @@ def add_service_to_keystone(relation_id=None, remote_unit=None): if get_api_version() > 2: service_domain = SERVICE_DOMAIN service_domain_id = manager.resolve_domain_id(SERVICE_DOMAIN) + + service_user_id = manager.resolve_user_id(service_username, + user_domain=service_domain) service_tenant = config('service-tenant') service_tenant_id = manager.resolve_tenant_id(service_tenant, domain=service_domain) @@ -2185,6 +2188,7 @@ def add_service_to_keystone(relation_id=None, remote_unit=None): "internal_port": config("service-port"), "auth_port": config("admin-port"), "service_username": service_username, + "service_user_id": service_user_id, "service_password": service_password, "service_domain": service_domain, "service_domain_id": service_domain_id, diff --git a/unit_tests/test_keystone_utils.py b/unit_tests/test_keystone_utils.py index 423269ee..1c900c38 100644 --- a/unit_tests/test_keystone_utils.py +++ b/unit_tests/test_keystone_utils.py @@ -465,7 +465,10 @@ class TestKeystoneUtils(CharmTestCase): mock_keystone = MagicMock() mock_keystone.resolve_tenant_id.return_value = 'tenant_id' mock_keystone.resolve_domain_id.return_value = service_domain_id - mock_keystone.resolve_user_id.return_value = admin_user_id + if test_api_version > 2: + mock_keystone.resolve_user_id.return_value = admin_user_id + else: + mock_keystone.resolve_user_id.return_value = None KeystoneManager.return_value = mock_keystone self.relation_get.return_value = {'service': 'keystone', @@ -506,6 +509,7 @@ class TestKeystoneUtils(CharmTestCase): 'internal_protocol': 'http', 'internal_port': 81, 'service_username': 'keystone', + 'service_user_id': admin_user_id, 'service_password': 'password', 'service_domain': service_domain, 'service_domain_id': service_domain_id,