)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"fd6a778526fd39c8482041c7827edbaa3b67d34c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"200103aa_b1ad24ff","updated":"2024-03-07 13:06:23.000000000","message":"Please review","commit_id":"4556a45790336df5954f20208d499ed97f45a103"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3368548caae087d58db077beda8688b320196fb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1b197ac8_4a463883","updated":"2024-03-07 18:58:16.000000000","message":"Thank you for working on this change... You\u0027re doing a great job following the contributor reference, and formatting your commit message. Now, Please see comment inline for how this bug must be addressed...\n\nAlso, in your next patch, could you please add a release note: https://docs.openstack.org/manila/latest/contributor/adding_release_notes.html","commit_id":"4556a45790336df5954f20208d499ed97f45a103"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"44cb8e2564337ed0c1584ac23f8e090d2f2958d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ca2ccdca_e74487d7","updated":"2024-03-12 21:48:14.000000000","message":"Christian: \n\nplease take a look at the comments inline and respond","commit_id":"84701716102556ff95dd401374966025adb6de5d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ffa5146193a616e4b0e45b13242eab70ccb91b5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2733da96_db374743","updated":"2024-03-08 21:35:51.000000000","message":"Christian: what is your launchpad user ID?","commit_id":"84701716102556ff95dd401374966025adb6de5d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"699099e8aa8efa2d9440694fa496c49eeca6a181","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9e6e96c3_831325b5","updated":"2024-03-08 21:34:17.000000000","message":"Thank you; please see a comment inline for enhancing readability of this code... \n\nCould you also please \"resolve\" pending review comments since you made the necessary edits?\n\nYou\u0027ll need to respond to the review comment - make sure the \"Resolved\" check box under each comment is checked, and hit \"Reply\" and post the comment.","commit_id":"84701716102556ff95dd401374966025adb6de5d"},{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"7e38927137d68db159f8aba1286174cfa56462af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a8477ebc_08148934","in_reply_to":"2733da96_db374743","updated":"2024-03-13 11:52:32.000000000","message":"Username: `ccokeke`","commit_id":"84701716102556ff95dd401374966025adb6de5d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"94d9fd0270de03aec6799be506523b27b9ebd17f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"35e10e16_f0c3c5fc","updated":"2024-03-19 23:27:31.000000000","message":"I\u0027ve also created https://bugs.launchpad.net/manila/+bug/2058427 to report the same issue for other resources\nIt feels like we need to have some unit tests to prevent this behavior from breaking. \n\nChristian, would you like to take a shot at adding some unit tests?","commit_id":"c8236141f86fc609ee9901a42bbcffe60bd66e40"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"cba94f481a8cca01830a708682a5e4667f9d40fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2f91f9f5_37944507","updated":"2024-03-20 16:45:43.000000000","message":"LGTM, thank you for your hard work on this change, Christian","commit_id":"c8236141f86fc609ee9901a42bbcffe60bd66e40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"28b5b879ff6faed9f15ececa26cbe0abfee5776a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a549c9bc_4bd8ee37","updated":"2024-03-19 23:09:18.000000000","message":"Thanks; LGTM.. this works. \nIs your Launchpad ID https://launchpad.net/~ccokeke? \n\n\nMy test results:\n\n\nBefore this change:\n```\ncurl -i -X GET http://10.0.108.99/share/v2/share-replicas/detail?limit\u003d2 -H \"X-Auth-Token: $TOKEN\" -H \"X-Openstack-Manila-Api-Version: 2.82\" -H \"User-Agent: python-manilaclient\" -H \"Accept: application/json\"\nHTTP/1.1 200 OK\nDate: Tue, 19 Mar 2024 22:38:34 GMT\nServer: Apache/2.4.52 (Ubuntu)\nContent-Type: application/json\nContent-Length: 927\nx-compute-request-id: req-1fb785c4-9b98-4a7e-8468-c3ca6ae59b2a\nX-OpenStack-Manila-API-Version: 2.82\nVary: X-OpenStack-Manila-API-Version\nConnection: close\n\n{\"share_replicas\": [{\"id\": \"8779df54-9be9-4df5-9142-e92d653fe518\", \"share_id\": \"d68355db-d9e5-4c86-9a6d-aa7aa1da2241\", \"availability_zone\": null, \"created_at\": \"2024-03-19T22:37:52.334980\", \"status\": \"error\", \"share_network_id\": null, \"replica_state\": \"error\", \"updated_at\": \"2024-03-19T22:37:52.433974\", \"share_server_id\": null, \"host\": \"\", \"cast_rules_to_readonly\": true}, {\"id\": \"cead06ac-ab4e-4164-883e-4e846c5e4bdc\", \"share_id\": \"d68355db-d9e5-4c86-9a6d-aa7aa1da2241\", \"availability_zone\": \"nova\", \"created_at\": \"2024-03-19T22:37:35.676989\", \"status\": \"available\", \"share_network_id\": null, \"replica_state\": \"active\", \"updated_at\": \"2024-03-19T22:37:39.978913\", \"share_server_id\": null, \"host\": \"zorilla-cephadm@gamma#fake_pool_for_GAMMA\", \"cast_rules_to_readonly\": false}], \"share_replica_links\": [{\"rel\": \"next\", \"href\": \"http://10.0.108.99/share/v2/share_replicas?limit\u003d2\u0026marker\u003dcead06ac-ab4e-4164-883e-4e846c5e4bdc\"}]}\n```\n\n\nAfter this change:\n```\ncurl -i -X GET \"http://10.0.108.99/share/v2/share-replicas/detail?limit\u003d2\" -H \"X-Auth-Token: $TOKEN\" -H \"X-Openstack-Manila-Api-Version: 2.82\" -H \"User-Agent: python-manilaclient\" -H \"Accept: application/json\"\nHTTP/1.1 200 OK\nDate: Tue, 19 Mar 2024 22:47:47 GMT\nServer: Apache/2.4.52 (Ubuntu)\nContent-Type: application/json\nContent-Length: 927\nx-compute-request-id: req-2ca1933a-1891-4176-a897-81574363cbcf\nX-OpenStack-Manila-API-Version: 2.82\nVary: X-OpenStack-Manila-API-Version\nConnection: close\n\n{\"share_replicas\": [{\"id\": \"8779df54-9be9-4df5-9142-e92d653fe518\", \"share_id\": \"d68355db-d9e5-4c86-9a6d-aa7aa1da2241\", \"availability_zone\": null, \"created_at\": \"2024-03-19T22:37:52.334980\", \"status\": \"error\", \"share_network_id\": null, \"replica_state\": \"error\", \"updated_at\": \"2024-03-19T22:37:52.433974\", \"share_server_id\": null, \"host\": \"\", \"cast_rules_to_readonly\": true}, {\"id\": \"cead06ac-ab4e-4164-883e-4e846c5e4bdc\", \"share_id\": \"d68355db-d9e5-4c86-9a6d-aa7aa1da2241\", \"availability_zone\": \"nova\", \"created_at\": \"2024-03-19T22:37:35.676989\", \"status\": \"available\", \"share_network_id\": null, \"replica_state\": \"active\", \"updated_at\": \"2024-03-19T22:37:39.978913\", \"share_server_id\": null, \"host\": \"zorilla-cephadm@gamma#fake_pool_for_GAMMA\", \"cast_rules_to_readonly\": false}], \"share_replica_links\": [{\"rel\": \"next\", \"href\": \"http://10.0.108.99/share/v2/share-replicas?limit\u003d2\u0026marker\u003dcead06ac-ab4e-4164-883e-4e846c5e4bdc\"}]}\n```\n\n\nThe links work now for this API.. Thanks for working on this fix. While reviewing, I found another bug: https://bugs.launchpad.net/manila/+bug/2058424","commit_id":"c8236141f86fc609ee9901a42bbcffe60bd66e40"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3bd47d7e36ca3a6aafb8bbdd4333c8594d123518","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"ff228e4d_18e21c3e","updated":"2024-03-13 17:06:05.000000000","message":"Thanks; this looks good now... i\u0027d like to test this locally since we don\u0027t seem to have any unit or tempest tests that capture the scenario..","commit_id":"c8236141f86fc609ee9901a42bbcffe60bd66e40"},{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"440565cfbb4f6dc9cd5b66d856b5926d34c10334","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"05347d2c_d49c42ba","updated":"2024-03-19 12:25:38.000000000","message":"recheck","commit_id":"c8236141f86fc609ee9901a42bbcffe60bd66e40"},{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"bb15ba51f6f20a61ec57c40a6a3eb3b182c5cd0a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"af70348a_99f7b914","in_reply_to":"35e10e16_f0c3c5fc","updated":"2024-03-20 12:51:11.000000000","message":"Yes, Let me write a unit test to prevent this behavior.","commit_id":"c8236141f86fc609ee9901a42bbcffe60bd66e40"}],"manila/api/common.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"699099e8aa8efa2d9440694fa496c49eeca6a181","unresolved":true,"context_lines":[{"line_number":331,"context_line":"                                          CONF.osapi_share_base_URL)"},{"line_number":332,"context_line":"        url \u003d os.path.join(prefix,"},{"line_number":333,"context_line":"                           self._get_project_id(request),"},{"line_number":334,"context_line":"                           self._collection_route_name"},{"line_number":335,"context_line":"                           if self._collection_route_name"},{"line_number":336,"context_line":"                           else self._collection_name)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        return \"%s?%s\" % (url, dict_to_query_str(params))"},{"line_number":339,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"198a4e99_8e85b843","line":336,"range":{"start_line":334,"start_character":27,"end_line":336,"end_character":53},"updated":"2024-03-08 21:34:17.000000000","message":"or simply:\n\n```\nself._collection_route_name or self._collection_name\n```\n\nthis will exceed the line length, i suggest using a variable:\n\n\n```\n\n\n\n        params \u003d request.params.copy()\n        params[\"marker\"] \u003d identifier\n        collection_route_name \u003d (\n            self._route_collection_name \n            or self._collection_name\n        )\n        prefix \u003d self._update_link_prefix(request.application_url,\n                                          CONF.osapi_share_base_URL)\n        url \u003d os.path.join(prefix,\n                           self._get_project_id(request),\n                           collection_route_name)","commit_id":"84701716102556ff95dd401374966025adb6de5d"},{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"9b788ca96fab50c6e4a1c56050cc65c7552fd6db","unresolved":false,"context_lines":[{"line_number":331,"context_line":"                                          CONF.osapi_share_base_URL)"},{"line_number":332,"context_line":"        url \u003d os.path.join(prefix,"},{"line_number":333,"context_line":"                           self._get_project_id(request),"},{"line_number":334,"context_line":"                           self._collection_route_name"},{"line_number":335,"context_line":"                           if self._collection_route_name"},{"line_number":336,"context_line":"                           else self._collection_name)"},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        return \"%s?%s\" % (url, dict_to_query_str(params))"},{"line_number":339,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"eff5605f_2352c6e7","line":336,"range":{"start_line":334,"start_character":27,"end_line":336,"end_character":53},"in_reply_to":"198a4e99_8e85b843","updated":"2024-03-13 10:44:50.000000000","message":"Resolved","commit_id":"84701716102556ff95dd401374966025adb6de5d"}],"manila/api/v2/router.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3368548caae087d58db077beda8688b320196fb3","unresolved":true,"context_lines":[{"line_number":584,"context_line":"                conditions\u003d{\"method\": [\"POST\"]})"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        self.resources[\u0027share_replicas\u0027] \u003d share_replicas.create_resource()"},{"line_number":587,"context_line":"        mapper.resource(\"share_replica\", \"share_replicas\","},{"line_number":588,"context_line":"                        controller\u003dself.resources[\u0027share_replicas\u0027],"},{"line_number":589,"context_line":"                        collection\u003d{\u0027detail\u0027: \u0027GET\u0027},"},{"line_number":590,"context_line":"                        member\u003d{\u0027action\u0027: \u0027POST\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"27c46c4a_e305d013","line":587,"updated":"2024-03-07 18:58:16.000000000","message":"you\u0027re modifying the route itself - i.e. your change here is deleting an endpoint ending with \"share-replicas\"  (e.g.: /v2/share-replicas: https://docs.openstack.org/api-ref/shared-file-system/index.html#create-share-replica) \n\nthis is incorrect and will break a supported/published API. \n\n\nWhat\u0027s going on here is that the API generates \"links\" of different kinds: [1] \n\nAs you can see there; each link generation method uses \"os.path.join\" to concatenate a path; and this path is currently using \"self._collection_name\"...\nThis is one place to fix this bug.... \n\n\n\nFor share replicas, self._collection_name is \"share_replicas\" [2]\nbut, the route here is \"share-replicas\". But you can\u0027t set self._collection_name to \"share-replicas\" either... it is used for other things in the share replicas view builder, and changing this will break the API as well. \n\n\nInstead, can you introduce a new parameter in the Base View Builder class, call it self._collection_route_name perhaps, and default it to None. In the Share Replica View Builder class [2], set this \"self._collection_route_name\" to \"share-replicas\". Then, you can edit each of the methods in [1] to use self._route_collection_name if it is set, instead of self._collection name.\n\n \n[1] https://github.com/openstack/manila/blob/b488f42332f045d57b2288a94313e877eb894c35/manila/api/common.py#L324-L352\n[2] https://github.com/openstack/manila/blob/15b27e8fbe252328ed6c105942e915c76af23fb4/manila/api/views/share_replicas.py#L22","commit_id":"4556a45790336df5954f20208d499ed97f45a103"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"d39aa3a1318b0f9fe75f2f76e36e030956fca684","unresolved":true,"context_lines":[{"line_number":584,"context_line":"                conditions\u003d{\"method\": [\"POST\"]})"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        self.resources[\u0027share_replicas\u0027] \u003d share_replicas.create_resource()"},{"line_number":587,"context_line":"        mapper.resource(\"share_replica\", \"share_replicas\","},{"line_number":588,"context_line":"                        controller\u003dself.resources[\u0027share_replicas\u0027],"},{"line_number":589,"context_line":"                        collection\u003d{\u0027detail\u0027: \u0027GET\u0027},"},{"line_number":590,"context_line":"                        member\u003d{\u0027action\u0027: \u0027POST\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"a805dc33_141802d2","line":587,"in_reply_to":"27c46c4a_e305d013","updated":"2024-03-08 13:18:09.000000000","message":"Apologies, I have asked Christian to go into this direction to change the routes, and I agree with Goutham on how it should be fixed.","commit_id":"4556a45790336df5954f20208d499ed97f45a103"},{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"9b788ca96fab50c6e4a1c56050cc65c7552fd6db","unresolved":false,"context_lines":[{"line_number":584,"context_line":"                conditions\u003d{\"method\": [\"POST\"]})"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"        self.resources[\u0027share_replicas\u0027] \u003d share_replicas.create_resource()"},{"line_number":587,"context_line":"        mapper.resource(\"share_replica\", \"share_replicas\","},{"line_number":588,"context_line":"                        controller\u003dself.resources[\u0027share_replicas\u0027],"},{"line_number":589,"context_line":"                        collection\u003d{\u0027detail\u0027: \u0027GET\u0027},"},{"line_number":590,"context_line":"                        member\u003d{\u0027action\u0027: \u0027POST\u0027})"}],"source_content_type":"text/x-python","patch_set":1,"id":"52102048_fa2f4eae","line":587,"in_reply_to":"a805dc33_141802d2","updated":"2024-03-13 10:44:50.000000000","message":"Resolved","commit_id":"4556a45790336df5954f20208d499ed97f45a103"}],"releasenotes/notes/bug-2023754-fix-share-replica-url-367797a27a9c314d.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"699099e8aa8efa2d9440694fa496c49eeca6a181","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Launchpad `bug 2023754 \u003chttps://bugs.launchpad.net/manila/+bug/2023754\u003e`_"},{"line_number":5,"context_line":"    has been fixed for \"next links\" broken for limited share replicas api."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"06126d24_0d997b80","line":5,"range":{"start_line":5,"start_character":73,"end_line":5,"end_character":74},"updated":"2024-03-08 21:34:17.000000000","message":"Good job writing a succinct release note!","commit_id":"84701716102556ff95dd401374966025adb6de5d"},{"author":{"_account_id":36853,"name":"christian okeke","email":"eceokekechima@gmail.com","username":"ccokeke"},"change_message_id":"9b788ca96fab50c6e4a1c56050cc65c7552fd6db","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Launchpad `bug 2023754 \u003chttps://bugs.launchpad.net/manila/+bug/2023754\u003e`_"},{"line_number":5,"context_line":"    has been fixed for \"next links\" broken for limited share replicas api."},{"line_number":6,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":3,"id":"87198f0e_81bd6f61","line":5,"range":{"start_line":5,"start_character":73,"end_line":5,"end_character":74},"in_reply_to":"06126d24_0d997b80","updated":"2024-03-13 10:44:50.000000000","message":"Resolved","commit_id":"84701716102556ff95dd401374966025adb6de5d"}]}
