)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"69be79a4_3cfd68b3","updated":"2025-11-16 10:15:48.000000000","message":"Hello. I\u0027m sharing feedback regarding ProjectQuotas. This was a collaborative effort with `jbeen`, who submitted the PR below. It appears to have been merged recently.\n\nhttps://review.opendev.org/c/openstack/openstacksdk/+/959939\n\nIn that case, I plan to wrap up ProjectQuotas with the above PR and continue working on Quotas. Is it okay for me to proceed this way?","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5e9983a4_6b519580","updated":"2025-11-12 12:33:12.000000000","message":"There\u0027s a lot of work to do here yet. Project quotas in particular look incomplete. I would encourage you to look at other resources and their proxy implementations for inspiration.","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":23279,"name":"Seongsoo Cho","display_name":"Seongsoo Cho","email":"ppiyakk2@printf.kr","username":"seongsoo.cho"},"change_message_id":"d19d1bb89dcb942a84c59ceea3719caa5597ecea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"09a20ac1_09b95759","updated":"2026-05-19 14:43:41.000000000","message":"This patch was originally developed as part of the 2025 Korea Contribution Mentoring Program.\n\nSince there have been no updates for several months after the patch was proposed, a mentee from the 2026 program will continue working on it. (from may 2026)","commit_id":"60912cf6dc01017f2da285196d478c93585760c7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9126d3023924b1962a49f084c9ff0f399d388c8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"f5e31b73_ad8d13d7","updated":"2026-05-21 11:36:06.000000000","message":"-1 is for the the docs nit. It would also be helpful to add a release note (you can use the `reno` tool for this). Finally, I have a small request to add type hints. Otherwise, this looks good to go","commit_id":"f69957b97849b06b87d391f9ec353c1616650dae"},{"author":{"_account_id":39064,"name":"Heo Gyeom","display_name":"Heo Gyeom","email":"heogyeom80@gmail.com","username":"Heo.Gyeom"},"change_message_id":"f73cda710d7e720130e391a248e7a96f6d838c1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1b36c581_f8cf74b8","updated":"2026-05-21 10:49:26.000000000","message":"Picking up this stalled PR. Summary of changes in PS7.\n\nContext:\n- PR inactive since Dec 2025. Original author\u0027s question about\n  scoping this PR to Quota only (PS3 comment) remains open.\n- ProjectQuota resource was merged separately via\n  https://review.opendev.org/c/openstack/openstacksdk/+/959939\n- PS5 contained out-of-scope ProjectQuota modifications that\n  conflicted with master\u0027s improved implementations.\n\nChanges in PS7:\n- Scoped PR to Quota resource only, per original author\u0027s proposal.\n- Removed out-of-scope ProjectQuota modifications from _proxy.py\n  and test_proxy.py that were overwriting master\u0027s improved\n  implementations (@renamed_param decorators, Resource._get_id).\n- Fixed PEP 8 (E501) violations in quota.py.\n- Added get_quota() proxy method and TestKeyManagerQuota unit test.\n- All local and CI checks pass (pep8, py311-313, docs).\n\nOriginal author credit preserved via Signed-off-by in commit message.\n\nHappy to revise if a different scope is preferred.","commit_id":"f69957b97849b06b87d391f9ec353c1616650dae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b7c6c74e88490cc631c3c2667badfe5df80cc9dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"92b06407_933cfaf3","updated":"2026-05-25 14:31:27.000000000","message":"Hurrah! 🎉","commit_id":"7f5f8509ef115b02a71f3c010c354192d51181d6"},{"author":{"_account_id":39064,"name":"Heo Gyeom","display_name":"Heo Gyeom","email":"heogyeom80@gmail.com","username":"Heo.Gyeom"},"change_message_id":"ea67032c598a17f3b6dbbb3e9b4da897cd1b9684","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"15aaf4de_623508c9","updated":"2026-05-22 05:13:28.000000000","message":"PS8 addresses the review feedback:\n\nFixed underline lengths in quota.rst to match title text.\n\nAdded type hint to get_quota() proxy method.\n\nAdded release note via reno.\n\nAll local checks pass (pep8, py311, docs). Thank you for your review.","commit_id":"7f5f8509ef115b02a71f3c010c354192d51181d6"}],"doc/source/user/resources/key_manager/v1/quota.rst":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":1,"context_line":"openstack.key_manager.v1.quota"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":".. automodule:: openstack.key_manager.v1.quota"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The Quota Class"},{"line_number":7,"context_line":"----------------------"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The ``Quota`` class inherits from :class:`~openstack.resource.Resource`."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"caea8450_81488be4","line":7,"range":{"start_line":1,"start_character":0,"end_line":7,"end_character":22},"updated":"2025-11-12 12:33:12.000000000","message":"underlines should match the length of the title\n\n```suggestion\nopenstack.key_manager.v1.quota\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n.. automodule:: openstack.key_manager.v1.quota\n\nThe Quota Class\n---------------\n```","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":1,"context_line":"openstack.key_manager.v1.quota"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":".. automodule:: openstack.key_manager.v1.quota"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The Quota Class"},{"line_number":7,"context_line":"----------------------"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The ``Quota`` class inherits from :class:`~openstack.resource.Resource`."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"e15b09f2_db1b07f0","line":7,"range":{"start_line":1,"start_character":0,"end_line":7,"end_character":22},"in_reply_to":"caea8450_81488be4","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9126d3023924b1962a49f084c9ff0f399d388c8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"openstack.key_manager.v1.quota"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":".. automodule:: openstack.key_manager.v1.quota"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The Quota Class"},{"line_number":7,"context_line":"----------------------"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The ``Quota`` class inherits from :class:`~openstack.resource.Resource`."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"06e33758_5f27a2ed","line":7,"range":{"start_line":1,"start_character":0,"end_line":7,"end_character":22},"updated":"2026-05-21 11:36:06.000000000","message":"Underlines should match the length of the title\n\n```suggestion\nopenstack.key_manager.v1.quota\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n.. automodule:: openstack.key_manager.v1.quota\n\nThe Quota Class\n---------------\n```","commit_id":"f69957b97849b06b87d391f9ec353c1616650dae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b7c6c74e88490cc631c3c2667badfe5df80cc9dc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"openstack.key_manager.v1.quota"},{"line_number":2,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":".. automodule:: openstack.key_manager.v1.quota"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"The Quota Class"},{"line_number":7,"context_line":"----------------------"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The ``Quota`` class inherits from :class:`~openstack.resource.Resource`."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"8a582967_ecdb8b39","line":7,"range":{"start_line":1,"start_character":0,"end_line":7,"end_character":22},"in_reply_to":"06e33758_5f27a2ed","updated":"2026-05-25 14:31:27.000000000","message":"Done","commit_id":"f69957b97849b06b87d391f9ec353c1616650dae"}],"openstack/key_manager/v1/_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":315,"context_line":"            base_path\u003d\u0027/secret-stores/preferred\u0027,"},{"line_number":316,"context_line":"        )"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Utilities \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def get_project_quota(self, project_quota\u003dNone):"},{"line_number":321,"context_line":"        \"\"\"Get project quota(s)"}],"source_content_type":"text/x-python","patch_set":3,"id":"66e094e8_623ef0dc","line":318,"updated":"2025-11-12 12:33:12.000000000","message":"You need a new section comment\n\n```suggestion\n    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Quotas \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n```","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":315,"context_line":"            base_path\u003d\u0027/secret-stores/preferred\u0027,"},{"line_number":316,"context_line":"        )"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Utilities \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":319,"context_line":""},{"line_number":320,"context_line":"    def get_project_quota(self, project_quota\u003dNone):"},{"line_number":321,"context_line":"        \"\"\"Get project quota(s)"}],"source_content_type":"text/x-python","patch_set":3,"id":"e6944de3_97811d73","line":318,"in_reply_to":"66e094e8_623ef0dc","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        :param project_quota: Optional. The value can be the ID of a project"},{"line_number":324,"context_line":"            quota or a :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"},{"line_number":325,"context_line":"            instance. If None, get list of all project quotas."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        :returns: One :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"},{"line_number":328,"context_line":"        :raises: :class:`~openstack.exceptions.NotFoundException`"}],"source_content_type":"text/x-python","patch_set":3,"id":"15475358_0f362275","line":325,"updated":"2025-11-12 12:33:12.000000000","message":"That\u0027s not how these are supposed to work. Instead, you should provide a second method, `project_quotas`, that retrieves all project quotas e.g.\n\n```\ndef project_quotas(self):\n    ...\n    \ndef get_project_quota(self, project_quota):\n    ...\n```\n\nThe `project_quotas` method should use `self._list`, not `self._get`.","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        :param project_quota: Optional. The value can be the ID of a project"},{"line_number":324,"context_line":"            quota or a :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"},{"line_number":325,"context_line":"            instance. If None, get list of all project quotas."},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        :returns: One :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"},{"line_number":328,"context_line":"        :raises: :class:`~openstack.exceptions.NotFoundException`"}],"source_content_type":"text/x-python","patch_set":3,"id":"d7622d99_da4c9a0b","line":325,"in_reply_to":"15475358_0f362275","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":342,"context_line":"        \"\"\""},{"line_number":343,"context_line":"        return self._get(_quota.Quota, requires_id\u003dFalse)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def wait_for_status("},{"line_number":346,"context_line":"        self,"},{"line_number":347,"context_line":"        res: resource.ResourceT,"},{"line_number":348,"context_line":"        status: str,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1bacebc4_5568a734","line":345,"updated":"2025-11-12 12:33:12.000000000","message":"```suggestion\n\n    # \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d Utilities \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n    def wait_for_status(\n```","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        \"\"\""},{"line_number":343,"context_line":"        return self._get(_quota.Quota, requires_id\u003dFalse)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"    def wait_for_status("},{"line_number":346,"context_line":"        self,"},{"line_number":347,"context_line":"        res: resource.ResourceT,"},{"line_number":348,"context_line":"        status: str,"}],"source_content_type":"text/x-python","patch_set":3,"id":"c0a240c7_196b16e4","line":345,"in_reply_to":"1bacebc4_5568a734","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":35057,"name":"JaeSeong-Shin","email":"rornfl916@gmail.com","username":"JaeSeong"},"change_message_id":"c5d826c2d9ed7215b46d6c5d0832538fddbd2770","unresolved":true,"context_lines":[{"line_number":338,"context_line":"        \"\"\"Get project quota(s)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        :param project_quota: Optional. The value can be the ID of a project"},{"line_number":341,"context_line":"            quota or a :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"},{"line_number":342,"context_line":"            instance. If None, get list of all project quotas."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        :returns: One :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"}],"source_content_type":"text/x-python","patch_set":5,"id":"98953ebc_d8db4eaf","line":341,"range":{"start_line":341,"start_character":71,"end_line":341,"end_character":83},"updated":"2025-12-01 07:37:28.000000000","message":"Please write these items, including this line, in compliance with PEP 8 format.\nAdditional lines that need to be modified can be found in \"https://zuul.opendev.org/t/openstack/build/53bb16d96c8e40fea36436934ef50d27\".","commit_id":"60912cf6dc01017f2da285196d478c93585760c7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9126d3023924b1962a49f084c9ff0f399d388c8","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        \"\"\"Get project quota(s)"},{"line_number":339,"context_line":""},{"line_number":340,"context_line":"        :param project_quota: Optional. The value can be the ID of a project"},{"line_number":341,"context_line":"            quota or a :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"},{"line_number":342,"context_line":"            instance. If None, get list of all project quotas."},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        :returns: One :class:`~openstack.key_manager.v1.project_quota.ProjectQuota`"}],"source_content_type":"text/x-python","patch_set":5,"id":"95abe4c7_0b078f21","line":341,"range":{"start_line":341,"start_character":71,"end_line":341,"end_character":83},"in_reply_to":"98953ebc_d8db4eaf","updated":"2026-05-21 11:36:06.000000000","message":"Done","commit_id":"60912cf6dc01017f2da285196d478c93585760c7"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9126d3023924b1962a49f084c9ff0f399d388c8","unresolved":true,"context_lines":[{"line_number":419,"context_line":"            **attrs,"},{"line_number":420,"context_line":"        )"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"    def get_quota(self):"},{"line_number":423,"context_line":"        \"\"\"Get the effective quotas for the current project"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        :returns: One :class:`~openstack.key_manager.v1.quota.Quota`"}],"source_content_type":"text/x-python","patch_set":7,"id":"84a947ac_4b009942","line":422,"updated":"2026-05-21 11:36:06.000000000","message":"Could you add the type information here? It will save me the effort of adding it later.\n\n```suggestion\n    def get_quota(self) -\u003e _quota.Quota:\n```","commit_id":"f69957b97849b06b87d391f9ec353c1616650dae"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b7c6c74e88490cc631c3c2667badfe5df80cc9dc","unresolved":false,"context_lines":[{"line_number":419,"context_line":"            **attrs,"},{"line_number":420,"context_line":"        )"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"    def get_quota(self):"},{"line_number":423,"context_line":"        \"\"\"Get the effective quotas for the current project"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        :returns: One :class:`~openstack.key_manager.v1.quota.Quota`"}],"source_content_type":"text/x-python","patch_set":7,"id":"539350b1_3786d11a","line":422,"in_reply_to":"84a947ac_4b009942","updated":"2026-05-25 14:31:27.000000000","message":"Done","commit_id":"f69957b97849b06b87d391f9ec353c1616650dae"}],"openstack/key_manager/v1/project_quota.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":18,"context_line":"    resources_key \u003d \u0027project_quotas\u0027"},{"line_number":19,"context_line":"    base_path \u003d \u0027/project-quotas\u0027"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    # capabilities"},{"line_number":22,"context_line":"    allow_create \u003d True"},{"line_number":23,"context_line":"    allow_fetch \u003d True"},{"line_number":24,"context_line":"    allow_commit \u003d True"},{"line_number":25,"context_line":"    allow_delete \u003d True"},{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    # Properties"},{"line_number":29,"context_line":"    #: Contains the configured quota value of the requested project for the secret resource."}],"source_content_type":"text/x-python","patch_set":3,"id":"c8a6f862_6b92d835","line":26,"range":{"start_line":21,"start_character":18,"end_line":26,"end_character":21},"updated":"2025-11-12 12:33:12.000000000","message":"Are all these true? If so, why do we not have `create_project_quota`, `delete_project_quota` and `update_project_quota` proxy methods?","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    # Properties"},{"line_number":29,"context_line":"    #: Contains the configured quota value of the requested project for the secret resource."},{"line_number":30,"context_line":"    secrets \u003d resource.Body(\"secrets\")"},{"line_number":31,"context_line":"    #: Contains the configured quota value of the requested project for the orders resource."},{"line_number":32,"context_line":"    orders \u003d resource.Body(\"orders\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"48d06791_8782cc35","line":29,"updated":"2025-11-12 12:33:12.000000000","message":"Can you wrap these comments at \u003c\u003d 79 characters?","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    # Properties"},{"line_number":29,"context_line":"    #: Contains the configured quota value of the requested project for the secret resource."},{"line_number":30,"context_line":"    secrets \u003d resource.Body(\"secrets\")"},{"line_number":31,"context_line":"    #: Contains the configured quota value of the requested project for the orders resource."},{"line_number":32,"context_line":"    orders \u003d resource.Body(\"orders\")"}],"source_content_type":"text/x-python","patch_set":3,"id":"22bd40e4_5949d5d7","line":29,"in_reply_to":"48d06791_8782cc35","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"}],"openstack/tests/functional/key_manager/v1/test_quota.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"07f85b78_3722bbfe","line":1,"updated":"2025-11-12 12:33:12.000000000","message":"We need tests for project quotas also","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9126d3023924b1962a49f084c9ff0f399d388c8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"d85d77cf_101315b1","line":1,"in_reply_to":"07f85b78_3722bbfe","updated":"2026-05-21 11:36:06.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"}],"openstack/tests/unit/key_manager/v1/test_proxy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class TestKeyManagerProjectQuota(TestKeyManagerProxy):"},{"line_number":106,"context_line":"    def test_project_quota_get_all(self):"},{"line_number":107,"context_line":"        self.verify_get("},{"line_number":108,"context_line":"            self.proxy.get_project_quota,"},{"line_number":109,"context_line":"            project_quota.ProjectQuota,"}],"source_content_type":"text/x-python","patch_set":3,"id":"825ec6d3_5c427b91","line":106,"updated":"2025-11-12 12:33:12.000000000","message":"This test needs to be rewritten. It should be called `test_project_quotas` and should use `verify_list`, like the other list operations in this file.","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"class TestKeyManagerProjectQuota(TestKeyManagerProxy):"},{"line_number":106,"context_line":"    def test_project_quota_get_all(self):"},{"line_number":107,"context_line":"        self.verify_get("},{"line_number":108,"context_line":"            self.proxy.get_project_quota,"},{"line_number":109,"context_line":"            project_quota.ProjectQuota,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1740ab62_dc766d14","line":106,"in_reply_to":"825ec6d3_5c427b91","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":112,"context_line":"            expected_kwargs\u003d{\u0027requires_id\u0027: False},"},{"line_number":113,"context_line":"        )"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_project_quota_get_by_id(self):"},{"line_number":116,"context_line":"        self.verify_get("},{"line_number":117,"context_line":"            self.proxy.get_project_quota, project_quota.ProjectQuota"},{"line_number":118,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"7e26532e_7f235a1b","line":115,"updated":"2025-11-12 12:33:12.000000000","message":"```suggestion\n    def test_project_quota_get(self):\n```","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":38254,"name":"Mincheol Kang","display_name":"Mincheol Kang","email":"platanus.kr@gmail.com","username":"mincheolkang"},"change_message_id":"cbe16427a541f6a7cd0561c2221415d59b5e7c32","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            expected_kwargs\u003d{\u0027requires_id\u0027: False},"},{"line_number":113,"context_line":"        )"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def test_project_quota_get_by_id(self):"},{"line_number":116,"context_line":"        self.verify_get("},{"line_number":117,"context_line":"            self.proxy.get_project_quota, project_quota.ProjectQuota"},{"line_number":118,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":3,"id":"cd045605_c99d19d4","line":115,"in_reply_to":"7e26532e_7f235a1b","updated":"2025-11-16 10:15:48.000000000","message":"Done","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"}],"openstack/tests/unit/key_manager/v1/test_quota.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1a9e706a876656403ec6d22e19bf3fcf71bf5564","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"d780692a_5e9301df","line":1,"updated":"2025-11-12 12:33:12.000000000","message":"You need unit tests for project quotas also.","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b7c6c74e88490cc631c3c2667badfe5df80cc9dc","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"# not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"# a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":3,"id":"70308afd_bc94de31","line":1,"in_reply_to":"d780692a_5e9301df","updated":"2026-05-25 14:31:27.000000000","message":"No longer applicable","commit_id":"fbd4be1a906217228375defabf1022f9b8340289"}]}
