)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"35e288a5bc2b63a30f0c4b1b31f1d0c1afec092f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix wrong quota deduction when concurrent deletion for None host volume."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1. Put the delete logic of None host volume after the conditional_update,"},{"line_number":10,"context_line":"   let the volume\u0027s status change to \u0027deleting\u0027, so that avoid the quota"},{"line_number":11,"context_line":"   to be decress many times in a concurrent delete situation."},{"line_number":12,"context_line":"2. Add volume host not None be an AND logical to volume.assert_not_frozen()"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I643975024268d4bac6739f97f07ab0b20aa1ab2b"},{"line_number":15,"context_line":"Closes-Bug: #1733179"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df87a7cf_94101f50","line":12,"range":{"start_line":9,"start_character":0,"end_line":12,"end_character":75},"updated":"2017-12-11 16:15:01.000000000","message":"Hi Zhang, its not clear what you are trying to do here. Can you please try to clarify why this happens and how your change fixes the problem?","commit_id":"555ed4b30161f97cfe7eb506573b89765e2fdd9f"}],"cinder/tests/unit/volume/test_volume.py":[{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"35e288a5bc2b63a30f0c4b1b31f1d0c1afec092f","unresolved":false,"context_lines":[{"line_number":881,"context_line":""},{"line_number":882,"context_line":"        volume \u003d objects.Volume.get_by_id(self.context, volume.id)"},{"line_number":883,"context_line":"        self.assertEqual(volume.status, \u0027error\u0027)"},{"line_number":884,"context_line":"        self.assertEqual(volume.host, None)"},{"line_number":885,"context_line":"        self.volume_api.delete(self.context, volume)"},{"line_number":886,"context_line":"        self.assertNotEqual(volume[\u0027terminated_at\u0027], None)"},{"line_number":887,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_f93964a3","line":884,"range":{"start_line":884,"start_character":7,"end_line":884,"end_character":43},"updated":"2017-12-11 16:15:01.000000000","message":"Use assertIsNone()","commit_id":"555ed4b30161f97cfe7eb506573b89765e2fdd9f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"35e288a5bc2b63a30f0c4b1b31f1d0c1afec092f","unresolved":false,"context_lines":[{"line_number":883,"context_line":"        self.assertEqual(volume.status, \u0027error\u0027)"},{"line_number":884,"context_line":"        self.assertEqual(volume.host, None)"},{"line_number":885,"context_line":"        self.volume_api.delete(self.context, volume)"},{"line_number":886,"context_line":"        self.assertNotEqual(volume[\u0027terminated_at\u0027], None)"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"    @mock.patch.object(db.sqlalchemy.api, \u0027volume_get\u0027,"},{"line_number":889,"context_line":"                       side_effect\u003dexception.VolumeNotFound("}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_794d543c","line":886,"range":{"start_line":886,"start_character":8,"end_line":886,"end_character":58},"updated":"2017-12-11 16:15:01.000000000","message":"Use asserIsNotNone()","commit_id":"555ed4b30161f97cfe7eb506573b89765e2fdd9f"}],"cinder/volume/api.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d968e376f03f5d8d70fa37918b275b39b98f2319","unresolved":false,"context_lines":[{"line_number":481,"context_line":"        encryption_key_id \u003d volume.get(\u0027encryption_key_id\u0027, None)"},{"line_number":482,"context_line":"        if encryption_key_id is not None:"},{"line_number":483,"context_line":"            try:"},{"line_number":484,"context_line":"                self.key_manager.delete(context, encryption_key_id)"},{"line_number":485,"context_line":"            except Exception as e:"},{"line_number":486,"context_line":"                volume.update({\u0027status\u0027: \u0027error_deleting\u0027})"},{"line_number":487,"context_line":"                volume.save()"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_7d93f45c","line":484,"range":{"start_line":484,"start_character":16,"end_line":484,"end_character":67},"updated":"2018-07-09 15:01:29.000000000","message":"Will this ever need to be run when volume.host is None?","commit_id":"555ed4b30161f97cfe7eb506573b89765e2fdd9f"}]}
