)]}'
{"cinder/exception.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"3d08495a7f707b1e5e8a9390d96de4952d6f5adb","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    safe \u003d True"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class VolumeSizeExceedsAvailableQuota(QuotaError):"},{"line_number":453,"context_line":"    message \u003d _(\"Requested volume or snapshot exceeds \""},{"line_number":454,"context_line":"                \"allowed volume/snapshot size quota\")"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F0S8%3D","line":452,"updated":"2013-03-11 15:58:04.000000000","message":"Not sure, do we need a new exception type to give better message?","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"480b746d1e1e245d65f0bfee8c186d1f93897d11","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    safe \u003d True"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class VolumeSizeExceedsAvailableQuota(QuotaError):"},{"line_number":453,"context_line":"    message \u003d _(\"Requested volume or snapshot exceeds \""},{"line_number":454,"context_line":"                \"allowed volume/snapshot size quota\")"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2Fye8%3D","line":452,"in_reply_to":"AAAAN3%2F%2F0PU%3D","updated":"2013-03-12 15:39:11.000000000","message":"Done","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"11ca01b5dbc848f93341c051329a9098a84b6561","unresolved":false,"context_lines":[{"line_number":449,"context_line":"    safe \u003d True"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"class VolumeSizeExceedsAvailableQuota(QuotaError):"},{"line_number":453,"context_line":"    message \u003d _(\"Requested volume or snapshot exceeds \""},{"line_number":454,"context_line":"                \"allowed volume/snapshot size quota\")"},{"line_number":455,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F0PU%3D","line":452,"in_reply_to":"AAAAN3%2F%2F0S8%3D","updated":"2013-03-11 16:48:20.000000000","message":"I think all quota errors should be pretty general of the different quotas. For example with this one: \"Requested volume exceeds allowed size quota\". Just in case we have something else later to account for.","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"}],"cinder/quota.py":[{"author":{"_account_id":6828,"name":"jerome-gallard","email":"jerome.david.gallard@gmail.com","username":"jerome-gallard"},"change_message_id":"5ebd8031f7038fc3daeaa2e8ba61e6832ae75348","unresolved":false,"context_lines":[{"line_number":37,"context_line":"               help\u003d\u0027number of volumes allowed per project\u0027),"},{"line_number":38,"context_line":"    cfg.IntOpt(\u0027quota_snapshots\u0027,"},{"line_number":39,"context_line":"               default\u003d10,"},{"line_number":40,"context_line":"               help\u003d\u0027number of volumes allowed per project\u0027),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027quota_gigabytes\u0027,"},{"line_number":42,"context_line":"               default\u003d1000,"},{"line_number":43,"context_line":"               help\u003d\u0027number of volume gigabytes allowed per project\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyxI%3D","line":40,"updated":"2013-03-12 13:46:52.000000000","message":"In the \"help\" message, perhaps: \"number of volume snapshots allowed per project\" will be more accurate?","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"480b746d1e1e245d65f0bfee8c186d1f93897d11","unresolved":false,"context_lines":[{"line_number":37,"context_line":"               help\u003d\u0027number of volumes allowed per project\u0027),"},{"line_number":38,"context_line":"    cfg.IntOpt(\u0027quota_snapshots\u0027,"},{"line_number":39,"context_line":"               default\u003d10,"},{"line_number":40,"context_line":"               help\u003d\u0027number of volumes allowed per project\u0027),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027quota_gigabytes\u0027,"},{"line_number":42,"context_line":"               default\u003d1000,"},{"line_number":43,"context_line":"               help\u003d\u0027number of volume gigabytes allowed per project\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyfM%3D","line":40,"in_reply_to":"AAAAN3%2F%2FyxI%3D","updated":"2013-03-12 15:39:11.000000000","message":"Done","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":6828,"name":"jerome-gallard","email":"jerome.david.gallard@gmail.com","username":"jerome-gallard"},"change_message_id":"5ebd8031f7038fc3daeaa2e8ba61e6832ae75348","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               help\u003d\u0027number of volumes allowed per project\u0027),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027quota_gigabytes\u0027,"},{"line_number":42,"context_line":"               default\u003d1000,"},{"line_number":43,"context_line":"               help\u003d\u0027number of volume gigabytes allowed per project\u0027),"},{"line_number":44,"context_line":"    cfg.IntOpt(\u0027reservation_expire\u0027,"},{"line_number":45,"context_line":"               default\u003d86400,"},{"line_number":46,"context_line":"               help\u003d\u0027number of seconds until a reservation expires\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyvU%3D","line":43,"updated":"2013-03-12 13:46:52.000000000","message":"\"number of volume gigabytes (snapshots included) allowed per project\"?","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"480b746d1e1e245d65f0bfee8c186d1f93897d11","unresolved":false,"context_lines":[{"line_number":40,"context_line":"               help\u003d\u0027number of volumes allowed per project\u0027),"},{"line_number":41,"context_line":"    cfg.IntOpt(\u0027quota_gigabytes\u0027,"},{"line_number":42,"context_line":"               default\u003d1000,"},{"line_number":43,"context_line":"               help\u003d\u0027number of volume gigabytes allowed per project\u0027),"},{"line_number":44,"context_line":"    cfg.IntOpt(\u0027reservation_expire\u0027,"},{"line_number":45,"context_line":"               default\u003d86400,"},{"line_number":46,"context_line":"               help\u003d\u0027number of seconds until a reservation expires\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2FyfE%3D","line":43,"in_reply_to":"AAAAN3%2F%2FyvU%3D","updated":"2013-03-12 15:39:11.000000000","message":"Done","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"}],"cinder/tests/api/contrib/test_backups.py":[{"author":{"_account_id":6828,"name":"jerome-gallard","email":"jerome.david.gallard@gmail.com","username":"jerome-gallard"},"change_message_id":"bdff3bb6d88e8cce3bbf184c15732f77eebc384c","unresolved":false,"context_lines":[{"line_number":774,"context_line":"        self.assertEqual(res_dict[\u0027overLimit\u0027][\u0027code\u0027], 413)"},{"line_number":775,"context_line":"        self.assertEqual(res_dict[\u0027overLimit\u0027][\u0027message\u0027],"},{"line_number":776,"context_line":"                         \u0027Requested volume or snapshot exceeds allowed \u0027"},{"line_number":777,"context_line":"                         \u0027volume/snapshot size quota\u0027)"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"    def test_restore_backup_with_VolumeLimitExceeded(self):"},{"line_number":780,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2Fw%2Fw%3D","line":777,"updated":"2013-03-13 10:03:59.000000000","message":"According to Jenkins logs, this error message should probably be the same as the error message provided in cinder/exception.py (VolumeSizeExceedsAvailableQuota class):\n\n\"Requested volume or snapshot exceeds allowed Gigabytes quota\"","commit_id":"3da5f4a323be3b64586b66cfbe3a5eb8258ebe71"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"d2f44ae32163cf9ac026522701e92b58d31dbc4f","unresolved":false,"context_lines":[{"line_number":774,"context_line":"        self.assertEqual(res_dict[\u0027overLimit\u0027][\u0027code\u0027], 413)"},{"line_number":775,"context_line":"        self.assertEqual(res_dict[\u0027overLimit\u0027][\u0027message\u0027],"},{"line_number":776,"context_line":"                         \u0027Requested volume or snapshot exceeds allowed \u0027"},{"line_number":777,"context_line":"                         \u0027volume/snapshot size quota\u0027)"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"    def test_restore_backup_with_VolumeLimitExceeded(self):"},{"line_number":780,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2Fuzg%3D","line":777,"in_reply_to":"AAAAN3%2F%2Fw%2Fw%3D","updated":"2013-03-14 17:23:55.000000000","message":"Done","commit_id":"3da5f4a323be3b64586b66cfbe3a5eb8258ebe71"}],"cinder/volume/api.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"3d08495a7f707b1e5e8a9390d96de4952d6f5adb","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                finally:"},{"line_number":539,"context_line":"                    QUOTAS.rollback(context, reservations)"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        self.volume_rpcapi.create_snapshot(context, volume, snapshot)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        return snapshot"},{"line_number":544,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F0W4%3D","line":541,"updated":"2013-03-11 15:58:04.000000000","message":"Why we not move this to try section?","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":1773,"name":"oliver-leahy-l","email":"oliver.leahy@hpe.com","username":"oliver-leahy-l"},"change_message_id":"c9988bd06a8379ff70245b4fe8675b1069244716","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                finally:"},{"line_number":539,"context_line":"                    QUOTAS.rollback(context, reservations)"},{"line_number":540,"context_line":""},{"line_number":541,"context_line":"        self.volume_rpcapi.create_snapshot(context, volume, snapshot)"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        return snapshot"},{"line_number":544,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAN3%2F%2F0Mg%3D","line":541,"in_reply_to":"AAAAN3%2F%2F0W4%3D","updated":"2013-03-11 16:51:31.000000000","message":"I guess that once QUOTAS have been committed you can\u0027t rollback, but you could destroy the snapshot, so the db would be inconsistent. So you can\u0027t put the rpc call into the try block after the QUOTA.commit, and you don\u0027t want to make the rpc call before committing the QUOTAS. So this seems like the correct place to me.","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"}],"etc/cinder/cinder.conf.sample":[{"author":{"_account_id":6828,"name":"jerome-gallard","email":"jerome.david.gallard@gmail.com","username":"jerome-gallard"},"change_message_id":"5ebd8031f7038fc3daeaa2e8ba61e6832ae75348","unresolved":false,"context_lines":[{"line_number":220,"context_line":"# Options defined in cinder.quota"},{"line_number":221,"context_line":"#"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"# number of volumes allowed per project (integer value)"},{"line_number":224,"context_line":"#quota_volumes\u003d10"},{"line_number":225,"context_line":"#quota_snapshots\u003d10"},{"line_number":226,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAN3%2F%2FywI%3D","line":223,"updated":"2013-03-12 13:46:52.000000000","message":"\"number of volumes and volume snapshots allowed per project (integer value)\"?","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"},{"author":{"_account_id":6828,"name":"jerome-gallard","email":"jerome.david.gallard@gmail.com","username":"jerome-gallard"},"change_message_id":"5ebd8031f7038fc3daeaa2e8ba61e6832ae75348","unresolved":false,"context_lines":[{"line_number":225,"context_line":"#quota_snapshots\u003d10"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"# number of volume gigabytes allowed per project (integer"},{"line_number":228,"context_line":"# value)"},{"line_number":229,"context_line":"#quota_gigabytes\u003d1000"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"# number of seconds until a reservation expires (integer"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAN3%2F%2FyvI%3D","line":228,"updated":"2013-03-12 13:46:52.000000000","message":"\"number of volume gigabytes (snapshots included) allowed per project (integer value)\"?","commit_id":"0daf699627789d64686c3d99544ceebf8124eec7"}]}
