)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"af23a8a369665fe568b61d300a17d2e2ab0b5300","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set-max-size-limit-for-per-volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allow to admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."},{"line_number":11,"context_line":"The defaults will either come from the default values set in the quota option"},{"line_number":12,"context_line":"configuration or via cinder.conf if the user has configured"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7a016987_9fda164a","line":9,"updated":"2015-05-29 08:25:00.000000000","message":"allows the admin?","commit_id":"bb38aee1cadc24c6852955083def2260c5b38a03"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."},{"line_number":11,"context_line":"The defaults will either come from the default values set in the quota option"},{"line_number":12,"context_line":"configuration or via cinder.conf if the user has configured"},{"line_number":13,"context_line":"default values for quotas there."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3afb71cf_7dc1262e","line":11,"updated":"2015-06-05 11:19:11.000000000","message":"do you mean \u0027quota configuration option\u0027 when you say \u0027quota option configuration\u0027? Not sure if your way is the right way to describe it :)","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c9c0946c1d5956a3765846ef7d349d16c4d35660","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rakesh Mishra \u003cmishra.rakesh510@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-09 15:45:27 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set-max-size-limit-for-volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_bee2862d","line":7,"updated":"2015-06-09 10:48:16.000000000","message":"Perhaps:\n\n   Enable per_volume_size_limit per for tenants.","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"2aec0d81461a6cdae92ca2872f1e020e421aae3b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rakesh Mishra \u003cmishra.rakesh510@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-09 15:45:27 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set-max-size-limit-for-volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_c001db07","line":7,"in_reply_to":"3afb71cf_bee2862d","updated":"2015-06-09 12:59:18.000000000","message":"Tom,\nthis is for every tenant not for a tenant, so i written, this is the max limit got volume","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"1bf61ce1058db19165c3844f3e9854c82ec1733d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rakesh Mishra \u003cmishra.rakesh510@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-09 15:45:27 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set-max-size-limit-for-volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_2c0c2940","line":7,"in_reply_to":"3afb71cf_c001db07","updated":"2015-06-09 14:01:38.000000000","message":"Sure - it would be helpful to say that explicitly.  The next sentence sounds to me like the limit is per tenant, FWIW.","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c9c0946c1d5956a3765846ef7d349d16c4d35660","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."},{"line_number":11,"context_line":"The defaults will either come from the default values set in the quota configuration"},{"line_number":12,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":13,"context_line":"default values for quotas there."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_7e7bee8c","line":11,"updated":"2015-06-09 10:48:16.000000000","message":"Line longer than 72 characters.","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"2aec0d81461a6cdae92ca2872f1e020e421aae3b","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":10,"context_line":"Get default value for volume size limit via config."},{"line_number":11,"context_line":"The defaults will either come from the default values set in the quota configuration"},{"line_number":12,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":13,"context_line":"default values for quotas there."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_662360a8","line":11,"in_reply_to":"3afb71cf_7e7bee8c","updated":"2015-06-09 12:59:18.000000000","message":"yes, right ,\n\ni will do it.","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c9c0946c1d5956a3765846ef7d349d16c4d35660","unresolved":false,"context_lines":[{"line_number":12,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":13,"context_line":"default values for quotas there."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The per_volume_size_limit defaults to -1 always"},{"line_number":16,"context_line":"unless changed in cinder.conf by admin"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ieb5c087ca7a33d22342470ea790a0c979a6244ea"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_5b104459","line":15,"updated":"2015-06-09 10:48:16.000000000","message":"What is the significance of -1?","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"2aec0d81461a6cdae92ca2872f1e020e421aae3b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":13,"context_line":"default values for quotas there."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"The per_volume_size_limit defaults to -1 always"},{"line_number":16,"context_line":"unless changed in cinder.conf by admin"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ieb5c087ca7a33d22342470ea790a0c979a6244ea"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3afb71cf_2672087c","line":15,"in_reply_to":"3afb71cf_5b104459","updated":"2015-06-09 12:59:18.000000000","message":"in the opensatck -1 is unlimited .\nok i will mention -1[\"there is no limit\"]","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ad28073fa5c864e98e585a80ac028cf12db3f712","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":16,"context_line":"Get default value for volume size limit via config."},{"line_number":17,"context_line":"The defaults will either come from the default values set in the quota configuration"},{"line_number":18,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":19,"context_line":"default values for quotas there."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3afb71cf_1b43886d","line":17,"updated":"2015-06-11 03:58:24.000000000","message":"This line is too long.\n\n https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure\n\nI think from your remark in patch set 9 that you meant to correct this.","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"3656d348553237f78bdb17d2ab82d92c56422975","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":16,"context_line":"Get default value for volume size limit via config."},{"line_number":17,"context_line":"The defaults will either come from the default values set in the quota configuration"},{"line_number":18,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":19,"context_line":"default values for quotas there."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3afb71cf_44ca2e70","line":17,"in_reply_to":"3afb71cf_08344ef9","updated":"2015-06-11 13:43:47.000000000","message":"I\u0027ll get another cup of coffee in a moment :-), but I\u0027m counting 83 characters in line 17.","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"5028a5e39fa0704453a516f9757cf827a8438141","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":16,"context_line":"Get default value for volume size limit via config."},{"line_number":17,"context_line":"The defaults will either come from the default values set in the quota configuration"},{"line_number":18,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":19,"context_line":"default values for quotas there."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3afb71cf_08344ef9","line":17,"in_reply_to":"3afb71cf_1b43886d","updated":"2015-06-11 12:51:31.000000000","message":"Tom,\nbut it has only 70 characters.\nand in patch-set 9 you pointed different line.\nplease let me know if i am missing something?","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"47be2d77030a065887e666d2d625c005f482b87e","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This feature allows admin to set volume size limit for a tenant."},{"line_number":16,"context_line":"Get default value for volume size limit via config."},{"line_number":17,"context_line":"The defaults will either come from the default values set in the quota configuration"},{"line_number":18,"context_line":"option or via cinder.conf if the user has configured"},{"line_number":19,"context_line":"default values for quotas there."},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3afb71cf_2aac9b8b","line":17,"in_reply_to":"3afb71cf_44ca2e70","updated":"2015-06-11 14:24:20.000000000","message":":D sorry,\n\nI just copy and paste the same line at vim editor.\nand \nit copied only \"ill either come from the default values set in the quota configuration\"\n\ni will do it.\nsorry for the inconvenience","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"ad28073fa5c864e98e585a80ac028cf12db3f712","unresolved":false,"context_lines":[{"line_number":19,"context_line":"default values for quotas there."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"The per_volume_size_limit defaults to -1[\"No Limit\"] always"},{"line_number":22,"context_line":"unless changed in cinder.conf by admin"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Change-Id: Ieb5c087ca7a33d22342470ea790a0c979a6244ea"},{"line_number":25,"context_line":"Implements: blueprint cinder-quota-define-per-volume"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3afb71cf_7b527c36","line":22,"updated":"2015-06-11 03:58:24.000000000","message":"Thanks!","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d75bf131270d32c940235fbc8bc3c6246e7f739","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rakesh Mishra \u003cmishra.rakesh510@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-15 10:14:25 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set-size-limit-for-volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is a need to limit maximum size of a volume to levels"},{"line_number":10,"context_line":"that the storage infrastructure can handle."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa32b979_2e2797b7","line":7,"updated":"2015-06-15 19:23:09.000000000","message":"Please make a better description. Something along the lines of:\n\nAdd config option for max volume size.","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"02eaccafae7fd2dfedddc18605fce63266e222bf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Rakesh Mishra \u003cmishra.rakesh510@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-06-15 10:14:25 +0530"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"set-size-limit-for-volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There is a need to limit maximum size of a volume to levels"},{"line_number":10,"context_line":"that the storage infrastructure can handle."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa32b979_3c47c34c","line":7,"in_reply_to":"fa32b979_2e2797b7","updated":"2015-06-16 04:56:13.000000000","message":"Sean McGinnis,\n\nok, in next patch set i will do it.","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"}],"cinder/db/sqlalchemy/migrate_repo/versions/047_add_per_volume_quota.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"af23a8a369665fe568b61d300a17d2e2ab0b5300","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    If they did, we wouldn\u0027t want to remove them.  So, the safest"},{"line_number":73,"context_line":"    thing to do is just leave the \u0027default\u0027 entries at downgrade time."},{"line_number":74,"context_line":"    \"\"\""},{"line_number":75,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_5f7ede19","line":75,"updated":"2015-05-29 08:25:00.000000000","message":"This is something we are supposed to have.","commit_id":"bb38aee1cadc24c6852955083def2260c5b38a03"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"37c6afe688fd42c6e905b924531c65de6b98d9ae","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    If they did, we wouldn\u0027t want to remove them.  So, the safest"},{"line_number":73,"context_line":"    thing to do is just leave the \u0027default\u0027 entries at downgrade time."},{"line_number":74,"context_line":"    \"\"\""},{"line_number":75,"context_line":"    pass"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_35958186","line":75,"in_reply_to":"7a016987_5f7ede19","updated":"2015-05-29 09:16:30.000000000","message":"Vincent,\nwe don\u0027t need to delete the row in the downgrade function.\nplease have a look at the comments","commit_id":"bb38aee1cadc24c6852955083def2260c5b38a03"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"# This is a placeholder for Kilo backports."},{"line_number":14,"context_line":"# Do not use this number for new Liberty work.  New work starts after"},{"line_number":15,"context_line":"# all the placeholders."},{"line_number":16,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_ab7cfb20","line":13,"updated":"2015-06-05 11:19:11.000000000","message":"Is this comment block required in this patch? Looks like this should be removed?","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        where(quota_classes.c.resource \u003d\u003d \u0027per_volume_gigabytes\u0027).\\"},{"line_number":45,"context_line":"        execute().scalar()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry.  We don\u0027t"},{"line_number":48,"context_line":"    # want to write over something the user added."},{"line_number":49,"context_line":"    if row:"},{"line_number":50,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_cbecd791","line":47,"updated":"2015-06-05 11:19:11.000000000","message":"There is no mention of \u0027default\u0027 anywhere. Seems like copy-paste error. You can look at cinder/db/sqlalchemy/migrate_repo/versions/026_add_consistencygroup_quota_class.py file as a reference about how to change this comment, as well as the log messages below, which also seem confusing","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"543534e2e7025bd39d6d7f22bad6b6ef8452783e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        where(quota_classes.c.resource \u003d\u003d \u0027per_volume_gigabytes\u0027).\\"},{"line_number":45,"context_line":"        execute().scalar()"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry.  We don\u0027t"},{"line_number":48,"context_line":"    # want to write over something the user added."},{"line_number":49,"context_line":"    if row:"},{"line_number":50,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_c7d163fd","line":47,"in_reply_to":"3afb71cf_cbecd791","updated":"2015-06-05 13:39:52.000000000","message":"here default meaning it will take the default value from cinder/quota.py","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry.  We don\u0027t"},{"line_number":48,"context_line":"    # want to write over something the user added."},{"line_number":49,"context_line":"    if row:"},{"line_number":50,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""},{"line_number":51,"context_line":"                     \"per_volume_gigabytes in the quota_classes \""},{"line_number":52,"context_line":"                     \"table.  Skipping insertion of default value.\"))"},{"line_number":53,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_6b93a3fb","line":50,"updated":"2015-06-05 11:19:11.000000000","message":"Nowhere here we are talking about \u0027default\u0027 thing. It\u0027s references should be removed","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"543534e2e7025bd39d6d7f22bad6b6ef8452783e","unresolved":false,"context_lines":[{"line_number":47,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry.  We don\u0027t"},{"line_number":48,"context_line":"    # want to write over something the user added."},{"line_number":49,"context_line":"    if row:"},{"line_number":50,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""},{"line_number":51,"context_line":"                     \"per_volume_gigabytes in the quota_classes \""},{"line_number":52,"context_line":"                     \"table.  Skipping insertion of default value.\"))"},{"line_number":53,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_271717a5","line":50,"in_reply_to":"3afb71cf_6b93a3fb","updated":"2015-06-05 13:39:52.000000000","message":"there are two things:\nif we have the value in the config file then we will take the value from config file otherwise we set the default value","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    if row:"},{"line_number":50,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""},{"line_number":51,"context_line":"                     \"per_volume_gigabytes in the quota_classes \""},{"line_number":52,"context_line":"                     \"table.  Skipping insertion of default value.\"))"},{"line_number":53,"context_line":"        return"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_2b2b6bed","line":52,"updated":"2015-06-05 11:19:11.000000000","message":"Two spaces after fullstop","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"543534e2e7025bd39d6d7f22bad6b6ef8452783e","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    if row:"},{"line_number":50,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""},{"line_number":51,"context_line":"                     \"per_volume_gigabytes in the quota_classes \""},{"line_number":52,"context_line":"                     \"table.  Skipping insertion of default value.\"))"},{"line_number":53,"context_line":"        return"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_671d0fbd","line":52,"in_reply_to":"3afb71cf_2b2b6bed","updated":"2015-06-05 13:39:52.000000000","message":"ok ... i will do it","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                     \u0027resource\u0027: \u0027per_volume_gigabytes\u0027,"},{"line_number":61,"context_line":"                     \u0027hard_limit\u0027: 1000,"},{"line_number":62,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":63,"context_line":"        LOG.info(_LI(\"Added default quota class data into the DB.\"))"},{"line_number":64,"context_line":"    except Exception:"},{"line_number":65,"context_line":"        LOG.error(_LE(\"Default quota class data not inserted into the DB.\"))"},{"line_number":66,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_8badbf33","line":63,"updated":"2015-06-05 11:19:11.000000000","message":"Needs to be changed a bit. Need to mention \u0027per_volume_gigabytes\u0027","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"543534e2e7025bd39d6d7f22bad6b6ef8452783e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                     \u0027resource\u0027: \u0027per_volume_gigabytes\u0027,"},{"line_number":61,"context_line":"                     \u0027hard_limit\u0027: 1000,"},{"line_number":62,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":63,"context_line":"        LOG.info(_LI(\"Added default quota class data into the DB.\"))"},{"line_number":64,"context_line":"    except Exception:"},{"line_number":65,"context_line":"        LOG.error(_LE(\"Default quota class data not inserted into the DB.\"))"},{"line_number":66,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_6774effc","line":63,"in_reply_to":"3afb71cf_8badbf33","updated":"2015-06-05 13:39:52.000000000","message":"yes right, i will do it","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":63,"context_line":"        LOG.info(_LI(\"Added default quota class data into the DB.\"))"},{"line_number":64,"context_line":"    except Exception:"},{"line_number":65,"context_line":"        LOG.error(_LE(\"Default quota class data not inserted into the DB.\"))"},{"line_number":66,"context_line":"        raise"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_6baa831b","line":65,"updated":"2015-06-05 11:19:11.000000000","message":"Same.","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"fe8ee7ed47a08621effb1617c5eab0347a62cf81","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        where(quota_classes.c.resource \u003d\u003d \u0027per_volume_gigabytes\u0027).\\"},{"line_number":37,"context_line":"        execute().scalar()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry.  We don\u0027t"},{"line_number":40,"context_line":"    # want to write over something the user added."},{"line_number":41,"context_line":"    if row:"},{"line_number":42,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""}],"source_content_type":"text/x-python","patch_set":7,"id":"3afb71cf_97313da5","line":39,"updated":"2015-06-06 14:41:56.000000000","message":"Since others do not know what you mean by \u0027default\u0027, maybe explicitly say something like: Do not add entry if one has already been supplied in cinder/quota.py.","commit_id":"5b0ace25b3d967730e3e5be80a517edbdaa35121"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"e3b5deb1cdb9442e2f4cf5aaf4dee953d75d69f8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        where(quota_classes.c.resource \u003d\u003d \u0027per_volume_gigabytes\u0027).\\"},{"line_number":37,"context_line":"        execute().scalar()"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry.  We don\u0027t"},{"line_number":40,"context_line":"    # want to write over something the user added."},{"line_number":41,"context_line":"    if row:"},{"line_number":42,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""}],"source_content_type":"text/x-python","patch_set":7,"id":"3afb71cf_3a14b042","line":39,"in_reply_to":"3afb71cf_97313da5","updated":"2015-06-06 16:51:14.000000000","message":"yes right, i will do it","commit_id":"5b0ace25b3d967730e3e5be80a517edbdaa35121"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"fe8ee7ed47a08621effb1617c5eab0347a62cf81","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":55,"context_line":"        LOG.info(_LI(\"Added per_volume_gigabytes row into the quota_classes.\"))"},{"line_number":56,"context_line":"    except Exception:"},{"line_number":57,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":58,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":59,"context_line":"        raise"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3afb71cf_f76cf19d","line":57,"updated":"2015-06-06 14:41:56.000000000","message":"Add space between \u0027inserted\u0027 and \u0027into\u0027.","commit_id":"5b0ace25b3d967730e3e5be80a517edbdaa35121"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"e3b5deb1cdb9442e2f4cf5aaf4dee953d75d69f8","unresolved":false,"context_lines":[{"line_number":54,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":55,"context_line":"        LOG.info(_LI(\"Added per_volume_gigabytes row into the quota_classes.\"))"},{"line_number":56,"context_line":"    except Exception:"},{"line_number":57,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":58,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":59,"context_line":"        raise"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3afb71cf_fa1df866","line":57,"in_reply_to":"3afb71cf_f76cf19d","updated":"2015-06-06 16:51:14.000000000","message":"ok , i will do it","commit_id":"5b0ace25b3d967730e3e5be80a517edbdaa35121"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"3419ef0de08f5cf6d7371e38c79641dc08e01990","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    # in the database."},{"line_number":41,"context_line":"    # We don\u0027t want to write over something the user added."},{"line_number":42,"context_line":"    if row:"},{"line_number":43,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""},{"line_number":44,"context_line":"                     \"per_volume_gigabytes in the quota_classes \""},{"line_number":45,"context_line":"                     \"table. Skipping insertion of default value.\"))"},{"line_number":46,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_a0ae832b","line":43,"updated":"2015-06-11 03:08:51.000000000","message":"Please don\u0027t log in migrations, it\u0027s kinda pointless","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"28f947b57b76989f4d13adf009d8a041a24dc39f","unresolved":false,"context_lines":[{"line_number":40,"context_line":"    # in the database."},{"line_number":41,"context_line":"    # We don\u0027t want to write over something the user added."},{"line_number":42,"context_line":"    if row:"},{"line_number":43,"context_line":"        LOG.info(_LI(\"Found existing \u0027default\u0027 entry for \""},{"line_number":44,"context_line":"                     \"per_volume_gigabytes in the quota_classes \""},{"line_number":45,"context_line":"                     \"table. Skipping insertion of default value.\"))"},{"line_number":46,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":10,"id":"3afb71cf_484da6c2","line":43,"in_reply_to":"3afb71cf_a0ae832b","updated":"2015-06-11 12:47:28.000000000","message":"ok, i will remove it.\nshall i remove the line number 56 log also?","commit_id":"8210735dd639fb4f3c8f957bee3d9d56f2ed2c7b"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"0df1087d5f897cf2c12dd368ec8aed17f0e48944","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_config import cfg"},{"line_number":14,"context_line":"from oslo_log import log as logging"},{"line_number":15,"context_line":"from sqlalchemy import MetaData, Table"},{"line_number":16,"context_line":"from cinder.i18n import _LE"},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"# Get default value via config.  The defaults will either"},{"line_number":19,"context_line":"# come from the default value set in the quota configuration option"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_e913260c","line":16,"updated":"2015-06-13 05:24:32.000000000","message":"This violates the import order.\nhttp://docs.openstack.org/developer/hacking/","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"10e469dc9cd37959e71db738986e4f158eb21cdc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from oslo_config import cfg"},{"line_number":14,"context_line":"from oslo_log import log as logging"},{"line_number":15,"context_line":"from sqlalchemy import MetaData, Table"},{"line_number":16,"context_line":"from cinder.i18n import _LE"},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"# Get default value via config.  The defaults will either"},{"line_number":19,"context_line":"# come from the default value set in the quota configuration option"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_6c03a410","line":16,"in_reply_to":"fa32b979_e913260c","updated":"2015-06-13 08:09:30.000000000","message":"ok, i will correct it .","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"0df1087d5f897cf2c12dd368ec8aed17f0e48944","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from sqlalchemy import MetaData, Table"},{"line_number":16,"context_line":"from cinder.i18n import _LE"},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"# Get default value via config.  The defaults will either"},{"line_number":19,"context_line":"# come from the default value set in the quota configuration option"},{"line_number":20,"context_line":"# or via cinder.conf if the user has configured"},{"line_number":21,"context_line":"# default value for per volume size limit there."}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_490332b9","line":18,"updated":"2015-06-13 05:24:32.000000000","message":"defaults -\u003e default","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"10e469dc9cd37959e71db738986e4f158eb21cdc","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from sqlalchemy import MetaData, Table"},{"line_number":16,"context_line":"from cinder.i18n import _LE"},{"line_number":17,"context_line":"from oslo_utils import timeutils"},{"line_number":18,"context_line":"# Get default value via config.  The defaults will either"},{"line_number":19,"context_line":"# come from the default value set in the quota configuration option"},{"line_number":20,"context_line":"# or via cinder.conf if the user has configured"},{"line_number":21,"context_line":"# default value for per volume size limit there."}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_1f047c13","line":18,"in_reply_to":"fa32b979_490332b9","updated":"2015-06-13 08:09:30.000000000","message":"yes , ok i will do it","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"0df1087d5f897cf2c12dd368ec8aed17f0e48944","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":27,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_a91d1e11","line":27,"updated":"2015-06-13 05:24:32.000000000","message":"This shouldn\u0027t be a constant.","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8f816e3ea218e7d77c79373aa0386a3173a52588","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":27,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_9f1dec11","line":27,"in_reply_to":"fa32b979_7f13485d","updated":"2015-06-13 09:04:28.000000000","message":"Please see https://www.python.org/dev/peps/pep-0008/#constants","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"c69aed3f9a429a9f64d523b6c650f93f36fbd7df","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":27,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_9f516c65","line":27,"in_reply_to":"fa32b979_9f1dec11","updated":"2015-06-13 10:07:07.000000000","message":"Vipin,\n\nThanks for clarification .\nwe will  not change \"CREATED_AT \" in future that\u0027s why it\u0027s constant.\nit\u0027 giving the information when the file has created.","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"102c9420311424b06fd5dd162a52569e64b9ea52","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":27,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_79bca46c","line":27,"in_reply_to":"fa32b979_9f516c65","updated":"2015-06-15 11:41:45.000000000","message":"I would just inline this call instead of declaring a variable which is used only once.","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"10e469dc9cd37959e71db738986e4f158eb21cdc","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":27,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"def upgrade(migrate_engine):"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_7f13485d","line":27,"in_reply_to":"fa32b979_a91d1e11","updated":"2015-06-13 08:09:30.000000000","message":"sorry, Vipin i didn\u0027t get it.\nthis is the current time , and this is not constant, please let me know if i am missing something?","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"0df1087d5f897cf2c12dd368ec8aed17f0e48944","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry exists"},{"line_number":40,"context_line":"    # in the database."},{"line_number":41,"context_line":"    # We don\u0027t want to write over something the user added."},{"line_number":42,"context_line":"    if row:"},{"line_number":43,"context_line":"        return"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_29d82e53","line":42,"updated":"2015-06-13 05:24:32.000000000","message":"I don\u0027t think we need this check. Why user adds this column? Is this recommended?","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"10e469dc9cd37959e71db738986e4f158eb21cdc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    # Do not add entry if there is already \u0027default\u0027 entry exists"},{"line_number":40,"context_line":"    # in the database."},{"line_number":41,"context_line":"    # We don\u0027t want to write over something the user added."},{"line_number":42,"context_line":"    if row:"},{"line_number":43,"context_line":"        return"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_9f372ce3","line":42,"in_reply_to":"fa32b979_29d82e53","updated":"2015-06-13 08:09:30.000000000","message":"Vipin,\nCheck requirement:\nWe required this check because because we don\u0027t want to reset the values what user has already set this value in the config file.\n\nWhy user adds this column:\nthis is the row , not a column","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"0df1087d5f897cf2c12dd368ec8aed17f0e48944","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                     \u0027hard_limit\u0027: -1,"},{"line_number":52,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":53,"context_line":"    except Exception:"},{"line_number":54,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":55,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":56,"context_line":"        raise"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_a9cbde71","line":54,"updated":"2015-06-13 05:24:32.000000000","message":"LOG.error -\u003e LOG.exception","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"8f816e3ea218e7d77c79373aa0386a3173a52588","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                     \u0027hard_limit\u0027: -1,"},{"line_number":52,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":53,"context_line":"    except Exception:"},{"line_number":54,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":55,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":56,"context_line":"        raise"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_9fe40c0e","line":54,"in_reply_to":"fa32b979_3f4b805b","updated":"2015-06-13 09:04:28.000000000","message":"LOG.exception prints the current exception along with the log message.","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"c69aed3f9a429a9f64d523b6c650f93f36fbd7df","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                     \u0027hard_limit\u0027: -1,"},{"line_number":52,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":53,"context_line":"    except Exception:"},{"line_number":54,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":55,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":56,"context_line":"        raise"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_bf9eb005","line":54,"in_reply_to":"fa32b979_9fe40c0e","updated":"2015-06-13 10:07:07.000000000","message":"yes right but that exception log we are getting from the internal file so again we don\u0027t need to give the same information in the log file.\n\ni tried one example please have a look into it\nlog message Example:\n\nin case of LOG.error\n\nDefault per_volume_gigabytes row not inserted into the quota_classes.\n2015-06-13 15:20:14.112 CRITICAL cinder [-] DBDataError: (OperationalError)\n\nDBDataError: (OperationalError) (1366, \"Incorrect integer value: \u0027as\u0027 for column \u0027hard_limit\u0027 at row 1\") \u0027INSERT INTO quota_classes (deleted, class_name, resource, hard_limit) VALUES (%s, %s, %s, %s)\u0027 (False, \u0027default\u0027, \u0027per_volume_gigabytes\u0027, \u0027as\u0027)\n\n\n\nin case of LOG.exception\n\nDefault per_volume_gigabytes row not inserted into the quota_classes.\n\nDBDataError: (OperationalError) (1366, \"Incorrect integer value: \u0027as\u0027 for column \u0027hard_limit\u0027 at row 1\") \u0027INSERT INTO quota_classes (deleted, class_name, resource, hard_limit) VALUES (%s, %s, %s, %s)\u0027 (False, \u0027default\u0027, \u0027per_volume_gigabytes\u0027, \u0027as\u0027)\n\nthen it will print the same message one more time because of the log.exception\n\nDBDataError: (OperationalError) (1366, \"Incorrect integer value: \u0027as\u0027 for column \u0027hard_limit\u0027 at row 1\") \u0027INSERT INTO quota_classes (deleted, class_name, resource, hard_limit) VALUES (%s, %s, %s, %s)\u0027 (False, \u0027default\u0027, \u0027per_volume_gigabytes\u0027, \u0027as\u0027)\n\n\nso here we are getting repeated messages","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"10e469dc9cd37959e71db738986e4f158eb21cdc","unresolved":false,"context_lines":[{"line_number":51,"context_line":"                     \u0027hard_limit\u0027: -1,"},{"line_number":52,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":53,"context_line":"    except Exception:"},{"line_number":54,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":55,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":56,"context_line":"        raise"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"fa32b979_3f4b805b","line":54,"in_reply_to":"fa32b979_a9cbde71","updated":"2015-06-13 08:09:30.000000000","message":"Vipin,\n\nwhy this is wrong?","commit_id":"6509cce25d895f9cf9f702f614b175e3d3fbfe91"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"bf07b2647bc50cb6447743417692a53e915c330e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from cinder.i18n import _LE"},{"line_number":14,"context_line":"from oslo_config import cfg"},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_39129c63","line":13,"updated":"2015-06-15 11:42:44.000000000","message":"Still it is violating the order.\nThis should be moved to 1 line after \n\nfrom sqlalchemy import MetaData, Table","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"3aedbf1416c915699c2d383674d379896f306f5e","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from cinder.i18n import _LE"},{"line_number":14,"context_line":"from oslo_config import cfg"},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_3c5ee312","line":13,"in_reply_to":"fa32b979_23b7b0d9","updated":"2015-06-16 05:11:02.000000000","message":"@Sean McGinnis,\n\nok i will fix it :)\n\nsorry for inconvenience","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"4b549d9fefcb8d9074534c1e8e89c64f9e41b7a3","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from cinder.i18n import _LE"},{"line_number":14,"context_line":"from oslo_config import cfg"},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_6241390b","line":13,"in_reply_to":"fa32b979_39129c63","updated":"2015-06-15 17:02:52.000000000","message":"Sorry Vipin,\nI think it\u0027s correct...","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"a8057a04c6dd3b8b9d8d4c70a284596ea092ceaa","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from cinder.i18n import _LE"},{"line_number":14,"context_line":"from oslo_config import cfg"},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_47ae872f","line":13,"in_reply_to":"fa32b979_39129c63","updated":"2015-06-15 16:56:03.000000000","message":"yes Vipin,i will correct it","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d75bf131270d32c940235fbc8bc3c6246e7f739","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"from cinder.i18n import _LE"},{"line_number":14,"context_line":"from oslo_config import cfg"},{"line_number":15,"context_line":"from oslo_log import log as logging"},{"line_number":16,"context_line":"from oslo_utils import timeutils"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_23b7b0d9","line":13,"in_reply_to":"fa32b979_6241390b","updated":"2015-06-15 19:23:09.000000000","message":"Vipin is correct. It should be standard libs, third party libs, cinder libs. See this file for an example:\n\nhttps://github.com/openstack/cinder/blob/master/cinder/db/sqlalchemy/migrate_repo/versions/001_cinder_init.py\n\nGuidelines can be found here:\n\nhttp://docs.openstack.org/developer/hacking/#import-order-template","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d75bf131270d32c940235fbc8bc3c6246e7f739","unresolved":false,"context_lines":[{"line_number":21,"context_line":"# or via cinder.conf if the user has configured"},{"line_number":22,"context_line":"# default value for per volume size limit there."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":"CLASS_NAME \u003d \u0027default\u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_0302ac6f","line":24,"updated":"2015-06-15 19:23:09.000000000","message":"CONF doesn\u0027t appear to actually be used anywhere.","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d75bf131270d32c940235fbc8bc3c6246e7f739","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":28,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_e30c6896","line":27,"updated":"2015-06-15 19:23:09.000000000","message":"CLASS_NAME and CREATED_AT are only used in one place, in the insert. In this case I would rather get rid of the constants and just put these there.","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"3aedbf1416c915699c2d383674d379896f306f5e","unresolved":false,"context_lines":[{"line_number":24,"context_line":"CONF \u003d cfg.CONF"},{"line_number":25,"context_line":"CONF.import_opt(\u0027per_volume_size_limit\u0027, \u0027cinder.quota\u0027)"},{"line_number":26,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":27,"context_line":"CLASS_NAME \u003d \u0027default\u0027"},{"line_number":28,"context_line":"CREATED_AT \u003d timeutils.utcnow()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_7cf54bc9","line":27,"in_reply_to":"fa32b979_e30c6896","updated":"2015-06-16 05:11:02.000000000","message":"Sean McGinnis,\n\ni refer to the below file to add constant.\nhttps://github.com/openstack/cinder/blob/master/cinder/db/sqlalchemy/migrate_repo/versions/021_add_default_quota_class.py\n\nand i think this is more readable but if you consist then i can remove it :)","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d75bf131270d32c940235fbc8bc3c6246e7f739","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                     \u0027hard_limit\u0027: -1,"},{"line_number":53,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":54,"context_line":"    except Exception:"},{"line_number":55,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":56,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":57,"context_line":"        raise"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_2389f026","line":55,"updated":"2015-06-15 19:23:09.000000000","message":"Need trailing space so the final string doesn\u0027t end up \"insertedinto\".","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"3aedbf1416c915699c2d383674d379896f306f5e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"                     \u0027hard_limit\u0027: -1,"},{"line_number":53,"context_line":"                     \u0027deleted\u0027: False, })"},{"line_number":54,"context_line":"    except Exception:"},{"line_number":55,"context_line":"        LOG.error(_LE(\"Default per_volume_gigabytes row not inserted\""},{"line_number":56,"context_line":"                      \"into the quota_classes.\"))"},{"line_number":57,"context_line":"        raise"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_3cffc3ab","line":55,"in_reply_to":"fa32b979_2389f026","updated":"2015-06-16 05:11:02.000000000","message":"Yes right,\n\ni will do it.","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"}],"cinder/exception.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9d2a0dab36f141b01b31e313c3197a3083050ba0","unresolved":false,"context_lines":[{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d exceeds,\""},{"line_number":460,"context_line":"                \"allowed maximum limit is %(limit)d \")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"class VolumeBackupSizeExceedsAvailableQuota(QuotaError):"},{"line_number":464,"context_line":"    message \u003d _(\"Requested backup exceeds allowed Backup gigabytes \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_d7d32ed4","line":461,"updated":"2015-05-27 11:24:00.000000000","message":"End the message with a period rather than with a space.  I suggest:\n\nmessage \u003d _(\"Requested volume size %(size)d exceeds \"\n                      \"allowed maximum volume size limit %(limit)d.\")","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"3c4382208c3b0866d19e53e31d5163f8f0c48805","unresolved":false,"context_lines":[{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d exceeds,\""},{"line_number":460,"context_line":"                \"allowed maximum limit is %(limit)d \")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"class VolumeBackupSizeExceedsAvailableQuota(QuotaError):"},{"line_number":464,"context_line":"    message \u003d _(\"Requested backup exceeds allowed Backup gigabytes \""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_a64a9481","line":461,"in_reply_to":"7a016987_d7d32ed4","updated":"2015-05-28 10:45:27.000000000","message":"ok, i will do it","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"f2c7ddb2251fdf8f21ad26278f1fa1feeca95164","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d exceeds,\""},{"line_number":460,"context_line":"                \"allowed maximum limit is %(limit)d.\")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"class VolumeBackupSizeExceedsAvailableQuota(QuotaError):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_d2073cc8","line":460,"updated":"2015-05-30 19:17:38.000000000","message":"In change set #2 you said \"I will do it\" but only did part of the request.  Please do it all or say why not.","commit_id":"d27f9bf1cda97a4605269be1017abcdcf82aaeaf"},{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"ba790cef595a74f8a8c3ba23f856692719d5cb16","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d exceeds,\""},{"line_number":460,"context_line":"                \"allowed maximum limit is %(limit)d.\")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"class VolumeBackupSizeExceedsAvailableQuota(QuotaError):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5afe65bd_4f358544","line":460,"in_reply_to":"7a016987_78ace99e","updated":"2015-06-02 11:04:34.000000000","message":"Nevertheless, Tom suggested \"Requested volume size %(size)d exceeds allowed maximum volume size limit %(limit)d.\". I agree with this suggestion. As it is, the message is grammatically incorrect.","commit_id":"d27f9bf1cda97a4605269be1017abcdcf82aaeaf"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"bacb481b55b9e43e64f69602ddd25f612f2c6eb2","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d exceeds,\""},{"line_number":460,"context_line":"                \"allowed maximum limit is %(limit)d.\")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"class VolumeBackupSizeExceedsAvailableQuota(QuotaError):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a016987_78ace99e","line":460,"in_reply_to":"7a016987_d2073cc8","updated":"2015-05-31 03:13:00.000000000","message":"in patch set : 2\n\nSoren commented on below file\ncinder/volume/flows/api/create_volume.py not for exception.py file\nand that comment was for the log message , he said to make it clear.\nbut i remove the log message because in next line i am giving the exception,\nand we will get the exception message in the log file so no need to add extra log message , that\u0027s why i removed it","commit_id":"d27f9bf1cda97a4605269be1017abcdcf82aaeaf"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d is larger than,\""},{"line_number":460,"context_line":"                \"maximum allowed limit %(limit)d.\")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_ab5e3b43","line":459,"updated":"2015-06-05 11:19:11.000000000","message":"space instead of comma, I think","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"ed29fa3703994be094908c1cbb8d6923599f890c","unresolved":false,"context_lines":[{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d is larger than,\""},{"line_number":460,"context_line":"                \"maximum allowed limit %(limit)d.\")"},{"line_number":461,"context_line":""},{"line_number":462,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_68303f57","line":459,"in_reply_to":"3afb71cf_ab5e3b43","updated":"2015-06-05 14:09:26.000000000","message":"ok, i will do it","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"254d7b03aa6c5ce8d4a744929d1fed9e278a8e4e","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                \"%(consumed)sG has been consumed.\")"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d is larger than \""},{"line_number":460,"context_line":"                \"maximum allowed limit %(limit)d.\")"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_e6e07098","line":458,"updated":"2015-06-09 13:19:42.000000000","message":"I think we can reuse the existing Exception from above maybe... no?","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"4ead720edcb7e20ca35604ad6e353719e18b8f08","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                \"%(consumed)sG has been consumed.\")"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d is larger than \""},{"line_number":460,"context_line":"                \"maximum allowed limit %(limit)d.\")"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_f55370e0","line":458,"in_reply_to":"3afb71cf_e6e07098","updated":"2015-06-09 14:17:25.000000000","message":"John,\n\nabove exception should occurs when tenant exceeds quota of snapshot,volume or giabytes.\n\nbut here we want to add restriction to create a large volume.\n\nif i will use the same exception for volume_limit also\nthen it looks like:\nRequested volume or snapshot exceeds allowed gigabytes or allowed limit \"\n \"quota. Requested %(requested)sG, quota is %(quota)sG and \"\n \"%(consumed)sG has been consumed and maximum allowed limit is %(limit).\n\nand it doesn\u0027t seems specific information .\n\nwhat do you think?","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"947b3ae1f25bdd7e32ca59314032342320b9de0e","unresolved":false,"context_lines":[{"line_number":455,"context_line":"                \"%(consumed)sG has been consumed.\")"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""},{"line_number":458,"context_line":"class VolumeSizeExceedsLimit(QuotaError):"},{"line_number":459,"context_line":"    message \u003d _(\"Requested volume size %(size)d is larger than \""},{"line_number":460,"context_line":"                \"maximum allowed limit %(limit)d.\")"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_d544f4b7","line":458,"in_reply_to":"3afb71cf_f55370e0","updated":"2015-06-09 14:22:10.000000000","message":"My thought was combine the exceptions into one rather than adding another.  We have a tendency to proliferate exception classes, sometimes unwarranted IMO.\n\nThat being said, it\u0027s not a big deal for me, it was just an observation/suggestion.  If you prefer what you have here that\u0027s fine with me.  We don\u0027t have any real guidance on this so it\u0027s not fair for me to impose my personal opinion here.","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"}],"cinder/quota.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"bcd3c8b1ebe9b0de7870ee6b499ec646ea0e7eca","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_quota\u0027,"},{"line_number":74,"context_line":"               default\u003d1000,"},{"line_number":75,"context_line":"               help\u003d\u0027max size allowed per volume, in gigabytes\u0027)]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_1192f64b","line":75,"updated":"2015-05-27 11:46:23.000000000","message":"s/max/Max \u0026 Comma at the end.","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"bcaae49ab36434260e1d414da953e57dee48179c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_quota\u0027,"},{"line_number":74,"context_line":"               default\u003d1000,"},{"line_number":75,"context_line":"               help\u003d\u0027max size allowed per volume, in gigabytes\u0027)]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_a905c7c2","line":75,"in_reply_to":"7a016987_1192f64b","updated":"2015-05-28 10:58:20.000000000","message":"ok, i will do it","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"9d2a0dab36f141b01b31e313c3197a3083050ba0","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"class AbsoluteResource(BaseResource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_37b602dd","line":530,"updated":"2015-05-27 11:24:00.000000000","message":"I don\u0027t understand the point of this change.  Wouldn\u0027t you want self.sync to be False or None if it was set that way in the __init__ call?","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"d4adba886727267d1adf92a523707801c657aeeb","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"class AbsoluteResource(BaseResource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_5a35f343","line":530,"in_reply_to":"7a016987_14dcf2e2","updated":"2015-05-28 12:37:41.000000000","message":"@Soren: In this feature , we just need to check the limit of a resource we don\u0027t need to sync the resource. [where we want to consume quota there we required sync attribute]\nand for no_sync option we don\u0027t need sync attribute.\nPlease have a look into _get_quotas definition [in cinder/quota.py]","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"526e443e16c6a1bb4acee5571d0a9932519f3cc6","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"class AbsoluteResource(BaseResource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_8961ebaa","line":530,"in_reply_to":"7a016987_37b602dd","updated":"2015-05-28 10:57:37.000000000","message":"Please have a look into _get_quotas definition [in cinder/quota.py], here we are checking resource has sync attribute or not.","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"63e7e0bab4dae703cf4a0d18f17b9d37bd59cff1","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"class AbsoluteResource(BaseResource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_55b024dd","line":530,"in_reply_to":"7a016987_5a35f343","updated":"2015-05-28 13:04:20.000000000","message":"I\u0027m sorry, but I don\u0027t see any mention of \"sync\" anywhere else in your patch? Perhaps I\u0027m not looking in the right place.","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"2feb8d9f365ab43ce4b2edca2fefe058bc5fa111","unresolved":false,"context_lines":[{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""},{"line_number":533,"context_line":"class AbsoluteResource(BaseResource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_14dcf2e2","line":530,"in_reply_to":"7a016987_8961ebaa","updated":"2015-05-28 11:48:20.000000000","message":"Can you explain how this change is related to this specific feature?","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"af23a8a369665fe568b61d300a17d2e2ab0b5300","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_quota\u0027,"},{"line_number":74,"context_line":"               default\u003d1000,"},{"line_number":75,"context_line":"               help\u003d\u0027max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_9f7fb616","line":75,"updated":"2015-05-29 08:25:00.000000000","message":"Capital letter in front.","commit_id":"bb38aee1cadc24c6852955083def2260c5b38a03"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"37c6afe688fd42c6e905b924531c65de6b98d9ae","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_quota\u0027,"},{"line_number":74,"context_line":"               default\u003d1000,"},{"line_number":75,"context_line":"               help\u003d\u0027max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_b5ef311d","line":75,"in_reply_to":"7a016987_9f7fb616","updated":"2015-05-29 09:16:30.000000000","message":"ok, i will do it","commit_id":"bb38aee1cadc24c6852955083def2260c5b38a03"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                default\u003dTrue,"},{"line_number":71,"context_line":"                help\u003d\u0027Enables or disables use of default quota class \u0027"},{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_size_limit\u0027,"},{"line_number":74,"context_line":"               default\u003d1000,"},{"line_number":75,"context_line":"               help\u003d\u0027Max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_3da60ec2","line":73,"updated":"2015-06-05 11:19:11.000000000","message":"This will break existing deployments where people can presently create volumes larger than 1000GB. Would -1 or 0 be a better default value, to indicate no limit on max size?","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"543534e2e7025bd39d6d7f22bad6b6ef8452783e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                default\u003dTrue,"},{"line_number":71,"context_line":"                help\u003d\u0027Enables or disables use of default quota class \u0027"},{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_size_limit\u0027,"},{"line_number":74,"context_line":"               default\u003d1000,"},{"line_number":75,"context_line":"               help\u003d\u0027Max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_a210954f","line":73,"in_reply_to":"3afb71cf_3da60ec2","updated":"2015-06-05 13:39:52.000000000","message":"this doesn\u0027t break any functionality , here i want to restrict the user to create larger volume, if i will set max-limit\u003d -1 then this complete patch will be useless .","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        \"\"\""},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_ab251bc3","line":529,"updated":"2015-06-05 11:19:11.000000000","message":"Is this related to this change?","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"543534e2e7025bd39d6d7f22bad6b6ef8452783e","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        \"\"\""},{"line_number":527,"context_line":""},{"line_number":528,"context_line":"        super(ReservableResource, self).__init__(name, flag\u003dflag)"},{"line_number":529,"context_line":"        if sync:"},{"line_number":530,"context_line":"            self.sync \u003d sync"},{"line_number":531,"context_line":""},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_226385b3","line":529,"in_reply_to":"3afb71cf_ab251bc3","updated":"2015-06-05 13:39:52.000000000","message":"yes \nwhenever we want to check the limit without sync, we don\u0027t need to declare sync attribute  \nplease have a look into the _get_quotas function.\nhere we are checking we have \"sync\" attribute or not","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"254d7b03aa6c5ce8d4a744929d1fed9e278a8e4e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_size_limit\u0027,"},{"line_number":74,"context_line":"               default\u003d-1,"},{"line_number":75,"context_line":"               help\u003d\u0027Max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_695b33f7","line":75,"updated":"2015-06-09 13:19:42.000000000","message":"This should be named following the same pattern IMO; \"quota_per_volume_gigabytes\"","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"a02b94d4e271dbcad384344c0d62cef314e22c09","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_size_limit\u0027,"},{"line_number":74,"context_line":"               default\u003d-1,"},{"line_number":75,"context_line":"               help\u003d\u0027Max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_1b775dd4","line":75,"in_reply_to":"3afb71cf_155e0c44","updated":"2015-06-09 15:04:40.000000000","message":"Sorry, I hadn\u0027t seen that folks asked you to change it.  Ok... well, I guess that\u0027s fine.  The problem I have however is that limit\u0027s are typically associated to be taken as \"global limits\" that are allowed on a resource.\n\nThis is a tenant based restriction and IMO, anyway.. whatever. It seems that folks in this review as well as core members on IRC have asked you to use size_limit so fine by me.\n\nSorry for the confusion.","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"c1bc969fb06584d29007567da4b1498cf724b0fc","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                     \u0027with default quota.\u0027),"},{"line_number":73,"context_line":"    cfg.IntOpt(\u0027per_volume_size_limit\u0027,"},{"line_number":74,"context_line":"               default\u003d-1,"},{"line_number":75,"context_line":"               help\u003d\u0027Max size allowed per volume, in gigabytes\u0027), ]"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"CONF \u003d cfg.CONF"},{"line_number":78,"context_line":"CONF.register_opts(quota_opts)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3afb71cf_155e0c44","line":75,"in_reply_to":"3afb71cf_695b33f7","updated":"2015-06-09 14:26:07.000000000","message":"John,\n\nin my first patch i used \"quota_per_volume_gigabytes\" but people get confused.\n\nthey asked \"this is the user level quota or what?\"\n\nAs they suggested i make  it \"per_volume_size_limit\".\n\nplease suggest me what should i use?","commit_id":"ea7086856b2bdd6e5b11f9154d609263968c3db9"}],"cinder/tests/unit/api/contrib/test_quotas.py":[{"author":{"_account_id":14428,"name":"Bharat Kumar Kobagana","email":"bharath.kobagana@gmail.com","username":"bharatkk"},"change_message_id":"bcd3c8b1ebe9b0de7870ee6b499ec646ea0e7eca","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                 \u0027volumes\u0027: volumes,"},{"line_number":37,"context_line":"                 \u0027backups\u0027: backups,"},{"line_number":38,"context_line":"                 \u0027backup_gigabytes\u0027: backup_gigabytes,"},{"line_number":39,"context_line":"                 \u0027per_volume_gigabytes\u0027: per_volume_gigabytes}"},{"line_number":40,"context_line":"    # need to consider preexisting volume types as well"},{"line_number":41,"context_line":"    volume_types \u003d db.volume_type_get_all(context.get_admin_context())"},{"line_number":42,"context_line":"    for volume_type in volume_types:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_919ee652","line":39,"updated":"2015-05-27 11:46:23.000000000","message":"the last item in the dictionary should have a trailing comma.\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"87e9101ec30924c32b9890e0b55aad08c18a45b6","unresolved":false,"context_lines":[{"line_number":36,"context_line":"                 \u0027volumes\u0027: volumes,"},{"line_number":37,"context_line":"                 \u0027backups\u0027: backups,"},{"line_number":38,"context_line":"                 \u0027backup_gigabytes\u0027: backup_gigabytes,"},{"line_number":39,"context_line":"                 \u0027per_volume_gigabytes\u0027: per_volume_gigabytes}"},{"line_number":40,"context_line":"    # need to consider preexisting volume types as well"},{"line_number":41,"context_line":"    volume_types \u003d db.volume_type_get_all(context.get_admin_context())"},{"line_number":42,"context_line":"    for volume_type in volume_types:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_892fab3d","line":39,"in_reply_to":"7a016987_919ee652","updated":"2015-05-28 10:58:58.000000000","message":"ok , i will do it","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"}],"cinder/tests/unit/test_quota.py":[{"author":{"_account_id":11224,"name":"Swami Reddy","email":"swamireddy@gmail.com","username":"swamireddy"},"change_message_id":"16fed6aba4e8c6dcff128633cdf79fe6fd15346d","unresolved":false,"context_lines":[{"line_number":1049,"context_line":"                                             reserved\u003d0, ),"},{"line_number":1050,"context_line":"                              volumes\u003ddict(limit\u003d10,"},{"line_number":1051,"context_line":"                                           in_use\u003d2,"},{"line_number":1052,"context_line":"                                           reserved\u003d0, ),"},{"line_number":1053,"context_line":"                              ))"},{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":"    def test_get_project_quotas_no_usages(self):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3afb71cf_8e843f5e","line":1052,"updated":"2015-06-09 09:44:00.000000000","message":"Remove the empty line below.","commit_id":"b6d82716bdbe8fced2ed10158c0e0c96b092a983"}],"cinder/volume/flows/api/create_volume.py":[{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"2feb8d9f365ab43ce4b2edca2fefe058bc5fa111","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                               **values)"},{"line_number":578,"context_line":"        except exception.OverQuota as e:"},{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            msg \u003d _LW(\"volume size %(size)dG has exceeded limit is %(limit)dG\")"},{"line_number":581,"context_line":"            LOG.warning(msg,"},{"line_number":582,"context_line":"                        {\u0027size\u0027: size,"},{"line_number":583,"context_line":"                         \u0027limit\u0027: quotas[\u0027per_volume_gigabytes\u0027]})"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_b4fe3eac","line":580,"updated":"2015-05-28 11:48:20.000000000","message":"Start sentence with capital letter.\n\nMake it include project information.\n\nSomething like:\n\n\"Per-volume limit exceeded for %(project_id)s. Tried to create %(size)dG size volume. Limit is %(limit)dG\". project_id is an attribute on the context object.","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"2feb8d9f365ab43ce4b2edca2fefe058bc5fa111","unresolved":false,"context_lines":[{"line_number":583,"context_line":"                         \u0027limit\u0027: quotas[\u0027per_volume_gigabytes\u0027]})"},{"line_number":584,"context_line":"            raise exception.\\"},{"line_number":585,"context_line":"                VolumeSizeExceedsLimit(size \u003d size,"},{"line_number":586,"context_line":"                                       limit \u003d quotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":587,"context_line":"            return"},{"line_number":588,"context_line":"        try:"},{"line_number":589,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: size}"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_945ea2e7","line":586,"updated":"2015-05-28 11:48:20.000000000","message":"No spaces before and after \u0027\u003d\u0027 in method calls.","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"2feb8d9f365ab43ce4b2edca2fefe058bc5fa111","unresolved":false,"context_lines":[{"line_number":584,"context_line":"            raise exception.\\"},{"line_number":585,"context_line":"                VolumeSizeExceedsLimit(size \u003d size,"},{"line_number":586,"context_line":"                                       limit \u003d quotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":587,"context_line":"            return"},{"line_number":588,"context_line":"        try:"},{"line_number":589,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: size}"},{"line_number":590,"context_line":"            QUOTAS.add_volume_type_opts(context, reserve_opts, volume_type_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_144cf240","line":587,"updated":"2015-05-28 11:48:20.000000000","message":"This return is never reached, due to raising an exception on the preceding line.","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"1b2b67c8965c1277803a6ede6aa5900bdbd34f1e","unresolved":false,"context_lines":[{"line_number":584,"context_line":"            raise exception.\\"},{"line_number":585,"context_line":"                VolumeSizeExceedsLimit(size \u003d size,"},{"line_number":586,"context_line":"                                       limit \u003d quotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":587,"context_line":"            return"},{"line_number":588,"context_line":"        try:"},{"line_number":589,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: size}"},{"line_number":590,"context_line":"            QUOTAS.add_volume_type_opts(context, reserve_opts, volume_type_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a016987_5ae8537c","line":587,"in_reply_to":"7a016987_144cf240","updated":"2015-05-28 12:42:01.000000000","message":"@soren: yes right, i will fix it","commit_id":"c7cf99c92459776acdb3d2e0b36ae2bebb8390dc"},{"author":{"_account_id":518,"name":"Soren Hansen","email":"soren@linux2go.dk","username":"soren"},"change_message_id":"1fc89c9c3219f8e631f0aeaf2c97b5083d05587c","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                               **values)"},{"line_number":578,"context_line":"        except exception.OverQuota as e:"},{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            msg \u003d _LW(\"Volume size %(size)dG has exceeded limit is %(limit)dG\")"},{"line_number":581,"context_line":"            LOG.warning(msg,"},{"line_number":582,"context_line":"                        {\u0027size\u0027: size,"},{"line_number":583,"context_line":"                         \u0027limit\u0027: quotas[\u0027per_volume_gigabytes\u0027]})"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_5df03cfd","line":580,"updated":"2015-05-28 19:00:45.000000000","message":"You only addressed part of my comment here. The grammar is still broken and it doesn\u0027t include enough information to be useful. Remember, this is what goes into our log file, not what is presented to users, so without project info, it\u0027ll almost certainly disappear in the noise of the logs.","commit_id":"e9fbae29aa7da3eb4e821b438a3a0ba162d31f2a"},{"author":{"_account_id":5538,"name":"Rushi Agrawal","email":"rushi.openstack@gmail.com","username":"rushiagr"},"change_message_id":"1d6150822836afcb8f55bda99f45135b44a15d25","unresolved":false,"context_lines":[{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            raise exception.\\"},{"line_number":581,"context_line":"                VolumeSizeExceedsLimit(size\u003dsize,"},{"line_number":582,"context_line":"                                       limit\u003dquotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":583,"context_line":"        try:"},{"line_number":584,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: size}"},{"line_number":585,"context_line":"            QUOTAS.add_volume_type_opts(context, reserve_opts, volume_type_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_1d57d203","line":582,"updated":"2015-06-05 11:19:11.000000000","message":"For better readability, you can put a space before the next try:.. block","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"44eea0c7b490630d983e54ddc9d191a6c4ede9c1","unresolved":false,"context_lines":[{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            raise exception.\\"},{"line_number":581,"context_line":"                VolumeSizeExceedsLimit(size\u003dsize,"},{"line_number":582,"context_line":"                                       limit\u003dquotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":583,"context_line":"        try:"},{"line_number":584,"context_line":"            reserve_opts \u003d {\u0027volumes\u0027: 1, \u0027gigabytes\u0027: size}"},{"line_number":585,"context_line":"            QUOTAS.add_volume_type_opts(context, reserve_opts, volume_type_id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3afb71cf_48f3430b","line":582,"in_reply_to":"3afb71cf_1d57d203","updated":"2015-06-05 14:00:41.000000000","message":"ok i will do it.","commit_id":"aeb8bc2abb3903a803e9f1038b9a33cdf04713b9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"0d75bf131270d32c940235fbc8bc3c6246e7f739","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                               **values)"},{"line_number":578,"context_line":"        except exception.OverQuota as e:"},{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            raise exception.\\"},{"line_number":581,"context_line":"                VolumeSizeExceedsLimit(size\u003dsize,"},{"line_number":582,"context_line":"                                       limit\u003dquotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_c3504461","line":580,"updated":"2015-06-15 19:23:09.000000000","message":"Please reformat to avoid using the \\ line continuation.","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"8a8cc057a373c5fae24b035709516c9905010365","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                               **values)"},{"line_number":578,"context_line":"        except exception.OverQuota as e:"},{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            raise exception.\\"},{"line_number":581,"context_line":"                VolumeSizeExceedsLimit(size\u003dsize,"},{"line_number":582,"context_line":"                                       limit\u003dquotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_e75e8611","line":580,"in_reply_to":"fa32b979_bcb753f4","updated":"2015-06-16 15:32:56.000000000","message":"You should be able to do:\n\n    raise exception.VolumeSizeExceedLimit(\n        size\u003dsize, limit\u003dquotas[\u0027per_volume_gigabytes\u0027])","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"},{"author":{"_account_id":15254,"name":"rakesh mishra","email":"mishra.rakesh510@gmail.com","username":"mishra.rakesh510"},"change_message_id":"647845a24cd15648a84e16debc9a662b7ffa063c","unresolved":false,"context_lines":[{"line_number":577,"context_line":"                               **values)"},{"line_number":578,"context_line":"        except exception.OverQuota as e:"},{"line_number":579,"context_line":"            quotas \u003d e.kwargs[\u0027quotas\u0027]"},{"line_number":580,"context_line":"            raise exception.\\"},{"line_number":581,"context_line":"                VolumeSizeExceedsLimit(size\u003dsize,"},{"line_number":582,"context_line":"                                       limit\u003dquotas[\u0027per_volume_gigabytes\u0027])"},{"line_number":583,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa32b979_bcb753f4","line":580,"in_reply_to":"fa32b979_c3504461","updated":"2015-06-16 05:13:43.000000000","message":"@Sean McGinnis,\n\nI tried the same thing but it exceeds number of characters limit :(","commit_id":"9d1ef15416ec3c4c10dd22a5272dd5f7a0e377b8"}]}
