)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"f7eb374f9d02c05d75b9346b252a8258ad2e69c8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Elena Ezhova \u003ceezhova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-16 17:07:55 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update OSLO Part 8"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Port policy from Oslo and update cinder/policy."},{"line_number":10,"context_line":"Update tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"AAAATH%2F%2Fas8%3D","line":7,"updated":"2013-10-16 13:38:53.000000000","message":"\"Port policy from Oslo and update cinder/policy\" as the subject rather than the generic, please","commit_id":"367a8be251afd98bf7ac7f432087c25abebf8dd9"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"c3457fa161b3c26d90add89e5e2a1173340db249","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Elena Ezhova \u003ceezhova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-16 17:07:55 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update OSLO Part 8"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Port policy from Oslo and update cinder/policy."},{"line_number":10,"context_line":"Update tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":20,"id":"AAAATH%2F%2FJck%3D","line":7,"in_reply_to":"AAAATH%2F%2Fas8%3D","updated":"2013-10-22 14:09:23.000000000","message":"Done","commit_id":"367a8be251afd98bf7ac7f432087c25abebf8dd9"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f2711d7e12905952000e0fd4dcebb693bd2cb9d6","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Elena Ezhova \u003ceezhova@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-10-16 18:36:36 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update openstack/common/policy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Port policy from Oslo and update cinder/policy."},{"line_number":10,"context_line":"Update tests."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"AAAATH%2F%2FZi4%3D","line":7,"updated":"2013-10-16 17:22:23.000000000","message":"Summary should reflect that this is not just an \"Update code from Oslo\" patch, but involves changes in Cinder to use the new policy code.","commit_id":"f2a442d084d005e5b51f0581e2c315a9f19a1dbd"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"0f0b651ebfabfba988c03b69f1d5ce06ea9927cf","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2013-11-14 13:20:31 +0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Update openstack/common/policy and rewrite cinder/policy"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Port policy from Oslo and update cinder/policy."},{"line_number":10,"context_line":"Update tests."},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":25,"id":"AAAATn%2F%2B6MQ%3D","line":8,"updated":"2013-11-18 17:31:18.000000000","message":"Please list what bugs were fixed and what other high level changes were made (i.e. the changelog)","commit_id":"f2f193e4a8f3daaa77e9f251cd3c2dea55732eb7"}],"cinder/api/extensions.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"5717a4f983ccc8ce46bd78d56452efc444f41f43","unresolved":false,"context_lines":[{"line_number":395,"context_line":"                      \u0027user_id\u0027: context.user_id}"},{"line_number":396,"context_line":"        action \u003d \u0027%s_extension:%s\u0027 % (api_name, extension_name)"},{"line_number":397,"context_line":"        enforcer \u003d policy.Enforcer()"},{"line_number":398,"context_line":"        # enforcer.policy_path \u003d \u0027cinder/tests/policy.json\u0027"},{"line_number":399,"context_line":"        enforcer.enforce(context, action, target)"},{"line_number":400,"context_line":"    return authorize"},{"line_number":401,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATH%2F%2Ff%2FI%3D","line":398,"updated":"2013-10-15 13:39:31.000000000","message":"Unuseful comment.","commit_id":"2ec2511b3cc5da5023ad238447c14a0f737728c5"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"761543a7330037820e1683e8e90164bb6cf36921","unresolved":false,"context_lines":[{"line_number":28,"context_line":"from cinder.openstack.common import importutils"},{"line_number":29,"context_line":"from cinder.openstack.common import log as logging"},{"line_number":30,"context_line":"from cinder.openstack.common import policy as common_policy"},{"line_number":31,"context_line":"from cinder import policy"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"CONF \u003d cfg.CONF"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAATH%2F%2FJTI%3D","line":31,"updated":"2013-10-22 15:11:56.000000000","message":"Everywhere else seems to use \"import cinder.policy; enforcer \u003d cinder.policy.Enforcer()... - can we use that pattern here as well please? It makes it far easier to recognise code patterns and also when grepping. Thanks","commit_id":"2383819bdedc21d90b02027aa7a55e3d74d6b525"}],"cinder/policy.py":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"761543a7330037820e1683e8e90164bb6cf36921","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        \"\"\"Check if the given context is associated with an admin role,"},{"line_number":101,"context_line":"           as defined via the \u0027context_is_admin\u0027 RBAC rule."},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"           :param context: Glance request context"},{"line_number":104,"context_line":"           :returns: A non-False value if context role is admin."},{"line_number":105,"context_line":"        \"\"\""},{"line_number":106,"context_line":"        target \u003d context.to_dict()"}],"source_content_type":"text/x-python","patch_set":22,"id":"AAAATH%2F%2FJNA%3D","line":103,"updated":"2013-10-22 15:11:56.000000000","message":"Glance?","commit_id":"2383819bdedc21d90b02027aa7a55e3d74d6b525"}],"cinder/tests/api/contrib/test_admin_actions.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"5717a4f983ccc8ce46bd78d56452efc444f41f43","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from cinder import db"},{"line_number":24,"context_line":"from cinder import exception"},{"line_number":25,"context_line":"from cinder.openstack.common import jsonutils"},{"line_number":26,"context_line":"from cinder.openstack.common import policy as common_policy"},{"line_number":27,"context_line":"from cinder.openstack.common import timeutils"},{"line_number":28,"context_line":"from cinder import test"},{"line_number":29,"context_line":"from cinder.tests.api import fakes"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATH%2F%2Ff4M%3D","line":26,"updated":"2013-10-15 13:39:31.000000000","message":"Correct use native: \ncinder.policy","commit_id":"2ec2511b3cc5da5023ad238447c14a0f737728c5"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"5717a4f983ccc8ce46bd78d56452efc444f41f43","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        self.volume_api \u003d volume_api.API()"},{"line_number":52,"context_line":"        self.stubs.Set(brick_lvm.LVM, \u0027_vg_exists\u0027, lambda x: True)"},{"line_number":53,"context_line":"        self.enforcer \u003d common_policy.Enforcer()"},{"line_number":54,"context_line":"        self.enforcer.policy_path \u003d \u0027etc/cinder/policy.json\u0027"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def tearDown(self):"},{"line_number":57,"context_line":"        shutil.rmtree(self.tempdir)"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATH%2F%2FfyI%3D","line":54,"updated":"2013-10-15 13:39:31.000000000","message":"Is this line really needed? \nin module cinder/test.py you set policy_file. I Think, that it\u0027s enough?","commit_id":"2ec2511b3cc5da5023ad238447c14a0f737728c5"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"5717a4f983ccc8ce46bd78d56452efc444f41f43","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    def test_reset_status_as_non_admin(self):"},{"line_number":80,"context_line":"        # current status is \u0027error\u0027"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        volume \u003d db.volume_create(context.get_admin_context(),"},{"line_number":83,"context_line":"                                  {\u0027status\u0027: \u0027error\u0027})"},{"line_number":84,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/action\u0027 % volume[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATH%2F%2Ff4k%3D","line":81,"updated":"2013-10-15 13:39:31.000000000","message":"Unuseful blank line.","commit_id":"2ec2511b3cc5da5023ad238447c14a0f737728c5"}],"cinder/tests/test_policy.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"5717a4f983ccc8ce46bd78d56452efc444f41f43","unresolved":false,"context_lines":[{"line_number":59,"context_line":"    def test_modified_policy_reloads(self):"},{"line_number":60,"context_line":"        action \u003d \"example:test\""},{"line_number":61,"context_line":"        self.enforcer.enforce(self.context, action, self.target)"},{"line_number":62,"context_line":"        self.enforcer.set_rules(common_policy.Rules({"},{"line_number":63,"context_line":"            \"example:test\": common_policy.parse_rule([\"false:false\"])}))"},{"line_number":64,"context_line":"        self.assertRaises(common_policy.PolicyNotAuthorized,"},{"line_number":65,"context_line":"                          self.enforcer.enforce, self.context,"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATH%2F%2Ffhk%3D","line":62,"updated":"2013-10-15 13:39:31.000000000","message":"May be use just dictionary?\n\nself.enforcer.set_rules({\"example:test\": common_policy.parse_rule([\"false:false\"])})\n\nSame for some follow situations.","commit_id":"2ec2511b3cc5da5023ad238447c14a0f737728c5"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"5717a4f983ccc8ce46bd78d56452efc444f41f43","unresolved":false,"context_lines":[{"line_number":2370,"context_line":"        super(VolumePolicyTestCase, self).tearDown()"},{"line_number":2371,"context_line":""},{"line_number":2372,"context_line":"    def _set_rules(self, rules):"},{"line_number":2373,"context_line":"        self.enforcer.set_rules(common_policy.Rules(rules))"},{"line_number":2374,"context_line":""},{"line_number":2375,"context_line":"    def test_check_policy(self):"},{"line_number":2376,"context_line":"        self.mox.StubOutWithMock(cinder.policy.Enforcer, \u0027enforce\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"AAAATH%2F%2Ffss%3D","line":2373,"updated":"2013-10-15 13:39:31.000000000","message":"I think enough:\nself.enforcer.set_rules(rules)","commit_id":"2ec2511b3cc5da5023ad238447c14a0f737728c5"}]}
