From 7c6714f186fb6f7859963ed6c046218430dedb70 Mon Sep 17 00:00:00 2001 From: Pavlo Shchelokovskyy Date: Tue, 4 Apr 2023 18:18:19 +0000 Subject: [PATCH] Set id for services in catalog currently enabling audit middleware results in every request producing warning in the log 'Invalid uuid: ' from pycadf, due to audit middleware not being able find a uuid to set as a service/target id because auth_token middleware no longer does not pass ids of the endpoints to the catalog it sets on request. This patch adds service id to the catalog being set by auth_token, and uses it in audit middleware too. This will hopefully not dramatically increase the size of the catalog. Change-Id: I8417bd29b129f4afdd8b43e4f74ea126ee8fae4f Closes-Bug: #2015334 --- keystonemiddleware/audit/_api.py | 2 +- keystonemiddleware/auth_token/_request.py | 1 + keystonemiddleware/tests/unit/audit/base.py | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keystonemiddleware/audit/_api.py b/keystonemiddleware/audit/_api.py index c89abaa2..80f04af4 100644 --- a/keystonemiddleware/audit/_api.py +++ b/keystonemiddleware/audit/_api.py @@ -196,7 +196,7 @@ class OpenStackAuditApi(object): endp['type'], taxonomy.UNKNOWN), name=endp['name'], - id=endp['endpoints'][0].get('id', endp['name']), + id=endp.get('id', endp['name']), admin_endp=endpoint.Endpoint( name='admin', url=endp['endpoints'][0].get('adminURL', taxonomy.UNKNOWN)), diff --git a/keystonemiddleware/auth_token/_request.py b/keystonemiddleware/auth_token/_request.py index cba28bfd..2090e7dd 100644 --- a/keystonemiddleware/auth_token/_request.py +++ b/keystonemiddleware/auth_token/_request.py @@ -24,6 +24,7 @@ def _normalize_catalog(catalog): service = {'type': v3_service['type']} try: service['name'] = v3_service['name'] + service['id'] = v3_service['id'] except KeyError: # nosec # v3 service doesn't have a name, move on. pass diff --git a/keystonemiddleware/tests/unit/audit/base.py b/keystonemiddleware/tests/unit/audit/base.py index d2faab17..ba0fcbc9 100644 --- a/keystonemiddleware/tests/unit/audit/base.py +++ b/keystonemiddleware/tests/unit/audit/base.py @@ -78,6 +78,7 @@ class BaseAuditMiddlewareTest(utils.MiddlewareTestCase): "internalURL": "http://internal_host:8774", "id": "resource_id"}], + "id": "resource_id", "type": "compute", "name": "nova"}]''', 'HTTP_X_USER_ID': 'user_id',