)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"53e7e708c86a7aca27420968b4fdf76e088c58a2","unresolved":true,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This makes us enforce a quota on the amount of data a user has in"},{"line_number":10,"context_line":"staging."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Related to blueprint glance-unified-quotas"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I3cca4e589adc0aec138e5933c311aefd69ccee51"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"6efaae6b_17868ad8","line":12,"range":{"start_line":11,"start_character":0,"end_line":12,"end_character":10},"updated":"2021-06-04 15:50:27.000000000","message":"May be change to Partially-Implements to be more precise.","commit_id":"7e069a48322328558ca8eb31fea739ce9d02d3a3"}],"glance/api/v2/image_data.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"76c147a87fca3f8d90c91223672e07eba9e1534f","unresolved":true,"context_lines":[{"line_number":309,"context_line":"    @utils.mutating"},{"line_number":310,"context_line":"    def stage(self, req, image_id, data, size):"},{"line_number":311,"context_line":"        try:"},{"line_number":312,"context_line":"            ks_quota.enforce_image_staging_total(req.context,"},{"line_number":313,"context_line":"                                                 req.context.owner)"},{"line_number":314,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":315,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge(explanation\u003dstr(e),"},{"line_number":316,"context_line":"                                                      request\u003dreq)"}],"source_content_type":"text/x-python","patch_set":4,"id":"b189fe38_f5dd0843","line":313,"range":{"start_line":312,"start_character":12,"end_line":313,"end_character":67},"updated":"2021-05-10 12:56:36.000000000","message":"Staging is used in web-download and copy plugins as well, so need to enforce this quota there as well.","commit_id":"1d82edf227ee0e7092f093debac0d89f457bc333"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4a41d3b7d5707184c55db55ed7501dba85672fda","unresolved":true,"context_lines":[{"line_number":309,"context_line":"    @utils.mutating"},{"line_number":310,"context_line":"    def stage(self, req, image_id, data, size):"},{"line_number":311,"context_line":"        try:"},{"line_number":312,"context_line":"            ks_quota.enforce_image_staging_total(req.context,"},{"line_number":313,"context_line":"                                                 req.context.owner)"},{"line_number":314,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":315,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge(explanation\u003dstr(e),"},{"line_number":316,"context_line":"                                                      request\u003dreq)"}],"source_content_type":"text/x-python","patch_set":4,"id":"604db9e7_061bd095","line":313,"range":{"start_line":312,"start_character":12,"end_line":313,"end_character":67},"in_reply_to":"b189fe38_f5dd0843","updated":"2021-05-10 13:32:20.000000000","message":"Ack, good call, thanks.","commit_id":"1d82edf227ee0e7092f093debac0d89f457bc333"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"53e7e708c86a7aca27420968b4fdf76e088c58a2","unresolved":true,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    @utils.mutating"},{"line_number":310,"context_line":"    def stage(self, req, image_id, data, size):"},{"line_number":311,"context_line":"        try:"},{"line_number":312,"context_line":"            ks_quota.enforce_image_staging_total(req.context,"},{"line_number":313,"context_line":"                                                 req.context.owner)"},{"line_number":314,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":315,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge(explanation\u003dstr(e),"},{"line_number":316,"context_line":"                                                      request\u003dreq)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        image_repo \u003d self.gateway.get_repo(req.context)"},{"line_number":319,"context_line":"        image \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"ff8337d5_91e29efe","line":316,"range":{"start_line":311,"start_character":8,"end_line":316,"end_character":66},"updated":"2021-06-04 15:50:27.000000000","message":"Similarly this needs to be enforced for web-download and copy-image import plugins where staging is done in respective plugin.","commit_id":"7e069a48322328558ca8eb31fea739ce9d02d3a3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"528ff7d2e151f028a2fc019724083d9796c72c77","unresolved":true,"context_lines":[{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    @utils.mutating"},{"line_number":310,"context_line":"    def stage(self, req, image_id, data, size):"},{"line_number":311,"context_line":"        try:"},{"line_number":312,"context_line":"            ks_quota.enforce_image_staging_total(req.context,"},{"line_number":313,"context_line":"                                                 req.context.owner)"},{"line_number":314,"context_line":"        except exception.LimitExceeded as e:"},{"line_number":315,"context_line":"            raise webob.exc.HTTPRequestEntityTooLarge(explanation\u003dstr(e),"},{"line_number":316,"context_line":"                                                      request\u003dreq)"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        image_repo \u003d self.gateway.get_repo(req.context)"},{"line_number":319,"context_line":"        image \u003d None"}],"source_content_type":"text/x-python","patch_set":8,"id":"bd8acb99_bc58c2af","line":316,"range":{"start_line":311,"start_character":8,"end_line":316,"end_character":66},"in_reply_to":"ff8337d5_91e29efe","updated":"2021-06-04 16:54:51.000000000","message":"Yeah, thanks, I forgot to bring that over from the spec discussion.","commit_id":"7e069a48322328558ca8eb31fea739ce9d02d3a3"}],"glance/async_/flows/api_image_import.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d73c42c95c19a15a622da330b77d42b0577fd804","unresolved":true,"context_lines":[{"line_number":754,"context_line":"            if task is None:"},{"line_number":755,"context_line":"                LOG.error(_LE(\u0027Failed to find task %r to update after \u0027"},{"line_number":756,"context_line":"                              \u0027quota failure\u0027), task_id)"},{"line_number":757,"context_line":"            task.fail(str(e))"},{"line_number":758,"context_line":"            task_repo.save(task)"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"def get_flow(**kwargs):"}],"source_content_type":"text/x-python","patch_set":11,"id":"40ec9f83_ec033abd","line":758,"range":{"start_line":757,"start_character":12,"end_line":758,"end_character":32},"updated":"2021-06-08 14:25:09.000000000","message":"Do you want to raise/return after line 756?, because if task is None then it will fail at line 757.","commit_id":"f1c216c0281bdf9826b08e95e5f5acea3a006f44"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"438ce23b3c946fce460a8e238736a0503808cdad","unresolved":true,"context_lines":[{"line_number":754,"context_line":"            if task is None:"},{"line_number":755,"context_line":"                LOG.error(_LE(\u0027Failed to find task %r to update after \u0027"},{"line_number":756,"context_line":"                              \u0027quota failure\u0027), task_id)"},{"line_number":757,"context_line":"            task.fail(str(e))"},{"line_number":758,"context_line":"            task_repo.save(task)"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"def get_flow(**kwargs):"}],"source_content_type":"text/x-python","patch_set":11,"id":"4ca7c16d_3b9a83be","line":758,"range":{"start_line":757,"start_character":12,"end_line":758,"end_character":32},"in_reply_to":"40ec9f83_ec033abd","updated":"2021-06-08 14:32:33.000000000","message":"Ah, I\u0027ll just put this in else. Good spot, thanks.","commit_id":"f1c216c0281bdf9826b08e95e5f5acea3a006f44"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"33fd09b524c8277692ce373a127967f77554e148","unresolved":false,"context_lines":[{"line_number":754,"context_line":"            if task is None:"},{"line_number":755,"context_line":"                LOG.error(_LE(\u0027Failed to find task %r to update after \u0027"},{"line_number":756,"context_line":"                              \u0027quota failure\u0027), task_id)"},{"line_number":757,"context_line":"            task.fail(str(e))"},{"line_number":758,"context_line":"            task_repo.save(task)"},{"line_number":759,"context_line":""},{"line_number":760,"context_line":""},{"line_number":761,"context_line":"def get_flow(**kwargs):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3832d284_7f5b050a","line":758,"range":{"start_line":757,"start_character":12,"end_line":758,"end_character":32},"in_reply_to":"4ca7c16d_3b9a83be","updated":"2021-06-08 15:23:11.000000000","message":"Done","commit_id":"f1c216c0281bdf9826b08e95e5f5acea3a006f44"}],"glance/tests/functional/v2/test_usage.py~":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"d73c42c95c19a15a622da330b77d42b0577fd804","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ee8420e1_67fac96c","line":15,"updated":"2021-06-08 14:25:09.000000000","message":"I guess this was added by mistake?","commit_id":"f1c216c0281bdf9826b08e95e5f5acea3a006f44"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"33fd09b524c8277692ce373a127967f77554e148","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"2e8587e9_5091ec91","line":15,"in_reply_to":"6c186236_b1a8356b","updated":"2021-06-08 15:23:11.000000000","message":"Done","commit_id":"f1c216c0281bdf9826b08e95e5f5acea3a006f44"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"438ce23b3c946fce460a8e238736a0503808cdad","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":11,"id":"6c186236_b1a8356b","line":15,"in_reply_to":"ee8420e1_67fac96c","updated":"2021-06-08 14:32:33.000000000","message":"Yup, thanks.","commit_id":"f1c216c0281bdf9826b08e95e5f5acea3a006f44"}]}
