)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"dd840231bcd3f72d71ee1ca506562aa2809b9115","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"quota-defaults lists info with wrong tenant-id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The default quotas will be returned if use cmd \u0027quota-defaults\u0027 with"},{"line_number":10,"context_line":"a wrong tenant-id or a don\u0027t exsit tenant-id."},{"line_number":11,"context_line":"Only admin or project owner can get default quotas after this patch."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1af94dfe_9371eb0e","line":9,"range":{"start_line":9,"start_character":19,"end_line":9,"end_character":23},"updated":"2016-03-19 10:49:05.000000000","message":"nit: This \"will\" makes me thought that that:\nAfter this change, be behavior \"will\" become what you described.","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"4132b635e694a4fa6dec0e487898a3a5c2e9676c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"quota-defaults lists info with wrong tenant-id"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The default quotas will be returned if use cmd \u0027quota-defaults\u0027 with"},{"line_number":10,"context_line":"a wrong tenant-id or a don\u0027t exsit tenant-id."},{"line_number":11,"context_line":"Only admin or project owner can get default quotas after this patch."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Typecal exceptins:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa0719c6_70a174a9","line":10,"updated":"2016-03-21 15:14:21.000000000","message":"s/exsit/exist","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"8bd474030fc3912843af5416a2a50f9692093b1a","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Typecal exceptins:"},{"line_number":14,"context_line":"1.Http 404 will be returned if admin get a not exsit tenant\u0027s default"},{"line_number":15,"context_line":"quotas"},{"line_number":16,"context_line":"2.Http 403 will be returned if not admin get other tenant\u0027s default quotas."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I586514f67d83b4e0ea49c6883005f438bf09ae28"},{"line_number":19,"context_line":"Closes-Bug:# 1307486"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa0719c6_2be82d10","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":75},"updated":"2016-03-21 15:36:57.000000000","message":"Lines should be wrapped at 72 characters.\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"dd840231bcd3f72d71ee1ca506562aa2809b9115","unresolved":false,"context_lines":[{"line_number":16,"context_line":"2.Http 403 will be returned if not admin get other tenant\u0027s default quotas."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I586514f67d83b4e0ea49c6883005f438bf09ae28"},{"line_number":19,"context_line":"Closes-Bug:# 1307486"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1af94dfe_934f2b33","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":20},"updated":"2016-03-19 10:49:05.000000000","message":"nit:  s/\"# 1307486\"/\"#1307486\"\nSo that we can get a herf link to the bug report launchpad.","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":17405,"name":"Jacob Gregor","email":"jgregor@us.ibm.com","username":"jgregor"},"change_message_id":"8bd474030fc3912843af5416a2a50f9692093b1a","unresolved":false,"context_lines":[{"line_number":16,"context_line":"2.Http 403 will be returned if not admin get other tenant\u0027s default quotas."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I586514f67d83b4e0ea49c6883005f438bf09ae28"},{"line_number":19,"context_line":"Closes-Bug:# 1307486"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa0719c6_5d9e0857","line":19,"range":{"start_line":19,"start_character":11,"end_line":19,"end_character":20},"in_reply_to":"1af94dfe_934f2b33","updated":"2016-03-21 15:36:57.000000000","message":"I agree. This should be fixed.","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"690037cefc58163709d5ca1d93e8576bcd7c17f2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only admin can get default quotas after this patch."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Typecal exceptins:"},{"line_number":12,"context_line":"1.Http 404 will be returned if admin get a not exsit tenant\u0027s default"},{"line_number":13,"context_line":"quotas"},{"line_number":14,"context_line":"2.Http 403 will be returned if not admin get other tenant\u0027s default quotas."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa0719c6_5f2e8ea5","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":7},"updated":"2016-03-23 13:35:44.000000000","message":"s/Typecal/Typical","commit_id":"f5e74dd8a517d900a0a3f0b120caae04cea979b5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"690037cefc58163709d5ca1d93e8576bcd7c17f2","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Only admin can get default quotas after this patch."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Typecal exceptins:"},{"line_number":12,"context_line":"1.Http 404 will be returned if admin get a not exsit tenant\u0027s default"},{"line_number":13,"context_line":"quotas"},{"line_number":14,"context_line":"2.Http 403 will be returned if not admin get other tenant\u0027s default quotas."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa0719c6_5f57ae25","line":11,"range":{"start_line":11,"start_character":8,"end_line":11,"end_character":17},"updated":"2016-03-23 13:35:44.000000000","message":"s/exceptins/exceptions","commit_id":"f5e74dd8a517d900a0a3f0b120caae04cea979b5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"690037cefc58163709d5ca1d93e8576bcd7c17f2","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Only admin can get default quotas after this patch."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Typecal exceptins:"},{"line_number":12,"context_line":"1.Http 404 will be returned if admin get a not exsit tenant\u0027s default"},{"line_number":13,"context_line":"quotas"},{"line_number":14,"context_line":"2.Http 403 will be returned if not admin get other tenant\u0027s default quotas."},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa0719c6_62e495ab","line":12,"range":{"start_line":12,"start_character":47,"end_line":12,"end_character":52},"updated":"2016-03-23 13:35:44.000000000","message":"s/exsit/exist","commit_id":"f5e74dd8a517d900a0a3f0b120caae04cea979b5"}],"cinder/api/contrib/quotas.py":[{"author":{"_account_id":8912,"name":"Ryan McNair","email":"rdmcnair@us.ibm.com","username":"rdmcnair"},"change_message_id":"4132b635e694a4fa6dec0e487898a3a5c2e9676c","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":343,"context_line":"        authorize_show(context)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        if context.is_admin:"},{"line_number":346,"context_line":"            quota_utils.get_project_hierarchy(context, id)"},{"line_number":347,"context_line":"        else:"},{"line_number":348,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa0719c6_d0cb2071","line":345,"updated":"2016-03-21 15:14:21.000000000","message":"We\u0027re only requiring that Keystone is a requirement when using nested quotas, so I don\u0027t think it\u0027s a good idea to bring this functionality into any non-nested quota paths.  There are some deployments that don\u0027t even use Keystone and so we want to limit where this coupling exists.","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"dd840231bcd3f72d71ee1ca506562aa2809b9115","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        authorize_show(context)"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"        if context.is_admin:"},{"line_number":346,"context_line":"            quota_utils.get_project_hierarchy(context, id)"},{"line_number":347,"context_line":"        else:"},{"line_number":348,"context_line":"            try:"},{"line_number":349,"context_line":"                sqlalchemy_api.authorize_project_context(context, id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1af94dfe_536be31d","line":346,"range":{"start_line":346,"start_character":24,"end_line":346,"end_character":45},"updated":"2016-03-19 10:49:05.000000000","message":"This function is not designed to check whether a project_id exists.\nLooks a little bit strange for me, although it works for keystoneclient v3 lib.\nLooks like it will not trigger the \"exception logic\" when keystoneclient  version \u003c v3.","commit_id":"053f34a97679870753b21027a4e3280d8f9fe829"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"690037cefc58163709d5ca1d93e8576bcd7c17f2","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    def defaults(self, req, id):"},{"line_number":343,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":344,"context_line":"        authorize_defaults(context)"},{"line_number":345,"context_line":"        projects \u003d  quota_utils.get_all_projects(context)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if id not in [project.id for project in projects]:"},{"line_number":348,"context_line":"            raise webob.exc.HTTPNotFound()"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            return self._format_quota_set(id, QUOTAS.get_defaults("},{"line_number":351,"context_line":"                context, project_id\u003did))"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa0719c6_e258a58c","line":348,"range":{"start_line":345,"start_character":8,"end_line":348,"end_character":42},"updated":"2016-03-23 13:35:44.000000000","message":"IMHO, I don\u0027t think you should treat this here, cause the default quota is not for a specific project, but for all of them. That said, I believe you are doing an unnecessary call to keystone here.","commit_id":"f5e74dd8a517d900a0a3f0b120caae04cea979b5"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"00c9b256308cfe67a72cbb03509f6257398a1ad9","unresolved":false,"context_lines":[{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        return reservations"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"    @wsgi.serializers(xml\u003dQuotaTemplate)"},{"line_number":342,"context_line":"    def defaults(self, req, id):"},{"line_number":343,"context_line":"        context \u003d req.environ[\u0027cinder.context\u0027]"},{"line_number":344,"context_line":"        authorize_defaults(context)"},{"line_number":345,"context_line":"        projects \u003d  quota_utils.get_all_projects(context)"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if id not in [project.id for project in projects]:"},{"line_number":348,"context_line":"            raise webob.exc.HTTPNotFound()"},{"line_number":349,"context_line":"        else:"},{"line_number":350,"context_line":"            return self._format_quota_set(id, QUOTAS.get_defaults("},{"line_number":351,"context_line":"                context, project_id\u003did))"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"    @wsgi.serializers(xml\u003dQuotaTemplate)"},{"line_number":354,"context_line":"    def delete(self, req, id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa0719c6_d62c8e4c","line":351,"range":{"start_line":341,"start_character":0,"end_line":351,"end_character":40},"updated":"2016-03-22 11:49:11.000000000","message":"It\u0027s up to you to whether take my suggestion.\nI suggest this:\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n    @wsgi.serializers(xml\u003dQuotaTemplate)\n    def defaults(self, req, id):\n        context \u003d req.environ[\u0027cinder.context\u0027]\n        authorize_defaults(context)\n        if context.is_admin:\n            projects \u003d  quota_utils.get_all_projects(context)\n\n            if id not in [project.id for project in projects]:\n                raise webob.exc.HTTPNotFound()\n            else:\n                return self._format_quota_set(id, QUOTAS.get_defaults(\n                    context, project_id\u003did))\n        else:\n            if id !\u003d context.project_id:\n                raise exception.NotAuthorized(\"balabalaba\")\n            return self._format_quota_set(id, QUOTAS.get_defaults(\n                        context, project_id\u003did))\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\npolicy.json:\n\"volume_extension:quotas:defaults\": \"rule:admin_or_owner\"","commit_id":"f5e74dd8a517d900a0a3f0b120caae04cea979b5"},{"author":{"_account_id":20105,"name":"Cao ShuFeng","email":"caosf.fnst@cn.fujitsu.com","username":"caosf.fnst"},"change_message_id":"cf37e5b4a98e4fbf7aa874be57c0ad7d0d115843","unresolved":false,"context_lines":[{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        if context.is_admin:"},{"line_number":348,"context_line":"            projects \u003d quota_utils.get_all_projects(context)"},{"line_number":349,"context_line":"            if id not in [project.id for project in projects]:"},{"line_number":350,"context_line":"                raise webob.exc.HTTPNotFound()"},{"line_number":351,"context_line":"        else:"},{"line_number":352,"context_line":"            if id !\u003d context.project_id:"}],"source_content_type":"text/x-python","patch_set":7,"id":"da0c15f0_612258bb","line":349,"range":{"start_line":349,"start_character":24,"end_line":349,"end_character":61},"updated":"2016-03-25 03:23:25.000000000","message":"Unluckily, Erickson and Ryan is right.\nWe can\u0027t use keystoneclient for non-nested quota.\nI think another patch[1] goes further than this change,\nbut that one was still abandoned in the end.\nI can\u0027t figure out any way.\nGood luck to you.\n\n[1]: https://review.openstack.org/#/c/139610/","commit_id":"da3a9c9ca52d6184df99230d9b2b0a2a8da0331f"}],"etc/cinder/policy.json":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"ba2064d9f61271d2f8cca07d24dd1a3617a68dfc","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    \"volume_extension:extended_snapshot_attributes\": \"rule:admin_or_owner\","},{"line_number":37,"context_line":"    \"volume_extension:volume_image_metadata\": \"rule:admin_or_owner\","},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    \"volume_extension:quotas:show\": \"rule:admin_api\","},{"line_number":40,"context_line":"    \"volume_extension:quotas:update\": \"rule:admin_api\","},{"line_number":41,"context_line":"    \"volume_extension:quotas:defaults\": \"rule:admin_or_owner\","},{"line_number":42,"context_line":"    \"volume_extension:quotas:delete\": \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":9,"id":"da0c15f0_e94be129","line":39,"updated":"2016-03-25 11:48:20.000000000","message":"I could be wrong, but will it break Horizon?","commit_id":"815d4f81945e387a2fee64483a05a7d7dd1fdfcf"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"ba2064d9f61271d2f8cca07d24dd1a3617a68dfc","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    \"volume_extension:quotas:show\": \"rule:admin_api\","},{"line_number":40,"context_line":"    \"volume_extension:quotas:update\": \"rule:admin_api\","},{"line_number":41,"context_line":"    \"volume_extension:quotas:defaults\": \"rule:admin_or_owner\","},{"line_number":42,"context_line":"    \"volume_extension:quotas:delete\": \"rule:admin_api\","},{"line_number":43,"context_line":"    \"volume_extension:quota_classes\": \"rule:admin_api\","},{"line_number":44,"context_line":"    \"volume_extension:quota_classes:validate_setup_for_nested_quota_use\": \"rule:admin_api\","}],"source_content_type":"application/json","patch_set":9,"id":"da0c15f0_295679d2","line":41,"updated":"2016-03-25 11:48:20.000000000","message":"The same as above","commit_id":"815d4f81945e387a2fee64483a05a7d7dd1fdfcf"}]}
