)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17151,"name":"chenying","email":"chenyingko@gmail.com","username":"chenying"},"change_message_id":"016737ed0f88c9d73d26ea4463af4f18621dda7d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Daniel Tadrzak \u003cdaniel.tadrzak@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-08-07 18:13:48 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cleanup for cinder tests with ConsistencyGroups."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch cinder tests to use ConsistencyGroup objects instead of directly"},{"line_number":10,"context_line":"calls to db. Additionally switch over from dict to object notification."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1a4dcd0f_2b25605b","line":7,"updated":"2015-08-10 02:29:34.000000000","message":"https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure\n\n\"The first line should be limited to 50 characters and should not end with a period\"","commit_id":"4ef9a86f61af600817fb5906ec4d7ea792c9541f"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Cleanup for cinder tests with ConsistencyGroups"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Switch cinder tests to use ConsistencyGroup objects instead of directly"},{"line_number":10,"context_line":"calls to db. Additionally switch over from dict to object notification."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Drivers tests need to be fix in other patch."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a4dcd0f_6815b347","line":10,"updated":"2015-08-14 09:17:49.000000000","message":"s/notification/notation","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Switch cinder tests to use ConsistencyGroup objects instead of directly"},{"line_number":10,"context_line":"calls to db. Additionally switch over from dict to object notification."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Drivers tests need to be fix in other patch."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partial-Implements: blueprint cinder-objects"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a4dcd0f_b3024c08","line":12,"updated":"2015-08-14 09:17:49.000000000","message":"s/fix/fixed","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Drivers tests need to be fix in other patch."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Partial-Implements: blueprint cinder-objects"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ib3d4c791e095d89e7bc5e5e9a6b26e8433517ffb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"1a4dcd0f_732364a8","line":15,"updated":"2015-08-14 09:17:49.000000000","message":"No empty line in the footer","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"}],"cinder/consistencygroup/api.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            kwargs[\u0027host\u0027] \u003d orig_cg.host"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        if source_cg:"},{"line_number":208,"context_line":"            kwargs[\u0027volume_type_id\u0027] \u003d source_cg.volume_type_id"},{"line_number":209,"context_line":"            kwargs[\u0027availability_zone\u0027] \u003d source_cg.availability_zone"},{"line_number":210,"context_line":"            kwargs[\u0027host\u0027] \u003d source_cg.host"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_53a3c800","line":208,"updated":"2015-08-14 09:17:49.000000000","message":"I\u0027m ok with these changes, but according to the commit message this should not be part of the patch since this is not a test.","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"}],"cinder/tests/unit/api/contrib/test_consistencygroups.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":399,"context_line":"        self.assertIsNone(cg.host)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    def test_create_delete_consistencygroup_update_quota(self):"},{"line_number":402,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, auth_token\u003dTrue)"},{"line_number":403,"context_line":"        name \u003d \u0027mycg\u0027"},{"line_number":404,"context_line":"        description \u003d \u0027consistency group 1\u0027"},{"line_number":405,"context_line":"        fake_type \u003d {\u0027id\u0027: \u00271\u0027, \u0027name\u0027: \u0027fake_type\u0027}"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_8efda70a","line":402,"updated":"2015-08-14 09:17:49.000000000","message":"We should use self.ctxt","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":482,"context_line":""},{"line_number":483,"context_line":"    def test_update_consistencygroup_success(self):"},{"line_number":484,"context_line":"        volume_type_id \u003d \u0027123456\u0027"},{"line_number":485,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":486,"context_line":"        consistencygroup \u003d self._create_consistencygroup(status\u003d\u0027available\u0027,"},{"line_number":487,"context_line":"                                                         host\u003d\u0027test_host\u0027)"},{"line_number":488,"context_line":"        remove_volume_id \u003d utils.create_volume("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_d304b819","line":485,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":532,"context_line":""},{"line_number":533,"context_line":"    def test_update_consistencygroup_add_volume_not_found(self):"},{"line_number":534,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":535,"context_line":"        consistencygroup \u003d self._create_consistencygroup(ctxt\u003dctxt,"},{"line_number":536,"context_line":"                                                         status\u003d\u0027available\u0027)"},{"line_number":537,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/consistencygroups/%s/update\u0027 %"},{"line_number":538,"context_line":"                                  consistencygroup.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_f353f437","line":535,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":558,"context_line":""},{"line_number":559,"context_line":"    def test_update_consistencygroup_remove_volume_not_found(self):"},{"line_number":560,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":561,"context_line":"        consistencygroup \u003d self._create_consistencygroup(ctxt\u003dctxt,"},{"line_number":562,"context_line":"                                                         status\u003d\u0027available\u0027)"},{"line_number":563,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/consistencygroups/%s/update\u0027 %"},{"line_number":564,"context_line":"                                  consistencygroup.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_d356f829","line":561,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    def test_update_consistencygroup_empty_parameters(self):"},{"line_number":586,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":587,"context_line":"        consistencygroup \u003d self._create_consistencygroup(ctxt\u003dctxt,"},{"line_number":588,"context_line":"                                                         status\u003d\u0027available\u0027)"},{"line_number":589,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/consistencygroups/%s/update\u0027 %"},{"line_number":590,"context_line":"                                  consistencygroup.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_7347e477","line":587,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":609,"context_line":"    def test_update_consistencygroup_add_volume_invalid_state(self):"},{"line_number":610,"context_line":"        volume_type_id \u003d \u0027123456\u0027"},{"line_number":611,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":612,"context_line":"        consistencygroup \u003d self._create_consistencygroup(ctxt\u003dctxt,"},{"line_number":613,"context_line":"                                                         status\u003d\u0027available\u0027)"},{"line_number":614,"context_line":"        add_volume_id \u003d utils.create_volume("},{"line_number":615,"context_line":"            ctxt,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_5342e869","line":612,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def test_update_consistencygroup_add_volume_invalid_volume_type(self):"},{"line_number":645,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":646,"context_line":"        consistencygroup \u003d self._create_consistencygroup(ctxt\u003dctxt,"},{"line_number":647,"context_line":"                                                         status\u003d\u0027available\u0027)"},{"line_number":648,"context_line":"        wrong_type \u003d \u0027wrong-volume-type-id\u0027"},{"line_number":649,"context_line":"        add_volume_id \u003d utils.create_volume("}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_9348708c","line":646,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":678,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":679,"context_line":"        wrong_status \u003d \u0027wrong_status\u0027"},{"line_number":680,"context_line":"        consistencygroup \u003d self._create_consistencygroup(status\u003dwrong_status,"},{"line_number":681,"context_line":"                                                         ctxt\u003dctxt)"},{"line_number":682,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/consistencygroups/%s/update\u0027 %"},{"line_number":683,"context_line":"                                  consistencygroup.id)"},{"line_number":684,"context_line":"        req.method \u003d \u0027PUT\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_f37c54b7","line":681,"updated":"2015-08-14 09:17:49.000000000","message":"Why not use self.ctxt?","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":703,"context_line":"        self.stubs.Set(volume_api.API, \"create\", stubs.stub_volume_create)"},{"line_number":704,"context_line":""},{"line_number":705,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, auth_token\u003dTrue)"},{"line_number":706,"context_line":"        consistencygroup \u003d utils.create_consistencygroup(ctxt)"},{"line_number":707,"context_line":"        volume_id \u003d utils.create_volume("},{"line_number":708,"context_line":"            ctxt,"},{"line_number":709,"context_line":"            consistencygroup_id\u003dconsistencygroup.id)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_93615014","line":706,"updated":"2015-08-14 09:17:49.000000000","message":"We should use self.ctxt","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":846,"context_line":""},{"line_number":847,"context_line":"    def test_create_consistencygroup_from_src_no_host(self):"},{"line_number":848,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, auth_token\u003dTrue)"},{"line_number":849,"context_line":"        consistencygroup \u003d utils.create_consistencygroup(ctxt, host\u003dNone)"},{"line_number":850,"context_line":"        volume_id \u003d utils.create_volume("},{"line_number":851,"context_line":"            ctxt,"},{"line_number":852,"context_line":"            consistencygroup_id\u003dconsistencygroup.id)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_73b92479","line":849,"updated":"2015-08-14 09:17:49.000000000","message":"We should use self.ctxt","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":884,"context_line":""},{"line_number":885,"context_line":"    def test_create_consistencygroup_from_src_cgsnapshot_empty(self):"},{"line_number":886,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, auth_token\u003dTrue)"},{"line_number":887,"context_line":"        consistencygroup \u003d utils.create_consistencygroup(ctxt)"},{"line_number":888,"context_line":"        volume_id \u003d utils.create_volume("},{"line_number":889,"context_line":"            ctxt,"},{"line_number":890,"context_line":"            consistencygroup_id\u003dconsistencygroup.id)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_d3fa7843","line":887,"updated":"2015-08-14 09:17:49.000000000","message":"We should use self.ctxt","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"c183533296fa886842563d588e1569bacaa350ad","unresolved":false,"context_lines":[{"line_number":985,"context_line":"    def test_create_consistencygroup_from_src_cgsnapshot_create_volume_failed("},{"line_number":986,"context_line":"            self, mock_create):"},{"line_number":987,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, auth_token\u003dTrue)"},{"line_number":988,"context_line":"        consistencygroup \u003d utils.create_consistencygroup(ctxt)"},{"line_number":989,"context_line":"        volume_id \u003d utils.create_volume("},{"line_number":990,"context_line":"            ctxt,"},{"line_number":991,"context_line":"            consistencygroup_id\u003dconsistencygroup.id)[\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a4dcd0f_d3e358a3","line":988,"updated":"2015-08-14 09:17:49.000000000","message":"We should use self.ctxt","commit_id":"c61d6eb5fa3f609a032e6d36d6a3cdd08d658b4a"}]}
