)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"266f0ee76116e80369fc91e29dbb3167dc2f5122","unresolved":false,"context_lines":[{"line_number":9,"context_line":"A new table volume_attachment has been added recently. During the"},{"line_number":10,"context_line":"creation of the temporary volume in migration, the attribute"},{"line_number":11,"context_line":"volume_attachment is not empty if an attached volume is going to be"},{"line_number":12,"context_line":"migrated, because all the properties are simplily copied."},{"line_number":13,"context_line":"This non-empty attribute volume_attachment leads to the failure of"},{"line_number":14,"context_line":"the volume creation. This patch removes this attribute before the"},{"line_number":15,"context_line":"temporary volume creation."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"da9b358b_8ca7144f","line":12,"updated":"2015-03-30 08:21:57.000000000","message":"s/simplily/simply","commit_id":"489375495ec14caad8ac56a281f814886433fb69"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"272ba7dd965f1b422fc6064ad3999a0f7f578d05","unresolved":false,"context_lines":[{"line_number":3605,"context_line":"            self.assertIsNone(volume[\u0027migration_status\u0027])"},{"line_number":3606,"context_line":"            self.assertEqual(\u0027available\u0027, volume[\u0027status\u0027])"},{"line_number":3607,"context_line":""},{"line_number":3608,"context_line":"    def test__migrate_volume_generic(self):"},{"line_number":3609,"context_line":"        fake_volume_id \u003d \u0027fake_volume_id\u0027"},{"line_number":3610,"context_line":"        volume \u003d tests_utils.create_volume(self.context, size\u003d1,"},{"line_number":3611,"context_line":"                                           host\u003dCONF.host)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6ced46_8aaea296","line":3608,"updated":"2015-03-26 10:02:28.000000000","message":"Duplicated _","commit_id":"bc5a73c931cdc5bd0f72a63a9aa5e1297e26dbf7"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"272ba7dd965f1b422fc6064ad3999a0f7f578d05","unresolved":false,"context_lines":[{"line_number":3656,"context_line":"        volume \u003d tests_utils.create_volume(self.context, size\u003d1,"},{"line_number":3657,"context_line":"                                           host\u003dCONF.host)"},{"line_number":3658,"context_line":"        host_obj \u003d {\u0027host\u0027: \u0027newhost\u0027, \u0027capabilities\u0027: {}}"},{"line_number":3659,"context_line":"        with mock.patch.object(self.volume.driver, \u0027migrate_volume\u0027) as \\"},{"line_number":3660,"context_line":"                mock_migrate_volume,\\"},{"line_number":3661,"context_line":"                mock.patch.object(volume_rpcapi.VolumeAPI, \u0027create_volume\u0027) as \\"},{"line_number":3662,"context_line":"                mock_create_volume,\\"}],"source_content_type":"text/x-python","patch_set":5,"id":"1a6ced46_6a97a63a","line":3659,"updated":"2015-03-26 10:02:28.000000000","message":"You may use patch as decorator for this test, but I guess it\u0027s a matter of preference.","commit_id":"bc5a73c931cdc5bd0f72a63a9aa5e1297e26dbf7"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"23e3edaa108570a6855cd4698cf76a5848ca7596","unresolved":false,"context_lines":[{"line_number":3611,"context_line":"    @mock.patch(\u0027cinder.db.volume_get\u0027)"},{"line_number":3612,"context_line":"    def test_migrate_volume_generic(self, volume_get,"},{"line_number":3613,"context_line":"                                    migrate_volume_completion,"},{"line_number":3614,"context_line":"                                    update_server_volume): com"},{"line_number":3615,"context_line":"        fake_volume_id \u003d \u0027fake_volume_id\u0027"},{"line_number":3616,"context_line":"        fake_new_volume \u003d {\u0027status\u0027: \u0027available\u0027, \u0027id\u0027: fake_volume_id}"},{"line_number":3617,"context_line":"        host_obj \u003d {\u0027host\u0027: \u0027newhost\u0027, \u0027capabilities\u0027: {}}"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa963961_74524915","line":3614,"updated":"2015-03-27 13:56:55.000000000","message":"There is a leftover \"com\" here which I think you forgot to delete.","commit_id":"17707102f9c31b4479a9739b128cd8c6059b331e"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"77bbc5ce4210380fe045193afedee933cf90c82d","unresolved":false,"context_lines":[{"line_number":3755,"context_line":"                                       host_obj, True)"},{"line_number":3756,"context_line":"            volume \u003d db.volume_get(context.get_admin_context(),"},{"line_number":3757,"context_line":"                                   fake_volume[\u0027id\u0027])"},{"line_number":3758,"context_line":"            self.assertEqual(volume[\u0027host\u0027], \u0027newhost\u0027)"},{"line_number":3759,"context_line":"            self.assertIsNone(volume[\u0027migration_status\u0027])"},{"line_number":3760,"context_line":"            self.assertFalse(mock_migrate_volume.called)"},{"line_number":3761,"context_line":"            self.assertFalse(delete_volume.called)"}],"source_content_type":"text/x-python","patch_set":19,"id":"baa041b7_d7c8f776","line":3758,"updated":"2015-04-02 13:06:58.000000000","message":"Should be (expected, actual)","commit_id":"f7eb9bd06b153817f0424219165619f0092d4894"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"48468fdbe67af0737652840b749bdd9445e9bad7","unresolved":false,"context_lines":[{"line_number":3904,"context_line":"                mock_detach_volume.assert_called_with(self.context,"},{"line_number":3905,"context_line":"                                                      old_volume[\u0027id\u0027],"},{"line_number":3906,"context_line":"                                                      attachment_id)"},{"line_number":3907,"context_line":"                attachment \u003d db.volume_attachment_get_by_instance_uuid("},{"line_number":3908,"context_line":"                    self.context, old_volume[\u0027id\u0027], instance_uuid)"},{"line_number":3909,"context_line":"                self.assertIsNotNone(attachment)"},{"line_number":3910,"context_line":"                self.assertEqual(attachment[\u0027attached_host\u0027], attached_host)"}],"source_content_type":"text/x-python","patch_set":19,"id":"baa041b7_4cde8712","line":3907,"updated":"2015-04-03 00:19:32.000000000","message":"Can\u0027t we mock this call as well ?","commit_id":"f7eb9bd06b153817f0424219165619f0092d4894"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"77bbc5ce4210380fe045193afedee933cf90c82d","unresolved":false,"context_lines":[{"line_number":3907,"context_line":"                attachment \u003d db.volume_attachment_get_by_instance_uuid("},{"line_number":3908,"context_line":"                    self.context, old_volume[\u0027id\u0027], instance_uuid)"},{"line_number":3909,"context_line":"                self.assertIsNotNone(attachment)"},{"line_number":3910,"context_line":"                self.assertEqual(attachment[\u0027attached_host\u0027], attached_host)"},{"line_number":3911,"context_line":"                self.assertEqual(attachment[\u0027instance_uuid\u0027], instance_uuid)"},{"line_number":3912,"context_line":"            else:"},{"line_number":3913,"context_line":"                self.assertFalse(mock_detach_volume.called)"}],"source_content_type":"text/x-python","patch_set":19,"id":"baa041b7_77a6cbc2","line":3910,"updated":"2015-04-02 13:06:58.000000000","message":"(expected, actual)","commit_id":"f7eb9bd06b153817f0424219165619f0092d4894"}],"cinder/volume/manager.py":[{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"c49b43ba36d7755bba28a3f7067cf98677ab2f11","unresolved":false,"context_lines":[{"line_number":1188,"context_line":"        # I think"},{"line_number":1189,"context_line":"        new_vol_values[\u0027migration_status\u0027] \u003d \u0027target:%s\u0027 % volume[\u0027id\u0027]"},{"line_number":1190,"context_line":"        new_vol_values[\u0027attach_status\u0027] \u003d \u0027detached\u0027"},{"line_number":1191,"context_line":"        new_vol_values[\u0027volume_attachment\u0027] \u003d []"},{"line_number":1192,"context_line":"        new_volume \u003d self.db.volume_create(ctxt, new_vol_values)"},{"line_number":1193,"context_line":"        rpcapi.create_volume(ctxt, new_volume, host[\u0027host\u0027],"},{"line_number":1194,"context_line":"                             None, None, allow_reschedule\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_00c67c49","line":1191,"updated":"2015-03-24 09:20:36.000000000","message":"Could you add comment with the reason of change, please","commit_id":"9c7a9d62a99ccd68b8e308233c7458b5d0971505"}]}
