)]}'
{"glance/api/v1/images.py":[{"author":{"_account_id":4463,"name":"iccha-sethi","email":"iccha.sethi@rackspace.com","username":"iccha-sethi"},"change_message_id":"8797e9ead44c09b3e948b7295c560665fea4f2b7","unresolved":false,"context_lines":[{"line_number":824,"context_line":"        :param id: The opaque image identifier"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        :raises HttpBadRequest if image registry is invalid"},{"line_number":827,"context_line":"        :raises HttpNotFound if image or any chunk is not available"},{"line_number":828,"context_line":"        :raises HttpUnauthorized if image or any chunk is not"},{"line_number":829,"context_line":"                deleteable by the requesting user"},{"line_number":830,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F0fE%3D","line":827,"updated":"2013-04-21 23:49:29.000000000","message":"could you please add to the doc string when HTTPForbidden is raised","commit_id":"cd008483747ff6825131365efc60cd787c36c310"},{"author":{"_account_id":6662,"name":"James Li","email":"yueli.m@gmail.com","username":"james-li-3"},"change_message_id":"e9ba53b97735fef9e7a13ebfcc6aa39ef8eb73cd","unresolved":false,"context_lines":[{"line_number":824,"context_line":"        :param id: The opaque image identifier"},{"line_number":825,"context_line":""},{"line_number":826,"context_line":"        :raises HttpBadRequest if image registry is invalid"},{"line_number":827,"context_line":"        :raises HttpNotFound if image or any chunk is not available"},{"line_number":828,"context_line":"        :raises HttpUnauthorized if image or any chunk is not"},{"line_number":829,"context_line":"                deleteable by the requesting user"},{"line_number":830,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F0Z0%3D","line":827,"in_reply_to":"AAAAOn%2F%2F0fE%3D","updated":"2013-04-22 03:02:00.000000000","message":"ok.","commit_id":"cd008483747ff6825131365efc60cd787c36c310"},{"author":{"_account_id":4463,"name":"iccha-sethi","email":"iccha.sethi@rackspace.com","username":"iccha-sethi"},"change_message_id":"8797e9ead44c09b3e948b7295c560665fea4f2b7","unresolved":false,"context_lines":[{"line_number":838,"context_line":"                                request\u003dreq,"},{"line_number":839,"context_line":"                                content_type\u003d\"text/plain\")"},{"line_number":840,"context_line":""},{"line_number":841,"context_line":"        if image[\u0027status\u0027] \u003d\u003d \u0027deleted\u0027 or image[\u0027status\u0027] \u003d\u003d \u0027pending_delete\u0027:"},{"line_number":842,"context_line":"            msg \u003d (_(\"Forbidden to delete a %s image.\") % image[\u0027status\u0027])"},{"line_number":843,"context_line":"            LOG.debug(msg)"},{"line_number":844,"context_line":"            raise HTTPForbidden(explanation\u003dmsg, request\u003dreq,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F0eo%3D","line":841,"updated":"2013-04-21 23:49:29.000000000","message":"Also wondering if image[\u0027status\u0027] is deleted, shouldn\u0027t HTTPNotFound be raised?","commit_id":"cd008483747ff6825131365efc60cd787c36c310"},{"author":{"_account_id":4463,"name":"iccha-sethi","email":"iccha.sethi@rackspace.com","username":"iccha-sethi"},"change_message_id":"092cc6ed3389b1ce02b041460a2cfd0606ca5772","unresolved":false,"context_lines":[{"line_number":838,"context_line":"                                request\u003dreq,"},{"line_number":839,"context_line":"                                content_type\u003d\"text/plain\")"},{"line_number":840,"context_line":""},{"line_number":841,"context_line":"        if image[\u0027status\u0027] \u003d\u003d \u0027deleted\u0027 or image[\u0027status\u0027] \u003d\u003d \u0027pending_delete\u0027:"},{"line_number":842,"context_line":"            msg \u003d (_(\"Forbidden to delete a %s image.\") % image[\u0027status\u0027])"},{"line_number":843,"context_line":"            LOG.debug(msg)"},{"line_number":844,"context_line":"            raise HTTPForbidden(explanation\u003dmsg, request\u003dreq,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F0IE%3D","line":841,"in_reply_to":"AAAAOn%2F%2F0Zs%3D","updated":"2013-04-22 13:45:25.000000000","message":"Yes that makes sense, I ll file a separate bug for it.","commit_id":"cd008483747ff6825131365efc60cd787c36c310"},{"author":{"_account_id":6662,"name":"James Li","email":"yueli.m@gmail.com","username":"james-li-3"},"change_message_id":"e9ba53b97735fef9e7a13ebfcc6aa39ef8eb73cd","unresolved":false,"context_lines":[{"line_number":838,"context_line":"                                request\u003dreq,"},{"line_number":839,"context_line":"                                content_type\u003d\"text/plain\")"},{"line_number":840,"context_line":""},{"line_number":841,"context_line":"        if image[\u0027status\u0027] \u003d\u003d \u0027deleted\u0027 or image[\u0027status\u0027] \u003d\u003d \u0027pending_delete\u0027:"},{"line_number":842,"context_line":"            msg \u003d (_(\"Forbidden to delete a %s image.\") % image[\u0027status\u0027])"},{"line_number":843,"context_line":"            LOG.debug(msg)"},{"line_number":844,"context_line":"            raise HTTPForbidden(explanation\u003dmsg, request\u003dreq,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2F0Zs%3D","line":841,"in_reply_to":"AAAAOn%2F%2F0eo%3D","updated":"2013-04-22 03:02:00.000000000","message":"Raising HTTPNotFound  is the behavior of V2, which I think makes more sense. But the purpose of this patch is to fix the unclear behavior of \u0027pending_delete\u0027, I\u0027d like to keep the current behavior for \u0027deleted\u0027.","commit_id":"cd008483747ff6825131365efc60cd787c36c310"}],"glance/tests/unit/v1/test_api.py":[{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"af2962497800c49ed9acdc0531662360fc0ecd10","unresolved":false,"context_lines":[{"line_number":2482,"context_line":"        req \u003d webob.Request.blank(\"/images/%s\" % UUID2)"},{"line_number":2483,"context_line":"        req.method \u003d \u0027DELETE\u0027"},{"line_number":2484,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":2485,"context_line":"        self.assertEquals(res.status_int, 200)"},{"line_number":2486,"context_line":""},{"line_number":2487,"context_line":"        req \u003d webob.Request.blank(\"/images/%s\" % UUID2)"},{"line_number":2488,"context_line":"        req.method \u003d \u0027DELETE\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F5sE%3D","line":2485,"updated":"2013-04-12 08:32:58.000000000","message":"Perhaps, we should add the same status check here.\n\nThanks :D","commit_id":"037a3f4cb71708d25cc31b369f2fef2feea792de"},{"author":{"_account_id":6159,"name":"Flavio Percoco Premoli","display_name":"flaper87","email":"flavio.percoco@flyrlabs.com","username":"flaper87"},"change_message_id":"af2962497800c49ed9acdc0531662360fc0ecd10","unresolved":false,"context_lines":[{"line_number":2499,"context_line":"        req \u003d webob.Request.blank(\"/images/%s\" % UUID2)"},{"line_number":2500,"context_line":"        req.method \u003d \u0027DELETE\u0027"},{"line_number":2501,"context_line":"        res \u003d req.get_response(self.api)"},{"line_number":2502,"context_line":"        self.assertEquals(res.status_int, 200)"},{"line_number":2503,"context_line":""},{"line_number":2504,"context_line":"        req \u003d webob.Request.blank(\"/images/%s\" % UUID2)"},{"line_number":2505,"context_line":"        req.method \u003d \u0027DELETE\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F5sI%3D","line":2502,"updated":"2013-04-12 08:32:58.000000000","message":"Hey,\n\nCould you verify here that the image is indeed in a pending_delete state ? Just to make sure we\u0027re actually testing the right thing and making the test more explicit.\n\nCheers!","commit_id":"037a3f4cb71708d25cc31b369f2fef2feea792de"}]}
