)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"61d1c70c2a9dda9a97c6cce123ffe010b90e134f","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Pranali Deore \u003cpdeore@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-01-23 11:00:37 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix cinder location url compatible with multistore"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding location to an image, cinder sends location url as"},{"line_number":10,"context_line":"`cinder://volume_id` for single as well as multistore which is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3ecb01b8_96362194","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":50},"updated":"2024-01-24 05:21:10.000000000","message":"It\u0027s not a issue, it is the only way to be compatible with cinder\n\nI think title should be;\n\nMake location URL compatible with cinder backend.","commit_id":"86eb10c4396b7b280f5ba7f400fecd36575e6c5a"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"ce99ae2e2cf8b64563d57ae9d5d49ae7bb7299b7","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Pranali Deore \u003cpdeore@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-01-23 11:00:37 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix cinder location url compatible with multistore"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding location to an image, cinder sends location url as"},{"line_number":10,"context_line":"`cinder://volume_id` for single as well as multistore which is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"cd7d81ad_5c321101","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":50},"in_reply_to":"3ecb01b8_96362194","updated":"2024-01-24 10:54:45.000000000","message":"Done","commit_id":"86eb10c4396b7b280f5ba7f400fecd36575e6c5a"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2ea8ce7257768fd3a9b71e8fe7022d794f0b9a03","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Pranali Deore \u003cpdeore@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-02-01 10:17:18 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make location URL compatible with cinder backend."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding location to an image, cinder sends location url as"},{"line_number":10,"context_line":"`cinder://volume_id` for single as well as multistore which is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"96bc69dc_f794b8ae","line":7,"range":{"start_line":7,"start_character":48,"end_line":7,"end_character":49},"updated":"2024-02-21 13:47:54.000000000","message":"remove this","commit_id":"e51ac6a4df33ad98d1fea47ef8ef5002c613d533"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Pranali Deore \u003cpdeore@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-02-01 10:17:18 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make location URL compatible with cinder backend."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"While adding location to an image, cinder sends location url as"},{"line_number":10,"context_line":"`cinder://volume_id` for single as well as multistore which is"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"52922c08_8867f17d","line":7,"range":{"start_line":7,"start_character":48,"end_line":7,"end_character":49},"in_reply_to":"96bc69dc_f794b8ae","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"e51ac6a4df33ad98d1fea47ef8ef5002c613d533"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6e5df914c40483880d6782ddebd2c8820fbf778e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9d59aaf0_b40948b9","updated":"2024-01-23 14:46:11.000000000","message":"recheck timed out in scenario tests","commit_id":"86eb10c4396b7b280f5ba7f400fecd36575e6c5a"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"bef7c69c0d187153c24e19e728a1b8d3f2926ab6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7e3adfd4_39d0a0c0","updated":"2024-02-12 21:40:43.000000000","message":"Just a suggestion.","commit_id":"431836b5650982c57c034aa370c11d302e23517f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ffcacd1c3b0a0069d7415ccc04c922926f72107a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a3f0a0d1_77663d84","updated":"2024-02-21 11:06:38.000000000","message":"the changes breaks the old location API\n\ncinder.exception.Invalid: HTTP 400 Bad Request: Invalid location","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2ea8ce7257768fd3a9b71e8fe7022d794f0b9a03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c2d3ba1b_7c95198b","in_reply_to":"9865aff8_e632c66c","updated":"2024-02-21 13:47:54.000000000","message":"Let\u0027s move this patch out to fix above bug and then rebase location API patches on top of it.","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"22ee0a7de398282b6b5d00d63a7f3ab119b26153","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9865aff8_e632c66c","in_reply_to":"a3f0a0d1_77663d84","updated":"2024-02-21 13:32:37.000000000","message":"this change is not breaking it, it\u0027s already broken\nreported a bug here: https://bugs.launchpad.net/glance/+bug/2054575\n\nBut this patch can fix it with minimal changes.","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7930d4bb69f8abb8097c7ca99112a5f29a7ca8f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"73754368_79826ef7","updated":"2024-02-22 09:23:01.000000000","message":"I think this requires a releasenote since we are fixing something that is expected to work (upload volume with old location API)\nAlso I expected a UT change with this but guess we have no coverage for old location APIs?","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f752e519_6662c426","updated":"2024-02-22 07:42:46.000000000","message":"Thanks for the review !","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"77a9ccb69accc2a0374642ae0ebf11b1f50a4603","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1253036f_9679cc7c","in_reply_to":"73754368_79826ef7","updated":"2024-02-22 10:25:55.000000000","message":"Ack, I will add the releasenote.\nUT coverage is already there for old location API.","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"882d3499fe8d478b58746b50def4225fa6693638","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"be937a82_720d4af3","updated":"2024-02-22 16:10:40.000000000","message":"sorry for holding this but can we rephrase the releasenote and remove the code specific references?\nI\u0027ve provided an example inline","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"a1a60b5ec37c3d9dd4748b4a96a5d0212d7a7777","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"51bde273_d9fb702d","updated":"2024-02-26 11:07:29.000000000","message":"the cinder upload test is still failing[1]\n\nglance logs warning:\nNot able to update location url \u0027cinder://404bf696-aef2-41b7-a4a1-0e319a921c3c\u0027 of legacy image due to unknown issues.\n\n[1] https://review.opendev.org/c/openstack/cinder/+/909847/comments/58e7f86c_0b58213a","commit_id":"983bde9f1f963e31744d9682893a32adb57e3d98"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"0765c3144f4e0b07e5f431647f0b58548c410246","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"d6164bab_c1f4562b","updated":"2024-06-17 18:52:53.000000000","message":"So I\u0027m fine with this, but I\u0027m not sure I understand why we dropped the release note. Also, if there is a bug associated to this, we might want to mention it in the commit message.","commit_id":"c0e96abf3fb195f666431123f1ef37e12b950834"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"afdee52b647c0b15664a77c0df7ead3879d1368e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"3418f268_5880a378","in_reply_to":"d6164bab_c1f4562b","updated":"2024-06-20 10:59:01.000000000","message":"Releasenote is here[1] which is on top of this patch.\nAdding bug reference.\n\n[1]: https://review.opendev.org/c/openstack/glance/+/922316","commit_id":"c0e96abf3fb195f666431123f1ef37e12b950834"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"4e8e85640354146ed3adbf49aa72d84c41250ea8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"4fd80267_74f8955c","updated":"2024-06-25 13:14:03.000000000","message":"OK, thanks for the answer!","commit_id":"61a63881111ec0d0f7f0d2ccfa68df153878abac"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"afdee52b647c0b15664a77c0df7ead3879d1368e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"b66cb65a_d596d839","updated":"2024-06-20 10:59:01.000000000","message":"Thanks Cyril for the review!","commit_id":"61a63881111ec0d0f7f0d2ccfa68df153878abac"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"31a55a90d4d7419d273c3743e5b53d33b194d764","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"303d1e75_a6c74115","updated":"2024-06-25 19:20:14.000000000","message":"recheck tempest-integrated-storage-import timed out","commit_id":"61a63881111ec0d0f7f0d2ccfa68df153878abac"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"f2335553e146a25fb48b2e78a1ede8848a14ed6e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"4572f507_46dc0bfd","updated":"2024-06-26 06:14:48.000000000","message":"recheck tempest-integrated-storage-import-standalone timed out","commit_id":"61a63881111ec0d0f7f0d2ccfa68df153878abac"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"55839dedd55c2f224409e49f0d9dca427443b9e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"d206a968_201f5466","updated":"2024-06-23 16:06:07.000000000","message":"recheck unrelated failures in nova-ceph-multistore","commit_id":"61a63881111ec0d0f7f0d2ccfa68df153878abac"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bc94bad82dd32a02f4c97ff41a03034f43105b8c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"995cd9b5_8a364147","updated":"2024-07-01 18:15:21.000000000","message":"not able to reach any conclusion of why test execution times have increased[1], let\u0027s try again with fresh logs\n\n[1] https://review.opendev.org/c/openstack/glance/+/922316/comments/b5dbda58_d5da2d6c","commit_id":"1c523cf94e89470c008163a31385a6cff3658c93"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"85b9099a43bb5fe04c8b0b48749e1527c70d386c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"677779f3_42ff2e99","updated":"2024-07-01 18:15:26.000000000","message":"recheck","commit_id":"1c523cf94e89470c008163a31385a6cff3658c93"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"0009566769e3feb1e2fd8f4f0070b3b9671a5631","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"ab280a73_0eef22cb","updated":"2024-07-02 07:03:22.000000000","message":"recheck timed out again","commit_id":"1c523cf94e89470c008163a31385a6cff3658c93"}],"glance/api/v2/images.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ffcacd1c3b0a0069d7415ccc04c922926f72107a","unresolved":true,"context_lines":[{"line_number":673,"context_line":"        json_schema_version \u003d change.get(\u0027json_schema_version\u0027, 10)"},{"line_number":674,"context_line":"        if path_root \u003d\u003d \u0027locations\u0027:"},{"line_number":675,"context_line":"            api_pol.update_locations()"},{"line_number":676,"context_line":"            self._do_add_locations(image, path[1], value)"},{"line_number":677,"context_line":"        else:"},{"line_number":678,"context_line":"            api_pol.update_property(path_root, value)"},{"line_number":679,"context_line":"            if ((hasattr(image, path_root) or"}],"source_content_type":"text/x-python","patch_set":6,"id":"4b25d690_ae804cd8","line":676,"updated":"2024-02-21 11:06:38.000000000","message":"need to pass req.context here","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":673,"context_line":"        json_schema_version \u003d change.get(\u0027json_schema_version\u0027, 10)"},{"line_number":674,"context_line":"        if path_root \u003d\u003d \u0027locations\u0027:"},{"line_number":675,"context_line":"            api_pol.update_locations()"},{"line_number":676,"context_line":"            self._do_add_locations(image, path[1], value)"},{"line_number":677,"context_line":"        else:"},{"line_number":678,"context_line":"            api_pol.update_property(path_root, value)"},{"line_number":679,"context_line":"            if ((hasattr(image, path_root) or"}],"source_content_type":"text/x-python","patch_set":6,"id":"d1eabaed_ede49cad","line":676,"in_reply_to":"4b25d690_ae804cd8","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ffcacd1c3b0a0069d7415ccc04c922926f72107a","unresolved":true,"context_lines":[{"line_number":1058,"context_line":"        updated_location \u003d value"},{"line_number":1059,"context_line":"        if CONF.enabled_backends:"},{"line_number":1060,"context_line":"            updated_location \u003d store_utils.get_updated_store_location("},{"line_number":1061,"context_line":"                [value])[0]"},{"line_number":1062,"context_line":""},{"line_number":1063,"context_line":"        pos \u003d self._get_locations_op_pos(path_pos,"},{"line_number":1064,"context_line":"                                         len(image.locations), True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"651c4758_926a73fa","line":1061,"range":{"start_line":1061,"start_character":16,"end_line":1061,"end_character":23},"updated":"2024-02-21 11:06:38.000000000","message":"need to also pass context here","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":1058,"context_line":"        updated_location \u003d value"},{"line_number":1059,"context_line":"        if CONF.enabled_backends:"},{"line_number":1060,"context_line":"            updated_location \u003d store_utils.get_updated_store_location("},{"line_number":1061,"context_line":"                [value])[0]"},{"line_number":1062,"context_line":""},{"line_number":1063,"context_line":"        pos \u003d self._get_locations_op_pos(path_pos,"},{"line_number":1064,"context_line":"                                         len(image.locations), True)"}],"source_content_type":"text/x-python","patch_set":6,"id":"737b05f8_f2f1cdaa","line":1061,"range":{"start_line":1061,"start_character":16,"end_line":1061,"end_character":23},"in_reply_to":"651c4758_926a73fa","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7930d4bb69f8abb8097c7ca99112a5f29a7ca8f4","unresolved":true,"context_lines":[{"line_number":673,"context_line":"        json_schema_version \u003d change.get(\u0027json_schema_version\u0027, 10)"},{"line_number":674,"context_line":"        if path_root \u003d\u003d \u0027locations\u0027:"},{"line_number":675,"context_line":"            api_pol.update_locations()"},{"line_number":676,"context_line":"            self._do_add_locations(image, path[1], value, req.context)"},{"line_number":677,"context_line":"        else:"},{"line_number":678,"context_line":"            api_pol.update_property(path_root, value)"},{"line_number":679,"context_line":"            if ((hasattr(image, path_root) or"}],"source_content_type":"text/x-python","patch_set":7,"id":"ce73a20b_10019cc9","line":676,"range":{"start_line":676,"start_character":17,"end_line":676,"end_character":34},"updated":"2024-02-22 09:23:01.000000000","message":"I expected a UT failure with this change ...\nstrange that this isn\u0027t mocked/asserted anywhere, do we have UT coverage for old location APIs?","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"9baa241321209454a9340cdb2328c1368a36e892","unresolved":false,"context_lines":[{"line_number":673,"context_line":"        json_schema_version \u003d change.get(\u0027json_schema_version\u0027, 10)"},{"line_number":674,"context_line":"        if path_root \u003d\u003d \u0027locations\u0027:"},{"line_number":675,"context_line":"            api_pol.update_locations()"},{"line_number":676,"context_line":"            self._do_add_locations(image, path[1], value, req.context)"},{"line_number":677,"context_line":"        else:"},{"line_number":678,"context_line":"            api_pol.update_property(path_root, value)"},{"line_number":679,"context_line":"            if ((hasattr(image, path_root) or"}],"source_content_type":"text/x-python","patch_set":7,"id":"c8bca857_95f8a4ef","line":676,"range":{"start_line":676,"start_character":17,"end_line":676,"end_character":34},"in_reply_to":"137c0215_f288a04f","updated":"2024-02-22 16:11:41.000000000","message":"Ah, i see, we are calling the main method without mocks\nmakes sense since this is an internal method\nbut it makes me wonder if glance would benefit from a code coverage job to check these instances","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"77a9ccb69accc2a0374642ae0ebf11b1f50a4603","unresolved":true,"context_lines":[{"line_number":673,"context_line":"        json_schema_version \u003d change.get(\u0027json_schema_version\u0027, 10)"},{"line_number":674,"context_line":"        if path_root \u003d\u003d \u0027locations\u0027:"},{"line_number":675,"context_line":"            api_pol.update_locations()"},{"line_number":676,"context_line":"            self._do_add_locations(image, path[1], value, req.context)"},{"line_number":677,"context_line":"        else:"},{"line_number":678,"context_line":"            api_pol.update_property(path_root, value)"},{"line_number":679,"context_line":"            if ((hasattr(image, path_root) or"}],"source_content_type":"text/x-python","patch_set":7,"id":"137c0215_f288a04f","line":676,"range":{"start_line":676,"start_character":17,"end_line":676,"end_character":34},"in_reply_to":"ce73a20b_10019cc9","updated":"2024-02-22 10:25:55.000000000","message":"Yes UT coverage is there for old location API[1].\n\n[1]: https://github.com/openstack/glance/blob/master/glance/tests/unit/v2/test_images_resource.py#L2196-L2918","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7930d4bb69f8abb8097c7ca99112a5f29a7ca8f4","unresolved":false,"context_lines":[{"line_number":1025,"context_line":"        # NOTE(abhishekk): get glance store based on location uri"},{"line_number":1026,"context_line":"        updated_location \u003d value"},{"line_number":1027,"context_line":"        if CONF.enabled_backends:"},{"line_number":1028,"context_line":"            updated_location \u003d store_utils.get_updated_store_location("},{"line_number":1029,"context_line":"                value)"},{"line_number":1030,"context_line":""},{"line_number":1031,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"0ab0f08c_5cf7413f","line":1028,"range":{"start_line":1028,"start_character":43,"end_line":1028,"end_character":69},"updated":"2024-02-22 09:23:01.000000000","message":"we shouldn\u0027t face similar issues here since this API is not called by cinder with cinder://\u003cvol-id\u003e and any other location in the multistore case should have valid store ID in the location","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"}],"glance/common/store_utils.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"bef7c69c0d187153c24e19e728a1b8d3f2926ab6","unresolved":true,"context_lines":[{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b8406c3d_e9d09bc1","line":245,"updated":"2024-02-12 21:40:43.000000000","message":"Can\u0027t we call update_store_in_locations here? This would limite the amount of places where we have to check whether the URL starts with \"cinder://\".","commit_id":"431836b5650982c57c034aa370c11d302e23517f"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"ed6a1ad6216bf548f550b3122d69cf8841d2cc5a","unresolved":true,"context_lines":[{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"44170da2_5d9b3042","line":245,"in_reply_to":"02d65124_f3ce0201","updated":"2024-02-20 14:48:15.000000000","message":"OK I\u0027ll trust you.","commit_id":"431836b5650982c57c034aa370c11d302e23517f"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b7903aaa_17fa7491","line":245,"in_reply_to":"44170da2_5d9b3042","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"431836b5650982c57c034aa370c11d302e23517f"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"1087037d96ee0b7be0ffb5bf9c0bf942588d29ca","unresolved":true,"context_lines":[{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"02d65124_f3ce0201","line":245,"in_reply_to":"b8406c3d_e9d09bc1","updated":"2024-02-15 09:09:29.000000000","message":"do you mean instead of _update_cinder_location_and_store_id? since this method updating the url with store_id before volume_id so i think it\u0027s required.","commit_id":"431836b5650982c57c034aa370c11d302e23517f"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ffcacd1c3b0a0069d7415ccc04c922926f72107a","unresolved":true,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def get_updated_store_location(locations, context\u003dNone):"},{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3bce28d0_6c8e9816","line":243,"range":{"start_line":243,"start_character":50,"end_line":243,"end_character":57},"updated":"2024-02-21 11:06:38.000000000","message":"This change breaks compatibility since we expect a context object to update url passed by cinder but the location add method doesn\u0027t pass it and we get the following exception\n\ncinder.exception.Invalid: HTTP 400 Bad Request: Invalid location","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def get_updated_store_location(locations, context\u003dNone):"},{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"0776c527_8811a97a","line":243,"range":{"start_line":243,"start_character":50,"end_line":243,"end_character":57},"in_reply_to":"2a6d6100_701305da","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"22ee0a7de398282b6b5d00d63a7f3ab119b26153","unresolved":true,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def get_updated_store_location(locations, context\u003dNone):"},{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"2a6d6100_701305da","line":243,"range":{"start_line":243,"start_character":50,"end_line":243,"end_character":57},"in_reply_to":"3bce28d0_6c8e9816","updated":"2024-02-21 13:32:37.000000000","message":"it doesn\u0027t break compatibility, these changes are done for the new location APIs but while testing this for the old location API, it is also broken.\nI feel this patch can fix both cases with minimal additional changes.","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"8ec82f187dd86939dd411320ae7e41647de26728","unresolved":true,"context_lines":[{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"},{"line_number":249,"context_line":"            loc[\u0027metadata\u0027][\u0027store\u0027] \u003d store_id"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"db70f45d_6dbbe143","line":247,"range":{"start_line":247,"start_character":19,"end_line":247,"end_character":41},"updated":"2024-02-21 11:09:36.000000000","message":"I wonder how did it work before with multiple stores since we were not updating the location URL format anyway ...","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"},{"line_number":249,"context_line":"            loc[\u0027metadata\u0027][\u0027store\u0027] \u003d store_id"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"44e959cf_2ea4b32a","line":247,"range":{"start_line":247,"start_character":19,"end_line":247,"end_character":41},"in_reply_to":"71bb0cce_1db29a28","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"22ee0a7de398282b6b5d00d63a7f3ab119b26153","unresolved":true,"context_lines":[{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"},{"line_number":249,"context_line":"            loc[\u0027metadata\u0027][\u0027store\u0027] \u003d store_id"},{"line_number":250,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"71bb0cce_1db29a28","line":247,"range":{"start_line":247,"start_character":19,"end_line":247,"end_character":41},"in_reply_to":"db70f45d_6dbbe143","updated":"2024-02-21 13:32:37.000000000","message":"Update: tested with cinder and glance master, this is broken","commit_id":"4fa1381ee0e4125367498f2a853990b53d2717a3"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7930d4bb69f8abb8097c7ca99112a5f29a7ca8f4","unresolved":false,"context_lines":[{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"},{"line_number":245,"context_line":"            continue"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        store_id \u003d _get_store_id_from_uri(loc[\u0027url\u0027])"},{"line_number":248,"context_line":"        if store_id:"}],"source_content_type":"text/x-python","patch_set":7,"id":"18f4b6b1_0f613103","line":245,"range":{"start_line":245,"start_character":12,"end_line":245,"end_character":20},"updated":"2024-02-22 09:23:01.000000000","message":"the _update_cinder_location_and_store_id sets the store id in the location metadata so continue looks right here","commit_id":"2792c038eba6cabb35291fa2aa7c21e99074a1b5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"63305fe1b40f765af05346b959534aa43bcd149b","unresolved":true,"context_lines":[{"line_number":238,"context_line":"                    \"due to unknown issues.\"), uri)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def get_updated_store_location(locations, context\u003dNone):"},{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"}],"source_content_type":"text/x-python","patch_set":11,"id":"b7b59a73_8fdaf119","line":241,"range":{"start_line":241,"start_character":42,"end_line":241,"end_character":54},"updated":"2024-02-28 22:06:14.000000000","message":"We have other places where this is called on an existing image to add a location without context. Based on Rajat\u0027s comment earlier, won\u0027t those fail when dealing with cinder-backed images? AFAICT, before, we\u0027d just fall through and run the code below, but now those will fail, no? The only job I see running with cinder backing here is an import job, so perhaps we\u0027re not tripping over this because we\u0027re not actually adding a location via the old mechanism?","commit_id":"7e9bae465c327a352b50393d415cda2e8b70fec1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"75569a9fff7d942fae91eb44700ceabc23b096b4","unresolved":true,"context_lines":[{"line_number":238,"context_line":"                    \"due to unknown issues.\"), uri)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def get_updated_store_location(locations, context\u003dNone):"},{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"}],"source_content_type":"text/x-python","patch_set":11,"id":"e01da4f0_073e906e","line":241,"range":{"start_line":241,"start_character":42,"end_line":241,"end_character":54},"in_reply_to":"b7b59a73_8fdaf119","updated":"2024-02-29 05:08:16.000000000","message":"AFAIU, there are 2 places where this context is required, old add location API and new add location API (when called via cinder).\nIn the particular case of cinder, we are supplying with legacy format of image location \"cinder://6758ba8c-d25a-4808-9df2-f0bfd5258d6b\" because cinder isn\u0027t aware about the store details when uploading a volume to image.\nThe old location API is broken for cinder in the multi store case since we never updated the location here and glance returns invalid location.\n\nWe tried to fix it earlier but it had more failures so we decided to fix old location API separately and isolate this patch to the new location API only.\n\nI\u0027ve modified an existing job in cinder gate to test the upload volume scenario[1] with some devstack and cinder changes so that is a better indication of testing.\n\nAs of now, the new location API is also failing with same error as we saw in old location API though it works for me locally\n\nFeb 28 20:32:33.813278 np0036907064 devstack@g-api.service[87407]: WARNING glance.common.store_utils [-] Not able to update location url \u0027cinder://728b5a49-eade-4c3c-8203-2bc4600bf75e\u0027 of legacy image due to unknown issues.\n\n[1] https://review.opendev.org/c/openstack/cinder/+/909847","commit_id":"7e9bae465c327a352b50393d415cda2e8b70fec1"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"1a364b55b8636846ff5788577a5e9c8be77f593b","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                    \"due to unknown issues.\"), uri)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"def get_updated_store_location(locations, context\u003dNone):"},{"line_number":242,"context_line":"    for loc in locations:"},{"line_number":243,"context_line":"        if loc[\u0027url\u0027].startswith(\"cinder://\") and context:"},{"line_number":244,"context_line":"            _update_cinder_location_and_store_id(context, loc)"}],"source_content_type":"text/x-python","patch_set":11,"id":"c12a52ac_84fa5c67","line":241,"range":{"start_line":241,"start_character":42,"end_line":241,"end_character":54},"in_reply_to":"e01da4f0_073e906e","updated":"2024-06-06 06:49:31.000000000","message":"Done","commit_id":"7e9bae465c327a352b50393d415cda2e8b70fec1"}],"glance/tests/unit/async_/flows/test_location_import.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6bdffa1ef8a00f3cb454a22cbc352a492c455e1e","unresolved":true,"context_lines":[{"line_number":18,"context_line":"from unittest import mock"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"import glance_store as store"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"from oslo_config import cfg"},{"line_number":23,"context_line":"from oslo_utils.secretutils import md5"},{"line_number":24,"context_line":"from oslo_utils import units"}],"source_content_type":"text/x-python","patch_set":1,"id":"4b7dc3be_fcf062e8","line":21,"updated":"2024-01-23 14:50:58.000000000","message":"Unrelated whitespace damage","commit_id":"86eb10c4396b7b280f5ba7f400fecd36575e6c5a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6bdffa1ef8a00f3cb454a22cbc352a492c455e1e","unresolved":true,"context_lines":[{"line_number":492,"context_line":"            TASK_ID1, TASK_TYPE, self.image_repo, IMAGE_ID1)"},{"line_number":493,"context_line":"        set_image_active.execute()"},{"line_number":494,"context_line":"        self.assertEqual(\u0027active\u0027, self.image.status)"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    def test_execute_with_invalid_location(self):"},{"line_number":497,"context_line":"        self.image.locations.append.side_effect \u003d exception.BadStoreUri"},{"line_number":498,"context_line":"        loc_url \u003d \u0027bogus_url\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ef8a1f3_7437af86","line":495,"updated":"2024-01-23 14:50:58.000000000","message":"This tests that it gets called as part of the import, but you can/should have a unit test just for the utility method itself, IMHO. I would have put this test in one of the later patches, but put the utility method change first, and have a dedicated unit test for it so we could merge it *first*.\n\nThat was my intention when I suggested splitting it out, so we could get it merged and off your plate. Sorry I should have been more clear. It\u0027s fine here too, but it does seem like we should have that unit test as well. The import flow could change later making this test no longer useful or able to verify the action, but I think we\u0027d still want it in the utility method.","commit_id":"86eb10c4396b7b280f5ba7f400fecd36575e6c5a"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"ce99ae2e2cf8b64563d57ae9d5d49ae7bb7299b7","unresolved":false,"context_lines":[{"line_number":492,"context_line":"            TASK_ID1, TASK_TYPE, self.image_repo, IMAGE_ID1)"},{"line_number":493,"context_line":"        set_image_active.execute()"},{"line_number":494,"context_line":"        self.assertEqual(\u0027active\u0027, self.image.status)"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    def test_execute_with_invalid_location(self):"},{"line_number":497,"context_line":"        self.image.locations.append.side_effect \u003d exception.BadStoreUri"},{"line_number":498,"context_line":"        loc_url \u003d \u0027bogus_url\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"b8049341_d196cd54","line":495,"in_reply_to":"5ef8a1f3_7437af86","updated":"2024-01-24 10:54:45.000000000","message":"Done","commit_id":"86eb10c4396b7b280f5ba7f400fecd36575e6c5a"}],"glance/tests/unit/common/test_utils.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c0338e40939f1a2445f204950bbe08c9137ae54e","unresolved":true,"context_lines":[{"line_number":152,"context_line":"        self._test_update_cinder_store_in_location(is_valid\u003dFalse)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @mock.patch.object(cinder.Store, \u0027is_image_associated_with_store\u0027)"},{"line_number":155,"context_line":"    @mock.patch.object(cinder.Store, \u0027url_prefix\u0027,"},{"line_number":156,"context_line":"                       new_callable\u003dmock.PropertyMock)"},{"line_number":157,"context_line":"    def test_get_updated_cinder_store_location(self, mock_url_prefix,"},{"line_number":158,"context_line":"                                               mock_associate_store):"},{"line_number":159,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":160,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":161,"context_line":"        expected \u003d \u0027fast-cinder\u0027"},{"line_number":162,"context_line":"        context \u003d mock.Mock()"},{"line_number":163,"context_line":"        mock_associate_store.return_value \u003d True"},{"line_number":164,"context_line":"        mock_url_prefix.return_value \u003d \u0027cinder://%s\u0027 % store_id"},{"line_number":165,"context_line":"        locations \u003d [{"},{"line_number":166,"context_line":"            \u0027url\u0027: \u0027cinder://%s\u0027 % volume_id,"},{"line_number":167,"context_line":"            \u0027metadata\u0027: {}"},{"line_number":168,"context_line":"        }]"},{"line_number":169,"context_line":"        updated_location \u003d store_utils.get_updated_store_location("},{"line_number":170,"context_line":"            locations, context\u003dcontext)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        expected_url \u003d mock_url_prefix.return_value + \u0027/\u0027 + volume_id"},{"line_number":173,"context_line":"        self.assertEqual(expected_url, updated_location[0].get(\u0027url\u0027))"},{"line_number":174,"context_line":"        self.assertEqual(expected,"},{"line_number":175,"context_line":"                         updated_location[0][\u0027metadata\u0027].get(\u0027store\u0027))"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class TestUtils(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ed239e0_002c06c6","line":175,"range":{"start_line":155,"start_character":4,"end_line":175,"end_character":70},"updated":"2024-01-30 06:35:40.000000000","message":"I think this is the same test as line 148, so no point duplicating it.","commit_id":"2f32d688cee03c122df5ba06880bc8d0d1a95f13"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f90c5ad61cf053f136aebd16a07e6901d0d83d6","unresolved":true,"context_lines":[{"line_number":152,"context_line":"        self._test_update_cinder_store_in_location(is_valid\u003dFalse)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @mock.patch.object(cinder.Store, \u0027is_image_associated_with_store\u0027)"},{"line_number":155,"context_line":"    @mock.patch.object(cinder.Store, \u0027url_prefix\u0027,"},{"line_number":156,"context_line":"                       new_callable\u003dmock.PropertyMock)"},{"line_number":157,"context_line":"    def test_get_updated_cinder_store_location(self, mock_url_prefix,"},{"line_number":158,"context_line":"                                               mock_associate_store):"},{"line_number":159,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":160,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":161,"context_line":"        expected \u003d \u0027fast-cinder\u0027"},{"line_number":162,"context_line":"        context \u003d mock.Mock()"},{"line_number":163,"context_line":"        mock_associate_store.return_value \u003d True"},{"line_number":164,"context_line":"        mock_url_prefix.return_value \u003d \u0027cinder://%s\u0027 % store_id"},{"line_number":165,"context_line":"        locations \u003d [{"},{"line_number":166,"context_line":"            \u0027url\u0027: \u0027cinder://%s\u0027 % volume_id,"},{"line_number":167,"context_line":"            \u0027metadata\u0027: {}"},{"line_number":168,"context_line":"        }]"},{"line_number":169,"context_line":"        updated_location \u003d store_utils.get_updated_store_location("},{"line_number":170,"context_line":"            locations, context\u003dcontext)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        expected_url \u003d mock_url_prefix.return_value + \u0027/\u0027 + volume_id"},{"line_number":173,"context_line":"        self.assertEqual(expected_url, updated_location[0].get(\u0027url\u0027))"},{"line_number":174,"context_line":"        self.assertEqual(expected,"},{"line_number":175,"context_line":"                         updated_location[0][\u0027metadata\u0027].get(\u0027store\u0027))"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class TestUtils(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"71d555fe_4c172d7f","line":175,"range":{"start_line":155,"start_character":4,"end_line":175,"end_character":70},"in_reply_to":"5ed239e0_002c06c6","updated":"2024-01-30 13:25:35.000000000","message":"It\u0027s not, because of the assertion that the URL is updated. Without the change to `utils.py` this fails, whereas the earlier test does not:\n\n```\nglance.tests.unit.common.test_utils.TestCinderStoreUtils.test_get_updated_cinder_store_location\n-----------------------------------------------------------------------------------------------\n\nCaptured traceback:\n~~~~~~~~~~~~~~~~~~~\n    Traceback (most recent call last):\n\n      File \"/usr/lib64/python3.11/unittest/mock.py\", line 1375, in patched\n    return func(*newargs, **newkeywargs)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n      File \"/home/dan/glance/glance/tests/unit/common/test_utils.py\", line 173, in test_get_updated_cinder_store_location\n    self.assertEqual(expected_url, updated_location[0].get(\u0027url\u0027))\n\n      File \"/home/dan/glance/.tox/unit/lib/python3.11/site-packages/testtools/testcase.py\", line 395, in assertEqual\n    self.assertThat(observed, matcher, message)\n\n      File \"/home/dan/glance/.tox/unit/lib/python3.11/site-packages/testtools/testcase.py\", line 482, in assertThat\n    raise mismatch_error\n\n    testtools.matchers._impl.MismatchError: !\u003d:\nreference \u003d \u0027cinder://fast-cinder/db457a25-8f16-4b2c-a644-eae8d17fe224\u0027\nactual    \u003d \u0027cinder://db457a25-8f16-4b2c-a644-eae8d17fe224\u0027\n```\n\nAre you saying we should just build this assertion into the test above instead of duplicating most of the test again for this?","commit_id":"2f32d688cee03c122df5ba06880bc8d0d1a95f13"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"9e130aa32959a445d7eb983184170af25e616ad2","unresolved":true,"context_lines":[{"line_number":152,"context_line":"        self._test_update_cinder_store_in_location(is_valid\u003dFalse)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @mock.patch.object(cinder.Store, \u0027is_image_associated_with_store\u0027)"},{"line_number":155,"context_line":"    @mock.patch.object(cinder.Store, \u0027url_prefix\u0027,"},{"line_number":156,"context_line":"                       new_callable\u003dmock.PropertyMock)"},{"line_number":157,"context_line":"    def test_get_updated_cinder_store_location(self, mock_url_prefix,"},{"line_number":158,"context_line":"                                               mock_associate_store):"},{"line_number":159,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":160,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":161,"context_line":"        expected \u003d \u0027fast-cinder\u0027"},{"line_number":162,"context_line":"        context \u003d mock.Mock()"},{"line_number":163,"context_line":"        mock_associate_store.return_value \u003d True"},{"line_number":164,"context_line":"        mock_url_prefix.return_value \u003d \u0027cinder://%s\u0027 % store_id"},{"line_number":165,"context_line":"        locations \u003d [{"},{"line_number":166,"context_line":"            \u0027url\u0027: \u0027cinder://%s\u0027 % volume_id,"},{"line_number":167,"context_line":"            \u0027metadata\u0027: {}"},{"line_number":168,"context_line":"        }]"},{"line_number":169,"context_line":"        updated_location \u003d store_utils.get_updated_store_location("},{"line_number":170,"context_line":"            locations, context\u003dcontext)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        expected_url \u003d mock_url_prefix.return_value + \u0027/\u0027 + volume_id"},{"line_number":173,"context_line":"        self.assertEqual(expected_url, updated_location[0].get(\u0027url\u0027))"},{"line_number":174,"context_line":"        self.assertEqual(expected,"},{"line_number":175,"context_line":"                         updated_location[0][\u0027metadata\u0027].get(\u0027store\u0027))"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class TestUtils(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ead0f4de_bbbfdc67","line":175,"range":{"start_line":155,"start_character":4,"end_line":175,"end_character":70},"in_reply_to":"71d555fe_4c172d7f","updated":"2024-01-30 13:30:40.000000000","message":"Yes, kind of removing most of the duplication!","commit_id":"2f32d688cee03c122df5ba06880bc8d0d1a95f13"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2bf4b059def8e9969fe5d88d2e1b8b1e7d3cbfd7","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self._test_update_cinder_store_in_location(is_valid\u003dFalse)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    @mock.patch.object(cinder.Store, \u0027is_image_associated_with_store\u0027)"},{"line_number":155,"context_line":"    @mock.patch.object(cinder.Store, \u0027url_prefix\u0027,"},{"line_number":156,"context_line":"                       new_callable\u003dmock.PropertyMock)"},{"line_number":157,"context_line":"    def test_get_updated_cinder_store_location(self, mock_url_prefix,"},{"line_number":158,"context_line":"                                               mock_associate_store):"},{"line_number":159,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":160,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":161,"context_line":"        expected \u003d \u0027fast-cinder\u0027"},{"line_number":162,"context_line":"        context \u003d mock.Mock()"},{"line_number":163,"context_line":"        mock_associate_store.return_value \u003d True"},{"line_number":164,"context_line":"        mock_url_prefix.return_value \u003d \u0027cinder://%s\u0027 % store_id"},{"line_number":165,"context_line":"        locations \u003d [{"},{"line_number":166,"context_line":"            \u0027url\u0027: \u0027cinder://%s\u0027 % volume_id,"},{"line_number":167,"context_line":"            \u0027metadata\u0027: {}"},{"line_number":168,"context_line":"        }]"},{"line_number":169,"context_line":"        updated_location \u003d store_utils.get_updated_store_location("},{"line_number":170,"context_line":"            locations, context\u003dcontext)"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        expected_url \u003d mock_url_prefix.return_value + \u0027/\u0027 + volume_id"},{"line_number":173,"context_line":"        self.assertEqual(expected_url, updated_location[0].get(\u0027url\u0027))"},{"line_number":174,"context_line":"        self.assertEqual(expected,"},{"line_number":175,"context_line":"                         updated_location[0][\u0027metadata\u0027].get(\u0027store\u0027))"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":""},{"line_number":178,"context_line":"class TestUtils(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"d3feb2bb_31243dbc","line":175,"range":{"start_line":155,"start_character":4,"end_line":175,"end_character":70},"in_reply_to":"ead0f4de_bbbfdc67","updated":"2024-02-01 10:35:44.000000000","message":"Done","commit_id":"2f32d688cee03c122df5ba06880bc8d0d1a95f13"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2ea8ce7257768fd3a9b71e8fe7022d794f0b9a03","unresolved":true,"context_lines":[{"line_number":162,"context_line":"        self._test_update_cinder_store_in_location(is_valid\u003dFalse)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def test_get_updated_cinder_store_location(self):"},{"line_number":165,"context_line":"        self._test_update_cinder_store_in_location(get_location\u003dTrue)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"class TestUtils(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"fb98255a_caa670c6","line":165,"range":{"start_line":165,"start_character":51,"end_line":165,"end_character":63},"updated":"2024-02-21 13:47:54.000000000","message":"you can rename it to verify_cinder_loc_url","commit_id":"e51ac6a4df33ad98d1fea47ef8ef5002c613d533"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"2d19cc6a76e4b8d3da2353c399e23672b1b4cc68","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        self._test_update_cinder_store_in_location(is_valid\u003dFalse)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    def test_get_updated_cinder_store_location(self):"},{"line_number":165,"context_line":"        self._test_update_cinder_store_in_location(get_location\u003dTrue)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"class TestUtils(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"2ad13c28_c3443d99","line":165,"range":{"start_line":165,"start_character":51,"end_line":165,"end_character":63},"in_reply_to":"fb98255a_caa670c6","updated":"2024-02-22 07:42:46.000000000","message":"Done","commit_id":"e51ac6a4df33ad98d1fea47ef8ef5002c613d533"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"b5ae9b1beb34561a75ac1d723c370fd53c09f620","unresolved":true,"context_lines":[{"line_number":103,"context_line":"    def _test_update_cinder_store_in_location(self, mock_url_prefix,"},{"line_number":104,"context_line":"                                              mock_associate_store,"},{"line_number":105,"context_line":"                                              is_valid\u003dTrue,"},{"line_number":106,"context_line":"                                              verify_cinder_loc_url\u003dFalse):"},{"line_number":107,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":108,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":109,"context_line":"        expected \u003d \u0027fast-cinder\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"799f5870_536fa341","line":106,"range":{"start_line":106,"start_character":46,"end_line":106,"end_character":74},"updated":"2024-06-14 05:32:30.000000000","message":"I think instead of patching this test you should create new test based on your scenario and fix this existing test accordingly if it is failing.\n\nThis verify_cinder_loc_url parameter is confusing, because test suggests you are testing updated cinder location and not verifying it if the parameter is False.","commit_id":"45dc70a3d84c720f135e576560b0007899f3e491"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"91541a49e75292e77c8e81d320053982235f843e","unresolved":true,"context_lines":[{"line_number":103,"context_line":"    def _test_update_cinder_store_in_location(self, mock_url_prefix,"},{"line_number":104,"context_line":"                                              mock_associate_store,"},{"line_number":105,"context_line":"                                              is_valid\u003dTrue,"},{"line_number":106,"context_line":"                                              verify_cinder_loc_url\u003dFalse):"},{"line_number":107,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":108,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":109,"context_line":"        expected \u003d \u0027fast-cinder\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"810c1b60_6d62014f","line":106,"range":{"start_line":106,"start_character":46,"end_line":106,"end_character":74},"in_reply_to":"63bce820_144ea1c9","updated":"2024-06-14 08:15:56.000000000","message":"You can change the parameter name, it is confusing because you are doing the same thing in if and else block altogether.","commit_id":"45dc70a3d84c720f135e576560b0007899f3e491"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"1e21769e2339fc32ce8febb02c28ad9fd4893273","unresolved":true,"context_lines":[{"line_number":103,"context_line":"    def _test_update_cinder_store_in_location(self, mock_url_prefix,"},{"line_number":104,"context_line":"                                              mock_associate_store,"},{"line_number":105,"context_line":"                                              is_valid\u003dTrue,"},{"line_number":106,"context_line":"                                              verify_cinder_loc_url\u003dFalse):"},{"line_number":107,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":108,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":109,"context_line":"        expected \u003d \u0027fast-cinder\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"63bce820_144ea1c9","line":106,"range":{"start_line":106,"start_character":46,"end_line":106,"end_character":74},"in_reply_to":"799f5870_536fa341","updated":"2024-06-14 07:53:49.000000000","message":"yeah right but in earlier PS I had added the separate test and after getting a suggestion on patching it up to avoid duplication I updated this. Should I still seperate it out ?\n\nhttps://review.opendev.org/c/openstack/glance/+/906359/2/glance/tests/unit/common/test_utils.py","commit_id":"45dc70a3d84c720f135e576560b0007899f3e491"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"c62bf939cd8da1abed2ace821c7c746b9d05ee72","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    def _test_update_cinder_store_in_location(self, mock_url_prefix,"},{"line_number":104,"context_line":"                                              mock_associate_store,"},{"line_number":105,"context_line":"                                              is_valid\u003dTrue,"},{"line_number":106,"context_line":"                                              verify_cinder_loc_url\u003dFalse):"},{"line_number":107,"context_line":"        volume_id \u003d \u0027db457a25-8f16-4b2c-a644-eae8d17fe224\u0027"},{"line_number":108,"context_line":"        store_id \u003d \u0027fast-cinder\u0027"},{"line_number":109,"context_line":"        expected \u003d \u0027fast-cinder\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"73dd677d_97232a45","line":106,"range":{"start_line":106,"start_character":46,"end_line":106,"end_character":74},"in_reply_to":"810c1b60_6d62014f","updated":"2024-06-14 10:36:36.000000000","message":"Done","commit_id":"45dc70a3d84c720f135e576560b0007899f3e491"}],"releasenotes/notes/make-cinder-location-url-compatible-1b57e4f2bb683f07.yaml":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"882d3499fe8d478b58746b50def4225fa6693638","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"88aa10b5_fc0801bd","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":15},"updated":"2024-02-22 16:10:40.000000000","message":"While reading the releasenotes, we won\u0027t know which change fixed it so we can remove this part","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"882d3499fe8d478b58746b50def4225fa6693638","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"93d72a4b_175bbd64","line":4,"range":{"start_line":4,"start_character":22,"end_line":4,"end_character":44},"updated":"2024-02-22 16:10:40.000000000","message":"do we want to expose error details in the releasenote?","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0c68da5c49203a377c6c959b07528a536c471c9a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"c485b3d2_19f25a07","line":4,"range":{"start_line":4,"start_character":4,"end_line":4,"end_character":15},"in_reply_to":"88aa10b5_fc0801bd","updated":"2024-02-26 08:35:39.000000000","message":"Done","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0c68da5c49203a377c6c959b07528a536c471c9a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9c324089_21750a3b","line":4,"range":{"start_line":4,"start_character":22,"end_line":4,"end_character":44},"in_reply_to":"93d72a4b_175bbd64","updated":"2024-02-26 08:35:39.000000000","message":"Done","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"882d3499fe8d478b58746b50def4225fa6693638","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"c160c5b3_89d327b7","line":5,"range":{"start_line":5,"start_character":9,"end_line":5,"end_character":25},"updated":"2024-02-22 16:10:40.000000000","message":"I assume we are going to merge the new location API code this cycle itself so it makes sense","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"3ab5e52bc55f7fb08fe8fcc3fb138963b73dc813","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"cde192e3_517e04d5","line":5,"range":{"start_line":5,"start_character":29,"end_line":5,"end_character":34},"updated":"2024-02-22 14:24:36.000000000","message":"s/glane/glance/ but I\u0027m not holding the patch for that :)","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0c68da5c49203a377c6c959b07528a536c471c9a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"da8643c8_01702707","line":5,"range":{"start_line":5,"start_character":9,"end_line":5,"end_character":25},"in_reply_to":"c160c5b3_89d327b7","updated":"2024-02-26 08:35:39.000000000","message":"Done","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0c68da5c49203a377c6c959b07528a536c471c9a","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"8b228217_376acad1","line":5,"range":{"start_line":5,"start_character":29,"end_line":5,"end_character":34},"in_reply_to":"cde192e3_517e04d5","updated":"2024-02-26 08:35:39.000000000","message":"Done","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"882d3499fe8d478b58746b50def4225fa6693638","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"92c11a44_43274354","line":6,"updated":"2024-02-22 16:10:40.000000000","message":"I would like if this can be rephrased as,\n\nFixed the issue when cinder uploads a volume to glance in the optimized path and glance rejects the request with invalid location.\nNow we convert the old location format sent by cinder into the new location format supported by multi store, hence, allowing volumes to be uploaded in an optimized way.","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"882d3499fe8d478b58746b50def4225fa6693638","unresolved":true,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"32c1cbf7_c89f9b6d","line":6,"range":{"start_line":6,"start_character":37,"end_line":6,"end_character":66},"updated":"2024-02-22 16:10:40.000000000","message":"again, this is a very backend specific detail which might not be relevant for users reading releasenotes","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0c68da5c49203a377c6c959b07528a536c471c9a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"5bcb71a2_44093ba0","line":6,"range":{"start_line":6,"start_character":37,"end_line":6,"end_character":66},"in_reply_to":"32c1cbf7_c89f9b6d","updated":"2024-02-26 08:35:39.000000000","message":"Done","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"0c68da5c49203a377c6c959b07528a536c471c9a","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    This change fixes Invalid Location Error for cinder upload volume"},{"line_number":5,"context_line":"    with old location API of glane. Modified the location url to"},{"line_number":6,"context_line":"    be compatible with multistore as `cinder://store_id/volume_id`."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"a96e582d_bfb05857","line":6,"in_reply_to":"92c11a44_43274354","updated":"2024-02-26 08:35:39.000000000","message":"Acknowledged","commit_id":"ccfd8dab4bb3770714b3e141fb4dff2913a4b2c9"}]}
