)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"8198ec2f380c509eec9a98f690a2bec306944748","unresolved":false,"context_lines":[{"line_number":11,"context_line":"\"limits\" api. Most of controller extensions authorize user\u0027s context"},{"line_number":12,"context_line":"by applying the function \"extensions.soft_extension_authorizer()\","},{"line_number":13,"context_line":"but \"UsedLimitsController\" applies \"extensions.extension_authorizer\""},{"line_number":14,"context_line":"and this may cause 403 Forbidden error."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Co-Authored-By: ZhuChunzhan \u003czhucz@cn.fujitsu.com\u003e"},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba15a1d1_76646ce4","line":14,"updated":"2015-09-22 14:43:43.000000000","message":"It would be helpful to put a brief statement explaining how you solved this issue.","commit_id":"7569ad8af08a5e74b36a326a0babe652abd2ef8b"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"9a6e2bf98e357b0e6302916a654986952ee7e31e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"\"soft_extension_authorizer\"."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Co-Authored-By: ZhuChunzhan \u003czhucz@cn.fujitsu.com\u003e"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Change-Id: I8a4163ca89236b35c2c6ba10bcd98f8c42ef9089"},{"line_number":22,"context_line":"Closes-Bug: #1497868"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a29b11f_3b5a9f84","line":20,"updated":"2015-10-19 10:26:08.000000000","message":"Please, add APIImpact flag","commit_id":"24da95dd426409e808521b7ec5e7422e88c0de5d"}],"cinder/api/contrib/used_limits.py":[{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"8198ec2f380c509eec9a98f690a2bec306944748","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    @wsgi.extends"},{"line_number":27,"context_line":"    def index(self, req, resp_obj):"},{"line_number":28,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":29,"context_line":"        if authorize(context):"},{"line_number":30,"context_line":"            quotas \u003d QUOTAS.get_project_quotas(context, context.project_id,"},{"line_number":31,"context_line":"                                               usages\u003dTrue)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_0b94eddf","line":29,"updated":"2015-09-22 14:43:43.000000000","message":"I think we will need a unit test here to test out this new if statement.","commit_id":"7569ad8af08a5e74b36a326a0babe652abd2ef8b"}],"cinder/tests/unit/api/contrib/test_used_limits.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"ea87193ecbe76354c969864303dd99172baaf69a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"            pass"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        # allow user to access used limits"},{"line_number":68,"context_line":"        self.stubs.Set(policy, \"enforce\", fake_policy_enforce_allowed)"},{"line_number":69,"context_line":"        self.controller.index(fake_req, res)"},{"line_number":70,"context_line":"        abs_limits \u003d res.obj[\u0027limits\u0027][\u0027absolute\u0027]"},{"line_number":71,"context_line":"        for used_limit, value in abs_limits.items():"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_d8dd7843","line":68,"updated":"2015-10-20 08:51:45.000000000","message":"Cinder is using mock.patch or mock.patch.object now and we are getting rid of stubs.set.","commit_id":"32fd15b32021ee0f4b35aa62a77761de53706b0c"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"ea87193ecbe76354c969864303dd99172baaf69a","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            },"},{"line_number":84,"context_line":"        }"},{"line_number":85,"context_line":"        res \u003d wsgi.ResponseObject(obj)"},{"line_number":86,"context_line":"        self.stubs.Set(policy, \"enforce\", fake_policy_enforce_unallowed)"},{"line_number":87,"context_line":"        self.controller.index(fake_req, res)"},{"line_number":88,"context_line":"        abs_limits \u003d res.obj[\u0027limits\u0027][\u0027absolute\u0027]"},{"line_number":89,"context_line":"        self.assertNotIn(\u0027totalVolumesUsed\u0027, abs_limits)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a29b11f_38d7cc24","line":86,"updated":"2015-10-20 08:51:45.000000000","message":"Cinder is using mock.patch or mock.patch.object now and we are getting rid of stubs.set.\nYou may rewrite the method test_used_limits.","commit_id":"32fd15b32021ee0f4b35aa62a77761de53706b0c"}]}
