)]}'
{"etc/policy.json":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"66dd4f77f178089a090399299d0f61aa80ba9d29","unresolved":false,"context_lines":[{"line_number":232,"context_line":"    \"get_log\": \"rule:admin_only\","},{"line_number":233,"context_line":"    \"get_quota\": \"rule:admin_only\","},{"line_number":234,"context_line":"    \"default_quota\": \"rule:admin_only\","},{"line_number":235,"context_line":"    \"delete_quota\": \"rule:admin_only\","},{"line_number":236,"context_line":"    \"update_quota\": \"rule:admin_only\""},{"line_number":237,"context_line":"}"}],"source_content_type":"application/json","patch_set":2,"id":"3f4b6375_e88ac0bc","line":235,"updated":"2017-11-06 08:49:16.000000000","message":"I dont agree with quota deletion. \nthe update-quota seems fine","commit_id":"0b5d9a8d5fd174b8cd919be4438658804b09a852"}],"neutron/extensions/quotasv2.py":[{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"66dd4f77f178089a090399299d0f61aa80ba9d29","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                                       \"to access quotas for another tenant\"))"},{"line_number":105,"context_line":"        return {self._resource_name: self._get_quotas(request, id)}"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def _check_admin(self, context,"},{"line_number":108,"context_line":"                     reason\u003d_(\"Only admin can view or configure quota\")):"},{"line_number":109,"context_line":"        if not context.is_admin:"},{"line_number":110,"context_line":"            raise n_exc.AdminRequired(reason\u003dreason)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_e87880c4","side":"PARENT","line":107,"range":{"start_line":107,"start_character":8,"end_line":107,"end_character":20},"updated":"2017-11-06 08:49:16.000000000","message":"You can add a check for admin_or_tenant so that the quotas can be accessed by specific tenants , like I did in https://review.openstack.org/#/c/505155/2/neutron/pecan_wsgi/controllers/quota.py.\n\nI am still not sure if the pecan controller quota is back for usage or not ( need to confirm it once with Neutron members).","commit_id":"3458173d5f4d291f24ed004e4b7b26250fd52757"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"d5e094eacd47d9a252f1409e9285836639e32a51","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                   policy_name,"},{"line_number":50,"context_line":"                   target\u003d{\u0027project_id\u0027: context.project_id,"},{"line_number":51,"context_line":"                           \u0027tenant_id\u0027: context.project_id},"},{"line_number":52,"context_line":"                   plugin\u003dNone)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class QuotaSetsController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_a1c075fa","line":52,"range":{"start_line":52,"start_character":25,"end_line":52,"end_character":26},"updated":"2018-12-11 05:37:34.000000000","message":"I would add \"might_not_exist\" \u003d true","commit_id":"1b1ab74853e86bc0e8796cd135832dc59467eae9"},{"author":{"_account_id":12932,"name":"Andrew Bogott","email":"andrewbogott@gmail.com","username":"Andrew"},"change_message_id":"0e35cf4601163ffad5e8a9ef4911e1d8e5c63847","unresolved":false,"context_lines":[{"line_number":49,"context_line":"                   policy_name,"},{"line_number":50,"context_line":"                   target\u003d{\u0027project_id\u0027: context.project_id,"},{"line_number":51,"context_line":"                           \u0027tenant_id\u0027: context.project_id},"},{"line_number":52,"context_line":"                   plugin\u003dNone)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"class QuotaSetsController(wsgi.Controller):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_e2d50149","line":52,"range":{"start_line":52,"start_character":25,"end_line":52,"end_character":26},"in_reply_to":"3f79a3b5_a1c075fa","updated":"2018-12-11 15:31:00.000000000","message":"Looks like \u0027might not exist\u0027 is an arg to check() but not to enforce() so we we would need to rearrange all this to support that.\n\n(Also, sending might_not_exist to check() would default to permissive, allowing anyone to modify any quota if the policy doesn\u0027t exist.  So that seems like the opposite of the default behavior we want.)","commit_id":"1b1ab74853e86bc0e8796cd135832dc59467eae9"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4cd1cb7285550a8bf6e9e0a8f0c5282d2348d39e","unresolved":false,"context_lines":[{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    def show(self, request, id):"},{"line_number":109,"context_line":"        if id !\u003d request.context.tenant_id:"},{"line_number":110,"context_line":"            context \u003d request.context"},{"line_number":111,"context_line":"            validate_policy(context, \"get_quota\")"},{"line_number":112,"context_line":"        return {self._resource_name: self._get_quotas(request, id)}"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"bf51134e_a776823e","line":110,"updated":"2020-07-22 17:19:26.000000000","message":"unnecessary, you can use \"request.context\" directly","commit_id":"ab105cc169915cc55b942a678fe8a5c544013480"}]}
