)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"1e66a6771d2f8da1927c7e5faa73cf1c039a85e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1d1641e5_f4783064","updated":"2023-04-05 10:26:02.000000000","message":"alternative is to do what was proposed loooong ago in https://review.opendev.org/c/openstack/keystonemiddleware/+/164826/ - which is do return individual endpoint IDs.\n\nHowever that\n\n- makes the catalog considerably larger compared to single uuid per service, and\n- audit middleware does not try to distinguish between those endpoint ids anyway, it tries to grab the id of the first endpoint in the list of endpoints, regardless if that request came thru the internal or public endpoint...","commit_id":"b527ead8de3501dc0b2e8e3620b29ed0d1fa8f8d"}],"keystonemiddleware/auth_token/_request.py":[{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"b3a946625f14473c5db6f88d2ed322304e4500a6","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        service \u003d {\u0027type\u0027: v3_service[\u0027type\u0027]}"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            service[\u0027name\u0027] \u003d v3_service[\u0027name\u0027]"},{"line_number":27,"context_line":"            service[\u0027id\u0027] \u003d v3_service[\u0027id\u0027]"},{"line_number":28,"context_line":"        except KeyError:  # nosec"},{"line_number":29,"context_line":"            # v3 service doesn\u0027t have a name, move on."},{"line_number":30,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"5b44a86a_af739b85","line":27,"updated":"2026-10-19 16:16:12.000000000","message":"I\u0027d personally like to see this in its own try/except block because that\u0027s cleaner.","commit_id":"27e143f5e4c5b752f55c9c93bc4fcbb204cfdda8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"a0c072c9723e87bcf02f441a7594a8e714056967","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        service \u003d {\u0027type\u0027: v3_service[\u0027type\u0027]}"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            service[\u0027name\u0027] \u003d v3_service[\u0027name\u0027]"},{"line_number":27,"context_line":"            service[\u0027id\u0027] \u003d v3_service[\u0027id\u0027]"},{"line_number":28,"context_line":"        except KeyError:  # nosec"},{"line_number":29,"context_line":"            # v3 service doesn\u0027t have a name, move on."},{"line_number":30,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"a563e0fa_7e378845","line":27,"in_reply_to":"3123b522_7e21dc9b","updated":"2026-10-19 17:37:53.000000000","message":"Hmm further digging revealed that name was added since api v3.3 .\n\nhttps://review.opendev.org/c/openstack/keystone/+/135808\n\nSo I\u0027d suggest keep \u0027id\u0027 out of KeyError block because id has been always returned since v3.0, or even remove the whole try-except block which eventually requires keystone api \u003e\u003d3.3. (however I\u0027m unsure if current keystonemiddeware defines minimum required api version, so the former may be better).","commit_id":"27e143f5e4c5b752f55c9c93bc4fcbb204cfdda8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"10e3d763b365e3b818874ba1e36e068fda2252db","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        service \u003d {\u0027type\u0027: v3_service[\u0027type\u0027]}"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            service[\u0027name\u0027] \u003d v3_service[\u0027name\u0027]"},{"line_number":27,"context_line":"            service[\u0027id\u0027] \u003d v3_service[\u0027id\u0027]"},{"line_number":28,"context_line":"        except KeyError:  # nosec"},{"line_number":29,"context_line":"            # v3 service doesn\u0027t have a name, move on."},{"line_number":30,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"c71342cb_e2d716c7","line":27,"in_reply_to":"4cd6743b_4ea3d652","updated":"2026-10-20 13:59:33.000000000","message":"Done (I think)","commit_id":"27e143f5e4c5b752f55c9c93bc4fcbb204cfdda8"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"00662c64112a67a325a7cac33297baf2ebcbc7c4","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        service \u003d {\u0027type\u0027: v3_service[\u0027type\u0027]}"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            service[\u0027name\u0027] \u003d v3_service[\u0027name\u0027]"},{"line_number":27,"context_line":"            service[\u0027id\u0027] \u003d v3_service[\u0027id\u0027]"},{"line_number":28,"context_line":"        except KeyError:  # nosec"},{"line_number":29,"context_line":"            # v3 service doesn\u0027t have a name, move on."},{"line_number":30,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"3123b522_7e21dc9b","line":27,"in_reply_to":"5b44a86a_af739b85","updated":"2026-10-19 17:26:09.000000000","message":"I think we DO need to have this in a separate logic because \u0027name\u0027 key is not returned in catalog in token api.\n\nSee https://docs.openstack.org/api-ref/identity/v3/?expanded\u003dlist-services-detail,token-authentication-with-scoped-authorization-detail#id42","commit_id":"27e143f5e4c5b752f55c9c93bc4fcbb204cfdda8"},{"author":{"_account_id":5890,"name":"Doug Goldstein","email":"cardoe@cardoe.com","username":"cardoe"},"change_message_id":"46865392af3e4926e0eb73241d9af986685b8d96","unresolved":true,"context_lines":[{"line_number":24,"context_line":"        service \u003d {\u0027type\u0027: v3_service[\u0027type\u0027]}"},{"line_number":25,"context_line":"        try:"},{"line_number":26,"context_line":"            service[\u0027name\u0027] \u003d v3_service[\u0027name\u0027]"},{"line_number":27,"context_line":"            service[\u0027id\u0027] \u003d v3_service[\u0027id\u0027]"},{"line_number":28,"context_line":"        except KeyError:  # nosec"},{"line_number":29,"context_line":"            # v3 service doesn\u0027t have a name, move on."},{"line_number":30,"context_line":"            pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"4cd6743b_4ea3d652","line":27,"in_reply_to":"a563e0fa_7e378845","updated":"2026-10-19 19:25:47.000000000","message":"good suggestion","commit_id":"27e143f5e4c5b752f55c9c93bc4fcbb204cfdda8"}]}
