)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"23b5e9ac7ecc08ae962e209e789e2eb9be881bf4","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cleanup unused only_quotas path in quota_destroy_all_by_project"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As requested in the TODO above, the only_quotas\u003dFalse path was removed from the quota_destroy_all_by_project function since it was unused code."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I1089ba70f84d587a4b69c34ba0f7808f81219867"},{"line_number":12,"context_line":"Signed-off-by: Eduardo-Morais \u003ceduardo.henrique.lima.morais@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"caf22aed_1511eb73","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":143},"updated":"2026-09-14 18:01:55.000000000","message":"Please wrap lines at 72 characters.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"9d58e8a12c0122d13384bcc5300865edcff0d811"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"2b9cbb25b82e569c5724c32f93e99bf52fd0bd3a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cleanup unused only_quotas path in quota_destroy_all_by_project"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As requested in the TODO above, the only_quotas\u003dFalse path was removed from the quota_destroy_all_by_project function since it was unused code."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I1089ba70f84d587a4b69c34ba0f7808f81219867"},{"line_number":12,"context_line":"Signed-off-by: Eduardo-Morais \u003ceduardo.henrique.lima.morais@gmail.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"cb2946c0_23223e1e","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":143},"in_reply_to":"caf22aed_1511eb73","updated":"2026-09-18 17:31:33.000000000","message":"Done","commit_id":"9d58e8a12c0122d13384bcc5300865edcff0d811"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5b6dd76279fbdf0f8a508325852fde9f4ff7352e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8f4275f9_5eac22e4","updated":"2026-09-14 15:33:56.000000000","message":"Thanks for proposing this. Please find my comments inline.","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"23b5e9ac7ecc08ae962e209e789e2eb9be881bf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7ae3f898_3185956a","updated":"2026-09-14 18:01:55.000000000","message":"According to results posted by CI, you may have to update unit tests, too.","commit_id":"9d58e8a12c0122d13384bcc5300865edcff0d811"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"373b1e0c6346fa639100c2a703ab4b532fb3dee5","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3ffa41bb_58aca2c1","updated":"2026-09-16 13:50:48.000000000","message":"The failure in unit tests is actually caused by this change. You have to update the existing test case according to this change.\n\n```\nTraceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/cinder/cinder/tests/unit/test_db_api.py\", line 3092, in test_quota_destroy_sqlalchemy_all_by_project_\n    sqlalchemy_api.quota_destroy_all_by_project(self.ctxt, project,\n  File \"/home/zuul/src/opendev.org/openstack/cinder/cinder/db/api.py\", line 228, in wrapper\n    return f(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^\n  File \"/home/zuul/src/opendev.org/openstack/cinder/.tox/py311/lib/python3.11/site-packages/oslo_db/api.py\", line 144, in wrapper\n    with excutils.save_and_reraise_exception() as ectxt:\n  File \"/home/zuul/src/opendev.org/openstack/cinder/.tox/py311/lib/python3.11/site-packages/oslo_utils/excutils.py\", line 260, in __exit__\n    self.force_reraise()\n  File \"/home/zuul/src/opendev.org/openstack/cinder/.tox/py311/lib/python3.11/site-packages/oslo_utils/excutils.py\", line 226, in force_reraise\n    raise self.value\n  File \"/home/zuul/src/opendev.org/openstack/cinder/.tox/py311/lib/python3.11/site-packages/oslo_db/api.py\", line 142, in wrapper\n    return f(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^\n  File \"/home/zuul/src/opendev.org/openstack/cinder/.tox/py311/lib/python3.11/site-packages/oslo_db/sqlalchemy/enginefacade.py\", line 1159, in wrapper\n    return fn(*args, **kwargs)\n           ^^^^^^^^^^^^^^^^^^^\nTypeError: quota_destroy_all_by_project() got an unexpected keyword argument \u0027only_quotas\u0027\n```","commit_id":"98b3a57924eee310562647a57d7c223df1f274f7"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"80dced2e717cb4b40af327c8cc321424d87b844e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6ef16f63_b9be332c","in_reply_to":"12be5426_6909a861","updated":"2026-09-16 15:28:52.000000000","message":"Since the function no longer deletes QuotaUsage and Reservation, I updated the test to assert against expected_usage at the end, rather than expecting an empty result.\n\nI ran the tests again after the changes to test_db_api, and they passed this time. Thanks for the review!","commit_id":"98b3a57924eee310562647a57d7c223df1f274f7"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"6f8428267cf88db102d8bb4161156f002dc4df00","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6f35e7af_d7325be7","in_reply_to":"3ffa41bb_58aca2c1","updated":"2026-09-16 14:37:08.000000000","message":"I removed the old only_quota parameter in the file where I tested this. Would this be the right way to resolve it?","commit_id":"98b3a57924eee310562647a57d7c223df1f274f7"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"f3c81652e6b467ddfafcc4ea2e7425caa414daa3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"43b8ad2d_441b15dd","in_reply_to":"6ef16f63_b9be332c","updated":"2026-09-18 13:38:04.000000000","message":"Done","commit_id":"98b3a57924eee310562647a57d7c223df1f274f7"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"916d673eff0f761691137bcb88fd6eabb5bedcf1","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"12be5426_6909a861","in_reply_to":"6f35e7af_d7325be7","updated":"2026-09-16 14:55:24.000000000","message":"I\u0027d strongly suggest reading the test code to find out what\u0027s are asserted there... The existing test code used only_quota\u003dFalse and asserted both quota and quota usage are deleted. With this change only quota is purged so unless you update the assertion the test may not pass.\n\nPlease run these tests in your local env by `tox -e py3` (or `tox -e py313` in case you run tests on specific python version) to check whether the test passes locally.","commit_id":"98b3a57924eee310562647a57d7c223df1f274f7"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fa966f92f2af7ec12c88a9c4b62913ef21d0976d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5328365c_991245c6","updated":"2026-09-18 16:01:17.000000000","message":"Hey Eduardo, thanks for helping with this. I added an improvement suggestion in line","commit_id":"28f0021b705d5e167bd35bc654156a26162445f9"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"9360b383e8f3fb6416d608e83a8a09bfaa97b204","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"d4e608db_f7a8bfad","updated":"2026-09-23 15:02:06.000000000","message":"Thanks, this is correct and the only user of `only_quotas\u003dFalse` was the\ntest. One more step would finish the cleanup though: after this change\n`quota_destroy_all_by_project` and `quota_destroy_by_project` do exactly\nthe same thing, and the `\"destroy_all\"` name is now misleading. Since\n`cinder/quota.py` and `cinder/api/contrib/quotas.py` both already call\n`quota_destroy_by_project`, I\u0027d move the body (with the `wrap_db_retry` and\n`main_context_manager.writer` decorators) into `quota_destroy_by_project`\nand drop `quota_destroy_all_by_project` entirely.\n\nThat also lets you delete `test_quota_destroy_sqlalchemy_all_by_project_`,\nwhich is now a copy of `test_quota_destroy_by_project`, and whose\ncomments (\"Destroy all quotas\", \"Check that all quotas have been\ndeleted\") no longer match what it asserts.\n\nNit on the commit message: \"the TODO above\" has no referent outside the\nsource file. Something like \"Remove the unused `only_quotas\u003dFalse` path\nfrom `quota_destroy_all_by_project`, per Stephen Finucane\u0027s TODO\" reads\nbetter in git log.","commit_id":"d4a2cd97a7c0481cac616047f53e1fd8fcbc047c"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"b6be136ba9dce9a9d20589b60e932600c44e7a86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2a1dfeb2_5058cd50","in_reply_to":"d4e608db_f7a8bfad","updated":"2026-09-24 00:10:35.000000000","message":"Thanks for the review, I really appreciate it. As you pointed out, completing the cleanup indeed required dropping quota_destroy_all_by_project(), so I removed it from both api.py and the tests. As requested, I also updated the commit message and added some extra details to help future reviewers understand what was done.","commit_id":"d4a2cd97a7c0481cac616047f53e1fd8fcbc047c"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"32ce91759407e0fd5bc228e6571a45bbd97bc623","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7b4c5af0_d05a370c","updated":"2026-10-02 15:40:29.000000000","message":"@Eduardo you are correct, this patch does not leave us any worse off than we are now.","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@everpuredata.com","username":"sdodsley"},"change_message_id":"ed0323f6507e744e7a39dc617376e1e78505ff65","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e70a2cad_017c274a","updated":"2026-09-24 00:10:56.000000000","message":"Looking good","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"},{"author":{"_account_id":35075,"name":"Alexander Deiter","email":"adeiter@infinidat.com","username":"adeiter"},"change_message_id":"283cd3cc656f71d91be3814ba4f959566d92b310","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"98399796_76e8e0d4","updated":"2026-10-02 14:51:37.000000000","message":"Looks good to me - thank you!","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"1a0a9cb252d4f9fb2b90a206c792218eb03285dc","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8193c5d8_d4eccdb0","updated":"2026-10-02 12:35:48.000000000","message":"You are correct that this code path is not being used, but before we merge this, could someone verify that the QuotaUsages and Reservations associated with the project_id are being deleted *somewhere*?  I realize that we aren\u0027t currently deleting them from quota_destroy_by_project, but hopefully we are deleting them somewhere.","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"4e71093b16ebb27054be0d8f7e6bd665f97ac8ce","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"0d7713d7_b7f0fdd6","updated":"2026-09-24 12:22:52.000000000","message":"recheck","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"2fcb2d87270d21ef44121453cdb3dd7fded38361","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"7e26a34b_c7b92909","in_reply_to":"1cf1aaae_0b6b51b3","updated":"2026-10-02 15:22:17.000000000","message":"QuotaUsage and Reservation rows are not deleted by project_id on this\npath, and no other caller does that either from what i see from code. The only such\ndelete was the only_quotas\u003dFalse branch, whose only caller was from \ntest_quota_destroy_sqlalchemy_all_by_project_.\nReservation rows are soft-deleted per uuid in reservation_commit\n(cinder/db/api.py:1861), reservation_rollback (:1886), and\nreservation_expire (:1924 on this patch), which the scheduler runs\nfrom _clean_expired_reservation. cinder-manage quota sync rewrites\nin_use and reserved on the existing QuotaUsage row; it does not delete\nit. DELETE /os-quota-sets only soft-deletes quotas rows so the project\nlimit falls back to the class or deployment default.","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"264d92ecf4ca59001c2f377090a53101c0dd6868","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1cf1aaae_0b6b51b3","in_reply_to":"8193c5d8_d4eccdb0","updated":"2026-10-02 13:43:41.000000000","message":"I searched around for their deletion by project and couldn\u0027t find anything. But they weren\u0027t being deleted before either, because as far as I looked, the only function that reached them required only_quotas\u003dFalse, which never actually happened, the only function that uses only_quotas calls it with only_quotas\u003dTrue","commit_id":"77937008681d0c9227b489b1f18f9488f949dd30"}],"cinder/db/api.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5b6dd76279fbdf0f8a508325852fde9f4ff7352e","unresolved":true,"context_lines":[{"line_number":1898,"context_line":"@require_context"},{"line_number":1899,"context_line":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)"},{"line_number":1900,"context_line":"@main_context_manager.writer"},{"line_number":1901,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."}],"source_content_type":"text/x-python","patch_set":2,"id":"b23dcba9_ff3aa825","line":1901,"range":{"start_line":1901,"start_character":42,"end_line":1901,"end_character":52},"updated":"2026-09-14 15:33:56.000000000","message":"You should also update quota_destroy_by_project . Also, that method expects only_quotas\u003dTrue, which is broken by the current change.","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"373b1e0c6346fa639100c2a703ab4b532fb3dee5","unresolved":false,"context_lines":[{"line_number":1898,"context_line":"@require_context"},{"line_number":1899,"context_line":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)"},{"line_number":1900,"context_line":"@main_context_manager.writer"},{"line_number":1901,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."}],"source_content_type":"text/x-python","patch_set":2,"id":"1dbcae94_fe3deba3","line":1901,"range":{"start_line":1901,"start_character":42,"end_line":1901,"end_character":52},"in_reply_to":"0b2908de_f367c751","updated":"2026-09-16 13:50:48.000000000","message":"The current update looks correct.","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"8e5a46ea3d1c65cac57adfe770405e4b4cdaad30","unresolved":false,"context_lines":[{"line_number":1898,"context_line":"@require_context"},{"line_number":1899,"context_line":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)"},{"line_number":1900,"context_line":"@main_context_manager.writer"},{"line_number":1901,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."}],"source_content_type":"text/x-python","patch_set":2,"id":"0b2908de_f367c751","line":1901,"range":{"start_line":1901,"start_character":42,"end_line":1901,"end_character":52},"in_reply_to":"122408ac_e2a681fe","updated":"2026-09-15 19:02:43.000000000","message":"In this case, I wouldn\u0027t need to use the variable validating as true, right? Since there would only be the valid path, I can delete the if and everything that comes after it, because the if was used for an early return, and whatever came after the if was the false path.","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"23b5e9ac7ecc08ae962e209e789e2eb9be881bf4","unresolved":true,"context_lines":[{"line_number":1898,"context_line":"@require_context"},{"line_number":1899,"context_line":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)"},{"line_number":1900,"context_line":"@main_context_manager.writer"},{"line_number":1901,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."}],"source_content_type":"text/x-python","patch_set":2,"id":"122408ac_e2a681fe","line":1901,"range":{"start_line":1901,"start_character":42,"end_line":1901,"end_character":52},"in_reply_to":"b23dcba9_ff3aa825","updated":"2026-09-14 18:01:55.000000000","message":"You are still removing the path for only_quotas\u003dTrue, not only_quotas\u003dFalse.","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5b6dd76279fbdf0f8a508325852fde9f4ff7352e","unresolved":true,"context_lines":[{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    :param context: The request context, for access checks."},{"line_number":1908,"context_line":"    :param project_id: The ID of the project being deleted."},{"line_number":1909,"context_line":"    :param only_quotas: Only delete limit quotas, leave other types intact."},{"line_number":1910,"context_line":"    \"\"\""},{"line_number":1911,"context_line":"    model_query(context, models.Quota).filter_by(project_id\u003dproject_id).update("},{"line_number":1912,"context_line":"        models.Quota.delete_values()"}],"source_content_type":"text/x-python","patch_set":2,"id":"c3cbc32e_b94f01df","line":1909,"range":{"start_line":1909,"start_character":11,"end_line":1909,"end_character":22},"updated":"2026-09-14 15:33:56.000000000","message":"this should be updated","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"8e5a46ea3d1c65cac57adfe770405e4b4cdaad30","unresolved":false,"context_lines":[{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    :param context: The request context, for access checks."},{"line_number":1908,"context_line":"    :param project_id: The ID of the project being deleted."},{"line_number":1909,"context_line":"    :param only_quotas: Only delete limit quotas, leave other types intact."},{"line_number":1910,"context_line":"    \"\"\""},{"line_number":1911,"context_line":"    model_query(context, models.Quota).filter_by(project_id\u003dproject_id).update("},{"line_number":1912,"context_line":"        models.Quota.delete_values()"}],"source_content_type":"text/x-python","patch_set":2,"id":"2d96bb02_0ca968bb","line":1909,"range":{"start_line":1909,"start_character":11,"end_line":1909,"end_character":22},"in_reply_to":"c3cbc32e_b94f01df","updated":"2026-09-15 19:02:43.000000000","message":"Done","commit_id":"dd5c4e0c7bf3b32e071838a49272d0299c896305"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"fa966f92f2af7ec12c88a9c4b62913ef21d0976d","unresolved":true,"context_lines":[{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."},{"line_number":1905,"context_line":"    Optionally can only remove limit quotas and leave other types as they are."},{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    :param context: The request context, for access checks."},{"line_number":1908,"context_line":"    :param project_id: The ID of the project being deleted."}],"source_content_type":"text/x-python","patch_set":6,"id":"99c1b5ba_7f59725a","line":1905,"range":{"start_line":1905,"start_character":4,"end_line":1905,"end_character":78},"updated":"2026-09-18 16:01:17.000000000","message":"Remove this line","commit_id":"28f0021b705d5e167bd35bc654156a26162445f9"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"2b9cbb25b82e569c5724c32f93e99bf52fd0bd3a","unresolved":false,"context_lines":[{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."},{"line_number":1905,"context_line":"    Optionally can only remove limit quotas and leave other types as they are."},{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    :param context: The request context, for access checks."},{"line_number":1908,"context_line":"    :param project_id: The ID of the project being deleted."}],"source_content_type":"text/x-python","patch_set":6,"id":"9ff00627_4b7be98c","line":1905,"range":{"start_line":1905,"start_character":4,"end_line":1905,"end_character":78},"in_reply_to":"99c1b5ba_7f59725a","updated":"2026-09-18 17:31:33.000000000","message":"Done","commit_id":"28f0021b705d5e167bd35bc654156a26162445f9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f5937edd6aeee27187066aaec8180b7ba0f223ea","unresolved":false,"context_lines":[{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."},{"line_number":1905,"context_line":"    Optionally can only remove limit quotas and leave other types as they are."},{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    :param context: The request context, for access checks."},{"line_number":1908,"context_line":"    :param project_id: The ID of the project being deleted."}],"source_content_type":"text/x-python","patch_set":6,"id":"9f38592b_f28d1c03","line":1905,"range":{"start_line":1905,"start_character":4,"end_line":1905,"end_character":78},"in_reply_to":"9ff00627_4b7be98c","updated":"2026-09-18 17:48:59.000000000","message":"Good catch, and I think we also need to remove a wider part. Please my suggestion in a different comment.","commit_id":"28f0021b705d5e167bd35bc654156a26162445f9"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f5937edd6aeee27187066aaec8180b7ba0f223ea","unresolved":true,"context_lines":[{"line_number":1899,"context_line":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)"},{"line_number":1900,"context_line":"@main_context_manager.writer"},{"line_number":1901,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."},{"line_number":1905,"context_line":""},{"line_number":1906,"context_line":"    :param context: The request context, for access checks."},{"line_number":1907,"context_line":"    :param project_id: The ID of the project being deleted."}],"source_content_type":"text/x-python","patch_set":7,"id":"e6edeafa_8207a9d4","line":1904,"range":{"start_line":1902,"start_character":4,"end_line":1904,"end_character":68},"updated":"2026-09-18 17:48:59.000000000","message":"```suggestion\n    \"\"\"Destroy quotas associated with a project.\n```","commit_id":"bac97ca880cdcc2078e833553e6073e8df9189b5"},{"author":{"_account_id":38797,"name":"Eduardo Henrique Lima de Morais","display_name":"Eduardo Morais","email":"eduardo.henrique.lima.morais@gmail.com","username":"Eduardo-Morais"},"change_message_id":"a5f9186ad4a952f8bcd95e506cd4ce1768754449","unresolved":false,"context_lines":[{"line_number":1899,"context_line":"@oslo_db_api.wrap_db_retry(max_retries\u003d5, retry_on_deadlock\u003dTrue)"},{"line_number":1900,"context_line":"@main_context_manager.writer"},{"line_number":1901,"context_line":"def quota_destroy_all_by_project(context, project_id):"},{"line_number":1902,"context_line":"    \"\"\"Destroy all quotas associated with a project."},{"line_number":1903,"context_line":""},{"line_number":1904,"context_line":"    This includes limit quotas, usage quotas and reservation quotas."},{"line_number":1905,"context_line":""},{"line_number":1906,"context_line":"    :param context: The request context, for access checks."},{"line_number":1907,"context_line":"    :param project_id: The ID of the project being deleted."}],"source_content_type":"text/x-python","patch_set":7,"id":"f67c8331_ce52237d","line":1904,"range":{"start_line":1902,"start_character":4,"end_line":1904,"end_character":68},"in_reply_to":"e6edeafa_8207a9d4","updated":"2026-09-18 18:37:25.000000000","message":"Done","commit_id":"bac97ca880cdcc2078e833553e6073e8df9189b5"}]}
