)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"06764c8bad942d86a0a66c2affcdfa54f7743801","unresolved":false,"context_lines":[{"line_number":9,"context_line":"There are several unused reservation methods are not called directly,"},{"line_number":10,"context_line":"so it could be removed from the db API."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Fixes bug #1255925"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I8dffa1d4222da162e55ddd6cfce656b4620f3fad"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2Fb2w%3D","line":12,"updated":"2014-03-17 22:43:20.000000000","message":"Closes-Bug: #1255925 https://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references","commit_id":"b98faca0a15bb5fc6f4190f1fb1ae200416ee119"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"bad3043d5bb783e69db7f88794646a4ca6afd2c4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"There are several unused reservation methods are not called directly,"},{"line_number":10,"context_line":"so it could be removed from the db API."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Fixes bug #1255925"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I8dffa1d4222da162e55ddd6cfce656b4620f3fad"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAWH%2F%2Bqoo%3D","line":12,"in_reply_to":"AAAAWH%2F%2Fb2w%3D","updated":"2014-03-25 07:18:54.000000000","message":"Done","commit_id":"b98faca0a15bb5fc6f4190f1fb1ae200416ee119"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"f0e7952913de84ebb21042b4e3d05c4277fddb55","unresolved":false,"context_lines":[{"line_number":631,"context_line":"###################"},{"line_number":632,"context_line":""},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"@require_context"},{"line_number":635,"context_line":"def _reservation_get(context, uuid, session\u003dNone):"},{"line_number":636,"context_line":"    result \u003d model_query(context, models.Reservation, session\u003dsession,"},{"line_number":637,"context_line":"                         read_deleted\u003d\"no\").\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F98cE%3D","line":634,"updated":"2013-12-04 06:32:50.000000000","message":"This can be removed too","commit_id":"ef96d9968cb7ee8d10ef0f49bb9e076c664d16d4"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"4e27f6726ece4856182573cb069148ead7047e56","unresolved":false,"context_lines":[{"line_number":631,"context_line":"###################"},{"line_number":632,"context_line":""},{"line_number":633,"context_line":""},{"line_number":634,"context_line":"@require_context"},{"line_number":635,"context_line":"def _reservation_get(context, uuid, session\u003dNone):"},{"line_number":636,"context_line":"    result \u003d model_query(context, models.Reservation, session\u003dsession,"},{"line_number":637,"context_line":"                         read_deleted\u003d\"no\").\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F97Cs%3D","line":634,"in_reply_to":"AAAATn%2F98cE%3D","updated":"2013-12-04 12:56:10.000000000","message":"Done","commit_id":"ef96d9968cb7ee8d10ef0f49bb9e076c664d16d4"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"f0e7952913de84ebb21042b4e3d05c4277fddb55","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"@require_admin_context"},{"line_number":647,"context_line":"def _reservation_create(context, uuid, usage, project_id, resource, delta,"},{"line_number":648,"context_line":"                        expire, session\u003dNone):"},{"line_number":649,"context_line":"    reservation_ref \u003d models.Reservation()"},{"line_number":650,"context_line":"    reservation_ref.uuid \u003d uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F98bM%3D","line":647,"updated":"2013-12-04 06:32:50.000000000","message":"Can we remove this def here, and do this stuff at the place where it is used (line 783)? This will make the commit, and removal of code more consistent. This is the only method of all the \u0027reservations\u0027 group which we\u0027re not removing. \n\nThis definition requires admin context, and currently at line 783, we\u0027re elevating the context specifically for this method, which IMO is slightly messy.","commit_id":"ef96d9968cb7ee8d10ef0f49bb9e076c664d16d4"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"4e27f6726ece4856182573cb069148ead7047e56","unresolved":false,"context_lines":[{"line_number":644,"context_line":""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"@require_admin_context"},{"line_number":647,"context_line":"def _reservation_create(context, uuid, usage, project_id, resource, delta,"},{"line_number":648,"context_line":"                        expire, session\u003dNone):"},{"line_number":649,"context_line":"    reservation_ref \u003d models.Reservation()"},{"line_number":650,"context_line":"    reservation_ref.uuid \u003d uuid"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F97Cg%3D","line":647,"in_reply_to":"AAAATn%2F98bM%3D","updated":"2013-12-04 12:56:10.000000000","message":"Done","commit_id":"ef96d9968cb7ee8d10ef0f49bb9e076c664d16d4"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"e21a4b4f7314f994c8ee6930760d5b5da98d2cc6","unresolved":false,"context_lines":[{"line_number":646,"context_line":"        all()"},{"line_number":647,"context_line":"    return dict((row.resource, row) for row in rows)"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"def _reservation_create(context, uuid, usage, project_id, resource, delta,"},{"line_number":651,"context_line":"                        expire, session\u003dNone):"},{"line_number":652,"context_line":"    reservation_ref \u003d models.Reservation()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F96v4%3D","line":649,"updated":"2013-12-04 14:09:31.000000000","message":"This is needed for test to stubout, so keep this def..","commit_id":"2ad4ea73e9175e29b2ddda2419065b6b6801efa7"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"0e383020d4fbea104e61cd350031b26de074e73d","unresolved":false,"context_lines":[{"line_number":646,"context_line":"        all()"},{"line_number":647,"context_line":"    return dict((row.resource, row) for row in rows)"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"def _reservation_create(context, uuid, usage, project_id, resource, delta,"},{"line_number":651,"context_line":"                        expire, session\u003dNone):"},{"line_number":652,"context_line":"    reservation_ref \u003d models.Reservation()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9wEw%3D","line":649,"in_reply_to":"AAAATn%2F96v4%3D","updated":"2013-12-06 12:00:43.000000000","message":"I don\u0027t think we should keep code just because it is needed in tests.","commit_id":"2ad4ea73e9175e29b2ddda2419065b6b6801efa7"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"bf366b47424eb7520bc1a20a93cdb5f9e3dbd116","unresolved":false,"context_lines":[{"line_number":629,"context_line":""},{"line_number":630,"context_line":""},{"line_number":631,"context_line":"def _reservation_create(context, uuid, usage, project_id, resource, delta,"},{"line_number":632,"context_line":"                        expire, session\u003dNone):"},{"line_number":633,"context_line":"    reservation_ref \u003d models.Reservation()"},{"line_number":634,"context_line":"    reservation_ref.uuid \u003d uuid"},{"line_number":635,"context_line":"    reservation_ref.usage_id \u003d usage[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9ixc%3D","line":632,"updated":"2014-02-06 06:10:21.000000000","message":"keep this method, it\u0027s needed by quota_reserve() and test, since there will be no other good way to verify the result of DB api quota_reserve() if we move the codes to quota_reserve.","commit_id":"b98faca0a15bb5fc6f4190f1fb1ae200416ee119"}],"cinder/tests/test_db_api.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def _reservation_get(context, uuid):"},{"line_number":35,"context_line":"    result \u003d sqa_api.model_query(context, models.Reservation,"},{"line_number":36,"context_line":"                                 read_deleted\u003d\"no\").\\"},{"line_number":37,"context_line":"        filter_by(uuid\u003duuid).first()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FtBI%3D","line":35,"updated":"2014-04-18 04:29:48.000000000","message":"No sure if we should call underlying implementation API like this in tests.  We can actually test those quota related calls without querying reservations.","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def _reservation_get(context, uuid):"},{"line_number":35,"context_line":"    result \u003d sqa_api.model_query(context, models.Reservation,"},{"line_number":36,"context_line":"                                 read_deleted\u003d\"no\").\\"},{"line_number":37,"context_line":"        filter_by(uuid\u003duuid).first()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fgus%3D","line":35,"in_reply_to":"AAAAXH%2F%2FtBI%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":940,"context_line":"        self.assertEqual(expected,"},{"line_number":941,"context_line":"                         db.quota_usage_get_all_by_project("},{"line_number":942,"context_line":"                             self.ctxt, \u0027project1\u0027))"},{"line_number":943,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":944,"context_line":"        db.reservation_commit(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":945,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":946,"context_line":"                          _reservation_get,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FtBE%3D","line":943,"updated":"2014-04-18 04:29:48.000000000","message":"This call is not needed.","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":940,"context_line":"        self.assertEqual(expected,"},{"line_number":941,"context_line":"                         db.quota_usage_get_all_by_project("},{"line_number":942,"context_line":"                             self.ctxt, \u0027project1\u0027))"},{"line_number":943,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":944,"context_line":"        db.reservation_commit(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":945,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":946,"context_line":"                          _reservation_get,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fguo%3D","line":943,"in_reply_to":"AAAAXH%2F%2FtBE%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":942,"context_line":"                             self.ctxt, \u0027project1\u0027))"},{"line_number":943,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":944,"context_line":"        db.reservation_commit(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":945,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":946,"context_line":"                          _reservation_get,"},{"line_number":947,"context_line":"                          self.ctxt,"},{"line_number":948,"context_line":"                          reservations[0])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FtAc%3D","line":945,"updated":"2014-04-18 04:29:48.000000000","message":"What\u0027s the point testing an Exception that only raises in the piece of code in the test?  You are testing against your test code.","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":942,"context_line":"                             self.ctxt, \u0027project1\u0027))"},{"line_number":943,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":944,"context_line":"        db.reservation_commit(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":945,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":946,"context_line":"                          _reservation_get,"},{"line_number":947,"context_line":"                          self.ctxt,"},{"line_number":948,"context_line":"                          reservations[0])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fguk%3D","line":945,"in_reply_to":"AAAAXH%2F%2FtAc%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":965,"context_line":"                         db.quota_usage_get_all_by_project("},{"line_number":966,"context_line":"                             self.ctxt,"},{"line_number":967,"context_line":"                             \u0027project1\u0027))"},{"line_number":968,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":969,"context_line":"        db.reservation_rollback(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":970,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":971,"context_line":"                          _reservation_get,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FtBA%3D","line":968,"updated":"2014-04-18 04:29:48.000000000","message":"This call is not needed.","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":965,"context_line":"                         db.quota_usage_get_all_by_project("},{"line_number":966,"context_line":"                             self.ctxt,"},{"line_number":967,"context_line":"                             \u0027project1\u0027))"},{"line_number":968,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":969,"context_line":"        db.reservation_rollback(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":970,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":971,"context_line":"                          _reservation_get,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fgug%3D","line":968,"in_reply_to":"AAAAXH%2F%2FtBA%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":967,"context_line":"                             \u0027project1\u0027))"},{"line_number":968,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":969,"context_line":"        db.reservation_rollback(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":970,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":971,"context_line":"                          _reservation_get,"},{"line_number":972,"context_line":"                          self.ctxt,"},{"line_number":973,"context_line":"                          reservations[0])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fs%2Fw%3D","line":970,"updated":"2014-04-18 04:29:48.000000000","message":"ditto","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":967,"context_line":"                             \u0027project1\u0027))"},{"line_number":968,"context_line":"        _reservation_get(self.ctxt, reservations[0])"},{"line_number":969,"context_line":"        db.reservation_rollback(self.ctxt, reservations, \u0027project1\u0027)"},{"line_number":970,"context_line":"        self.assertRaises(exception.ReservationNotFound,"},{"line_number":971,"context_line":"                          _reservation_get,"},{"line_number":972,"context_line":"                          self.ctxt,"},{"line_number":973,"context_line":"                          reservations[0])"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fguc%3D","line":970,"in_reply_to":"AAAAXH%2F%2Fs%2Fw%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"        self.assertEqual(len(reservations), 2)"},{"line_number":1095,"context_line":"        res_names \u003d [\u0027gigabytes\u0027, \u0027volumes\u0027]"},{"line_number":1096,"context_line":"        for uuid in reservations:"},{"line_number":1097,"context_line":"            reservation \u003d _reservation_get(self.ctxt, uuid)"},{"line_number":1098,"context_line":"            self.assertIn(reservation.resource, res_names)"},{"line_number":1099,"context_line":"            res_names.remove(reservation.resource)"},{"line_number":1100,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fs%2B8%3D","line":1097,"updated":"2014-04-18 04:29:48.000000000","message":"use db.quota_usage_get() to test result.reserved instead","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":1094,"context_line":"        self.assertEqual(len(reservations), 2)"},{"line_number":1095,"context_line":"        res_names \u003d [\u0027gigabytes\u0027, \u0027volumes\u0027]"},{"line_number":1096,"context_line":"        for uuid in reservations:"},{"line_number":1097,"context_line":"            reservation \u003d _reservation_get(self.ctxt, uuid)"},{"line_number":1098,"context_line":"            self.assertIn(reservation.resource, res_names)"},{"line_number":1099,"context_line":"            res_names.remove(reservation.resource)"},{"line_number":1100,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FguY%3D","line":1097,"in_reply_to":"AAAAXH%2F%2Fs%2B8%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"                                                           \u0027project1\u0027),"},{"line_number":1115,"context_line":"                         {\u0027project_id\u0027: \u0027project1\u0027})"},{"line_number":1116,"context_line":"        for r in reservations:"},{"line_number":1117,"context_line":"            self.assertRaises(exception.ReservationNotFound,"},{"line_number":1118,"context_line":"                              _reservation_get,"},{"line_number":1119,"context_line":"                              self.ctxt,"},{"line_number":1120,"context_line":"                              r)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fs%2Fs%3D","line":1117,"updated":"2014-04-18 04:29:48.000000000","message":"ditto","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":1114,"context_line":"                                                           \u0027project1\u0027),"},{"line_number":1115,"context_line":"                         {\u0027project_id\u0027: \u0027project1\u0027})"},{"line_number":1116,"context_line":"        for r in reservations:"},{"line_number":1117,"context_line":"            self.assertRaises(exception.ReservationNotFound,"},{"line_number":1118,"context_line":"                              _reservation_get,"},{"line_number":1119,"context_line":"                              self.ctxt,"},{"line_number":1120,"context_line":"                              r)"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2FguU%3D","line":1117,"in_reply_to":"AAAAXH%2F%2Fs%2Fs%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"1675b95dcb4c78deb73ad306650b53d9f3bccfc3","unresolved":false,"context_lines":[{"line_number":1072,"context_line":"        quota_usage \u003d db.quota_usage_get_all_by_project(self.ctxt, \u0027project1\u0027)"},{"line_number":1073,"context_line":"        for res in res_names:"},{"line_number":1074,"context_line":"            self.assertEqual(0, quota_usage[res][\u0027in_use\u0027])"},{"line_number":1075,"context_line":"            self.assertNotEqual(0, quota_usage[res][\u0027reserved\u0027])"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"    def test_quota_destroy(self):"},{"line_number":1078,"context_line":"        db.quota_create(self.ctxt, \u0027project1\u0027, \u0027resource1\u0027, 41)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXH%2F%2Fgsc%3D","line":1075,"updated":"2014-04-21 01:48:50.000000000","message":"Can you make this check more specific, i.e. prepare a expected dict for reserved resources?  Checking \u0027reserved\u0027 doesn\u0027t equals 0 isn\u0027t enough.","commit_id":"e41d630c2ef1393c9d2841a3daabdb1c756bb742"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"44799ae6981d85242149e9a11d89ecdc9b45857e","unresolved":false,"context_lines":[{"line_number":1072,"context_line":"        quota_usage \u003d db.quota_usage_get_all_by_project(self.ctxt, \u0027project1\u0027)"},{"line_number":1073,"context_line":"        for res in res_names:"},{"line_number":1074,"context_line":"            self.assertEqual(0, quota_usage[res][\u0027in_use\u0027])"},{"line_number":1075,"context_line":"            self.assertNotEqual(0, quota_usage[res][\u0027reserved\u0027])"},{"line_number":1076,"context_line":""},{"line_number":1077,"context_line":"    def test_quota_destroy(self):"},{"line_number":1078,"context_line":"        db.quota_create(self.ctxt, \u0027project1\u0027, \u0027resource1\u0027, 41)"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAXH%2F%2FgnY%3D","line":1075,"in_reply_to":"AAAAXH%2F%2Fgsc%3D","updated":"2014-04-21 02:36:32.000000000","message":"Done","commit_id":"e41d630c2ef1393c9d2841a3daabdb1c756bb742"}],"cinder/tests/test_quota.py":[{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"2d971b247410db37f99701faa1693247c2a6d985","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"                  delta\u003d2),"},{"line_number":1268,"context_line":"             dict(resource\u003d\u0027gigabytes\u0027,"},{"line_number":1269,"context_line":"                  usage_id\u003dself.usages_created[\u0027gigabytes\u0027],"},{"line_number":1270,"context_line":"                  delta\u003d2 * 1024), ])"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"    def test_quota_reserve_negative_in_use(self):"},{"line_number":1273,"context_line":"        self.init_usage(\u0027test_project\u0027, \u0027volumes\u0027, -1, 0, until_refresh\u003d1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9d3c%3D","side":"PARENT","line":1270,"updated":"2013-12-11 08:02:09.000000000","message":"Why all compare_reservation()s are removed from tests?","commit_id":"5cb91b70b96b9eb8f22f8c596c0853b0468af268"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"d14999fe30b28a509f8db8e3e9da1a9f3959e839","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"                  delta\u003d2),"},{"line_number":1268,"context_line":"             dict(resource\u003d\u0027gigabytes\u0027,"},{"line_number":1269,"context_line":"                  usage_id\u003dself.usages_created[\u0027gigabytes\u0027],"},{"line_number":1270,"context_line":"                  delta\u003d2 * 1024), ])"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"    def test_quota_reserve_negative_in_use(self):"},{"line_number":1273,"context_line":"        self.init_usage(\u0027test_project\u0027, \u0027volumes\u0027, -1, 0, until_refresh\u003d1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F9dgM%3D","side":"PARENT","line":1270,"in_reply_to":"AAAATn%2F9d3c%3D","updated":"2013-12-11 09:28:04.000000000","message":"Because `_reservation_create` method is removed, in the tests it\u0027s stubout with fake_reservation_create, and self.reservations_created is created in   `fake_reservation_create`, so compare_reservation()s don\u0027t work anymore.","commit_id":"5cb91b70b96b9eb8f22f8c596c0853b0468af268"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"5746f232d8b7cf12cf3ed264ee3cc2084f67e822","unresolved":false,"context_lines":[{"line_number":1267,"context_line":"                  delta\u003d2),"},{"line_number":1268,"context_line":"             dict(resource\u003d\u0027gigabytes\u0027,"},{"line_number":1269,"context_line":"                  usage_id\u003dself.usages_created[\u0027gigabytes\u0027],"},{"line_number":1270,"context_line":"                  delta\u003d2 * 1024), ])"},{"line_number":1271,"context_line":""},{"line_number":1272,"context_line":"    def test_quota_reserve_negative_in_use(self):"},{"line_number":1273,"context_line":"        self.init_usage(\u0027test_project\u0027, \u0027volumes\u0027, -1, 0, until_refresh\u003d1)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F8nnk%3D","side":"PARENT","line":1270,"in_reply_to":"AAAATn%2F9dgM%3D","updated":"2013-12-24 08:47:42.000000000","message":"Yes, you are right. But we still need a way to test/verify the result of DB api quota_reserve().","commit_id":"5cb91b70b96b9eb8f22f8c596c0853b0468af268"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"b933c0e862f48a89e31bf2c1d4c649b55aaadcec","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _reservation_get_all_by_project(self, context, project_id):"},{"line_number":155,"context_line":"        rows \u003d sqa_api.model_query(context, sqa_models.Reservation,"},{"line_number":156,"context_line":"                                   read_deleted\u003d\"no\").\\"},{"line_number":157,"context_line":"            filter_by(project_id\u003dproject_id).all()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        result \u003d {\u0027project_id\u0027: project_id}"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fs%2BQ%3D","line":156,"updated":"2014-04-18 04:29:48.000000000","message":"please don\u0027t do this.  If you want to get reserved quota, call db.quota_usage_get() instead.","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"},{"author":{"_account_id":4428,"name":"Liyingjun","email":"yinjalee@163.com","username":"liyingjun"},"change_message_id":"b75f8c1adea8020033a8168d153966a7b2c4949a","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def _reservation_get_all_by_project(self, context, project_id):"},{"line_number":155,"context_line":"        rows \u003d sqa_api.model_query(context, sqa_models.Reservation,"},{"line_number":156,"context_line":"                                   read_deleted\u003d\"no\").\\"},{"line_number":157,"context_line":"            filter_by(project_id\u003dproject_id).all()"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        result \u003d {\u0027project_id\u0027: project_id}"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXH%2F%2Fguw%3D","line":156,"in_reply_to":"AAAAXH%2F%2Fs%2BQ%3D","updated":"2014-04-21 01:33:07.000000000","message":"Done","commit_id":"0ed38b0e3cc6c618db92cad5a17f9f23eb44a619"}]}
