)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"change_message_id":"f3bba49c6baebb1fb9553103df8024ba9477230c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9967a523_df44f059","updated":"2025-05-22 11:10:31.000000000","message":"okozachenko1203@gmail.com hello, please add test for this MR.","commit_id":"7bd576495a0d9c1132962794f1b5d2032d66c24c"}],"openstack_dashboard/api/placement.py":[{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"b248fcc669a0452041c782c5f5bd093796d5baae","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    base_uri \u003d base.url_for(request, \u0027placement\u0027)"},{"line_number":61,"context_line":"    if not base_uri.endswith(\u0027/\u0027):"},{"line_number":62,"context_line":"        base_uri +\u003d \u0027/\u0027"},{"line_number":63,"context_line":"    normalized_path \u003d path.lstrip(\u0027/\u0027)"},{"line_number":64,"context_line":"    uri \u003d urljoin(base_uri, normalized_path)"},{"line_number":65,"context_line":"    response, body \u003d adapter.get(uri)"},{"line_number":66,"context_line":"    return response.json()"}],"source_content_type":"text/x-python","patch_set":3,"id":"c730e875_3764a98a","line":63,"updated":"2024-07-25 08:12:10.000000000","message":"Could you explain what is the purpose of all this? It seems like adding and then removing the slashes is rather pointless?","commit_id":"7bd576495a0d9c1132962794f1b5d2032d66c24c"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"7a4f1320bad34b1e0ee8b0fafb41bd382c3d3d71","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    base_uri \u003d base.url_for(request, \u0027placement\u0027)"},{"line_number":61,"context_line":"    if not base_uri.endswith(\u0027/\u0027):"},{"line_number":62,"context_line":"        base_uri +\u003d \u0027/\u0027"},{"line_number":63,"context_line":"    normalized_path \u003d path.lstrip(\u0027/\u0027)"},{"line_number":64,"context_line":"    uri \u003d urljoin(base_uri, normalized_path)"},{"line_number":65,"context_line":"    response, body \u003d adapter.get(uri)"},{"line_number":66,"context_line":"    return response.json()"}],"source_content_type":"text/x-python","patch_set":3,"id":"2501aded_d639a75d","line":63,"in_reply_to":"16a62204_69b19fa7","updated":"2024-07-30 09:55:44.000000000","message":"If you always strip the slashes, there is no need to add them.\n\nIf you are not sure you covered all possible cases, a unit test would be helpful.","commit_id":"7bd576495a0d9c1132962794f1b5d2032d66c24c"},{"author":{"_account_id":31746,"name":"Oleksandr Kozachenko","email":"okozachenko1203@gmail.com","username":"okozachenko"},"change_message_id":"175dd5deaf6586757050db97f6be610d944440dd","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    base_uri \u003d base.url_for(request, \u0027placement\u0027)"},{"line_number":61,"context_line":"    if not base_uri.endswith(\u0027/\u0027):"},{"line_number":62,"context_line":"        base_uri +\u003d \u0027/\u0027"},{"line_number":63,"context_line":"    normalized_path \u003d path.lstrip(\u0027/\u0027)"},{"line_number":64,"context_line":"    uri \u003d urljoin(base_uri, normalized_path)"},{"line_number":65,"context_line":"    response, body \u003d adapter.get(uri)"},{"line_number":66,"context_line":"    return response.json()"}],"source_content_type":"text/x-python","patch_set":3,"id":"62e5cda1_fe1d3ee6","line":63,"in_reply_to":"2501aded_d639a75d","updated":"2024-08-27 15:01:25.000000000","message":"nah,just added a slash in base_uri and removed it from normalized_path. it is related to how urljoin works. f.i. urljoin(\"http://opendev.org/a\", \"b\") results http://opendev.org/b while urljoin(\"http://opendev.org/a/\", \"b\") results http://opendev.org/a/b","commit_id":"7bd576495a0d9c1132962794f1b5d2032d66c24c"},{"author":{"_account_id":8648,"name":"Radomir Dopieralski","email":"openstack@dopieralski.pl","username":"thesheep"},"change_message_id":"9c27bcd4cbb00bc5a44b14fa761a346ad9233cb0","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    base_uri \u003d base.url_for(request, \u0027placement\u0027)"},{"line_number":61,"context_line":"    if not base_uri.endswith(\u0027/\u0027):"},{"line_number":62,"context_line":"        base_uri +\u003d \u0027/\u0027"},{"line_number":63,"context_line":"    normalized_path \u003d path.lstrip(\u0027/\u0027)"},{"line_number":64,"context_line":"    uri \u003d urljoin(base_uri, normalized_path)"},{"line_number":65,"context_line":"    response, body \u003d adapter.get(uri)"},{"line_number":66,"context_line":"    return response.json()"}],"source_content_type":"text/x-python","patch_set":3,"id":"29e8947c_51d56a7e","line":63,"in_reply_to":"62e5cda1_fe1d3ee6","updated":"2024-08-27 15:52:14.000000000","message":"It would still be great to have a unit test for this.","commit_id":"7bd576495a0d9c1132962794f1b5d2032d66c24c"},{"author":{"_account_id":1004,"name":"Mohammed Naser","email":"mnaser@vexxhost.com","username":"mnaser"},"change_message_id":"ca26de52b579e1a812345eafed436ecbc4c85448","unresolved":true,"context_lines":[{"line_number":60,"context_line":"    base_uri \u003d base.url_for(request, \u0027placement\u0027)"},{"line_number":61,"context_line":"    if not base_uri.endswith(\u0027/\u0027):"},{"line_number":62,"context_line":"        base_uri +\u003d \u0027/\u0027"},{"line_number":63,"context_line":"    normalized_path \u003d path.lstrip(\u0027/\u0027)"},{"line_number":64,"context_line":"    uri \u003d urljoin(base_uri, normalized_path)"},{"line_number":65,"context_line":"    response, body \u003d adapter.get(uri)"},{"line_number":66,"context_line":"    return response.json()"}],"source_content_type":"text/x-python","patch_set":3,"id":"16a62204_69b19fa7","line":63,"in_reply_to":"c730e875_3764a98a","updated":"2024-07-26 13:42:21.000000000","message":"It\u0027s not, because if there is a situation where the service catalog has trailing slashes, it will not work 😊","commit_id":"7bd576495a0d9c1132962794f1b5d2032d66c24c"}]}
