)]}'
{"cinder/volume/manager.py":[{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":885,"context_line":"                raise exception.InvalidVolume("},{"line_number":886,"context_line":"                    reason\u003d_(\"volume is already attached\"))"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":889,"context_line":"                msg \u003d \"Cannot attach a deleting volume\""},{"line_number":890,"context_line":"                raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":891,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_3a04fe7c","line":888,"updated":"2016-02-26 00:57:20.000000000","message":"With all this code duplication, seems like maybe there could be a helper function for this.\n\n def raise_if_status_deleting(volume_info, msg):\n   if volume_info[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:\n       raise exception.InvalidVolume(msg)\n\n raise_if_status_deleting(\n    volume, _(\"Cannot attach to a volume being deleted\"))","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"5caaa351d99d8599a1cc38a4ae7cf09d06e715f8","unresolved":false,"context_lines":[{"line_number":885,"context_line":"                raise exception.InvalidVolume("},{"line_number":886,"context_line":"                    reason\u003d_(\"volume is already attached\"))"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":889,"context_line":"                msg \u003d \"Cannot attach a deleting volume\""},{"line_number":890,"context_line":"                raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":891,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_3e6869f5","line":888,"in_reply_to":"9aed3d3a_3a04fe7c","updated":"2016-02-26 05:26:21.000000000","message":"Done","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":886,"context_line":"                    reason\u003d_(\"volume is already attached\"))"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":889,"context_line":"                msg \u003d \"Cannot attach a deleting volume\""},{"line_number":890,"context_line":"                raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"            attachment \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_3a887e22","line":889,"updated":"2016-02-26 00:57:20.000000000","message":"temporary variable doesn\u0027t seem needed. Just call directly. Like on Lines 885-886\n\nAlso the message should be translatable.\n\n _(\"Cannot attach a volume that is being deleted\")","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":17275,"name":"Nate Potter","email":"nathaniel.potter@intel.com","username":"npotter"},"change_message_id":"5caaa351d99d8599a1cc38a4ae7cf09d06e715f8","unresolved":false,"context_lines":[{"line_number":886,"context_line":"                    reason\u003d_(\"volume is already attached\"))"},{"line_number":887,"context_line":""},{"line_number":888,"context_line":"            if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":889,"context_line":"                msg \u003d \"Cannot attach a deleting volume\""},{"line_number":890,"context_line":"                raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":891,"context_line":""},{"line_number":892,"context_line":"            attachment \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_9e3b75eb","line":889,"in_reply_to":"9aed3d3a_3a887e22","updated":"2016-02-26 05:26:21.000000000","message":"In previous patches I\u0027ve been asked to do it this way, though I think that was because the message was a little longer and cumbersome as a parameter. I\u0027ve changed it back for this though, you\u0027re right.","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"            utils.require_driver_initialized(self.driver)"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"            if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":1222,"context_line":"                msg \u003d \"Cannot copy a deleting volume to image\""},{"line_number":1223,"context_line":"                raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1224,"context_line":""},{"line_number":1225,"context_line":"            image_service, image_id \u003d \\"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_9a79ca32","line":1222,"updated":"2016-02-26 00:57:20.000000000","message":"Ditto","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":1368,"context_line":"            raise exception.VolumeBackendAPIException(data\u003derr_msg)"},{"line_number":1369,"context_line":""},{"line_number":1370,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":1371,"context_line":"            msg \u003d \"Cannot initialize connection on a deleting volume\""},{"line_number":1372,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1373,"context_line":""},{"line_number":1374,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_5a87420f","line":1371,"updated":"2016-02-26 00:57:20.000000000","message":"Ditto","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":1502,"context_line":"        volume_ref \u003d self.db.volume_get(context.elevated(), volume_id)"},{"line_number":1503,"context_line":""},{"line_number":1504,"context_line":"        if volume_ref[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":1505,"context_line":"            msg \u003d \"Cannot transfer a deleting volume\""},{"line_number":1506,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1507,"context_line":""},{"line_number":1508,"context_line":"        # NOTE(jdg): Some drivers tie provider info (CHAP) to tenant"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_7a820602","line":1505,"updated":"2016-02-26 00:57:20.000000000","message":"Ditto","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":1861,"context_line":""},{"line_number":1862,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":1863,"context_line":"            msg \u003d \"Cannot migrate a deleting volume\""},{"line_number":1864,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":1865,"context_line":""},{"line_number":1866,"context_line":"        try:"},{"line_number":1867,"context_line":"            # NOTE(flaper87): Verify the driver is enabled"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_3a8fde24","line":1864,"updated":"2016-02-26 00:57:20.000000000","message":"Ditto","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":2045,"context_line":"            volume \u003d objects.Volume.get_by_id(context, volume_id)"},{"line_number":2046,"context_line":""},{"line_number":2047,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":2048,"context_line":"            msg \u003d \"Cannot extend a deleting volume\""},{"line_number":2049,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":2050,"context_line":""},{"line_number":2051,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_7a99666e","line":2048,"updated":"2016-02-26 00:57:20.000000000","message":"Ditto","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"c679f5027f3f5c5a1aced6224cad4bae13b03e04","unresolved":false,"context_lines":[{"line_number":2120,"context_line":"            volume \u003d objects.Volume.get_by_id(context, volume_id)"},{"line_number":2121,"context_line":""},{"line_number":2122,"context_line":"        if volume[\u0027status\u0027] \u003d\u003d \u0027deleting\u0027:"},{"line_number":2123,"context_line":"            msg \u003d \"Cannot retype a deleting volume\""},{"line_number":2124,"context_line":"            raise exception.InvalidVolume(reason\u003dmsg)"},{"line_number":2125,"context_line":""},{"line_number":2126,"context_line":"        status_update \u003d {\u0027status\u0027: volume.previous_status}"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aed3d3a_baa3ee9d","line":2123,"updated":"2016-02-26 00:57:20.000000000","message":"Ditto","commit_id":"e0e143d3d1432348b9b8f5d9df873619647f866b"}]}
