)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"751c455c4b7586bd3a0747fbdb25a01fc48dfa53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1bdee996_ed90155a","updated":"2026-04-15 17:11:52.000000000","message":"I have some questions","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"b27a4a1d8d772b7947e68d4e561a23994faf236c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2419e3b0_80ecbf22","updated":"2026-05-25 17:39:02.000000000","message":"David, would you mind testing this on your side, make sure this is OK for your use case?","commit_id":"b9e5636707c97e6474decae67571e9f6f32514a9"}],"mistral/utils/openstack/keystone.py":[{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"751c455c4b7586bd3a0747fbdb25a01fc48dfa53","unresolved":true,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def client():"},{"line_number":26,"context_line":"    ctx \u003d context.ctx()"},{"line_number":27,"context_line":"    auth_url \u003d ctx.auth_uri or CONF.keystone_authtoken.auth_url"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    # NOTE(daiplg): Use admin_token plugin to authenticate with the"},{"line_number":30,"context_line":"    # existing token directly, avoiding POST /v3/auth/tokens which fails"}],"source_content_type":"text/x-python","patch_set":1,"id":"4ea4ca4d_28c4b51a","line":27,"updated":"2026-04-15 17:11:52.000000000","message":"The reason to switch to auth_url is because we now use the admin_token plugin?\n\nI am not even sure auth_url from keystone_authtoken is valid?","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3fd12252cca708d3fab4fea8c93daf16c5c046f2","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def client():"},{"line_number":26,"context_line":"    ctx \u003d context.ctx()"},{"line_number":27,"context_line":"    auth_url \u003d ctx.auth_uri or CONF.keystone_authtoken.auth_url"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    # NOTE(daiplg): Use admin_token plugin to authenticate with the"},{"line_number":30,"context_line":"    # existing token directly, avoiding POST /v3/auth/tokens which fails"}],"source_content_type":"text/x-python","patch_set":1,"id":"508c5a2a_3d23c766","line":27,"in_reply_to":"4ea4ca4d_28c4b51a","updated":"2026-05-25 13:09:56.000000000","message":"Done","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"751c455c4b7586bd3a0747fbdb25a01fc48dfa53","unresolved":true,"context_lines":[{"line_number":38,"context_line":"    # so it must include the /v3 version path."},{"line_number":39,"context_line":"    endpoint \u003d auth_url.strip(\u0027/\u0027)"},{"line_number":40,"context_line":"    if endpoint.endswith(\u0027/v2.0\u0027):"},{"line_number":41,"context_line":"        endpoint \u003d endpoint[:-len(\u0027/v2.0\u0027)] + \u0027/v3\u0027"},{"line_number":42,"context_line":"    elif not endpoint.endswith(\u0027/v3\u0027):"},{"line_number":43,"context_line":"        endpoint \u003d endpoint + \u0027/v3\u0027"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e601c3e5_8f771bf4","line":41,"updated":"2026-04-15 17:11:52.000000000","message":"I dont think we should maintain code with v2.0.","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3fd12252cca708d3fab4fea8c93daf16c5c046f2","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    # so it must include the /v3 version path."},{"line_number":39,"context_line":"    endpoint \u003d auth_url.strip(\u0027/\u0027)"},{"line_number":40,"context_line":"    if endpoint.endswith(\u0027/v2.0\u0027):"},{"line_number":41,"context_line":"        endpoint \u003d endpoint[:-len(\u0027/v2.0\u0027)] + \u0027/v3\u0027"},{"line_number":42,"context_line":"    elif not endpoint.endswith(\u0027/v3\u0027):"},{"line_number":43,"context_line":"        endpoint \u003d endpoint + \u0027/v3\u0027"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"dc313cce_650ae621","line":41,"in_reply_to":"e601c3e5_8f771bf4","updated":"2026-05-25 13:09:56.000000000","message":"Done","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"751c455c4b7586bd3a0747fbdb25a01fc48dfa53","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    cl \u003d ks_client.Client(session\u003dsession)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    cl.management_url \u003d auth_url"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    return cl"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d8f7d873_73bbff07","line":53,"updated":"2026-04-15 17:11:52.000000000","message":"if auth_url has /v3 (compared to www_authenticate_uri), this will also change the value of cl.management_url. Not sure this is intended?","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3fd12252cca708d3fab4fea8c93daf16c5c046f2","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    cl \u003d ks_client.Client(session\u003dsession)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    cl.management_url \u003d auth_url"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    return cl"},{"line_number":56,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c5a9f0d3_18fc4e84","line":53,"in_reply_to":"d8f7d873_73bbff07","updated":"2026-05-25 13:09:56.000000000","message":"Yes, this is not intended but it\u0027s dead code, will delete in a next patch","commit_id":"1105eb340e38250eda865e756d6c7573e3a69ab1"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3fd12252cca708d3fab4fea8c93daf16c5c046f2","unresolved":true,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def client():"},{"line_number":26,"context_line":"    ctx \u003d auth_ctx.ctx()"},{"line_number":27,"context_line":"    auth_url \u003d CONF.keystone_authtoken.auth_url"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    # NOTE(amorin) use admin_token plugin to avoid re-authenticating"},{"line_number":30,"context_line":"    # which is not always possible"}],"source_content_type":"text/x-python","patch_set":2,"id":"45eea80d_0fef44be","line":27,"updated":"2026-05-25 13:09:56.000000000","message":"Dropping the fallback and avoid using ctx.auth_uri because this does not make any sense, the trust needs to be created in the mistral keystone endpoint","commit_id":"ecdccbd55181d963ce6ff97281722de2cac851c9"},{"author":{"_account_id":11583,"name":"Arnaud Morin","email":"arnaud.morin@gmail.com","username":"arnaudmorin"},"change_message_id":"3fd12252cca708d3fab4fea8c93daf16c5c046f2","unresolved":true,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"def client():"},{"line_number":26,"context_line":"    ctx \u003d auth_ctx.ctx()"},{"line_number":27,"context_line":"    auth_url \u003d CONF.keystone_authtoken.auth_url"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    # NOTE(amorin) use admin_token plugin to avoid re-authenticating"},{"line_number":30,"context_line":"    # which is not always possible"}],"source_content_type":"text/x-python","patch_set":2,"id":"dd33cf34_98d77294","line":27,"updated":"2026-05-25 13:09:56.000000000","message":"auth_url seems a good idea.\nBased on my tests, it\u0027s always available in the keystone_auhtoken even if it\u0027s lazy loaded.","commit_id":"ecdccbd55181d963ce6ff97281722de2cac851c9"}]}
