)]}'
{"nova/virt/libvirt/driver.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"581ec8471012ed62b94797de0867fb806143fb76","unresolved":false,"context_lines":[{"line_number":2826,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"},{"line_number":2827,"context_line":"        except Exception:"},{"line_number":2828,"context_line":"            self.cleanup_remote_migration(dest, inst_base, inst_base_resize)"},{"line_number":2829,"context_line":"            raise"},{"line_number":2830,"context_line":""},{"line_number":2831,"context_line":"        return disk_info_text"},{"line_number":2832,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FVd8%3D","line":2829,"updated":"2012-09-20 14:59:23.000000000","message":"Unfortunately, if cleanup_remote_migration() does raise an exception, I believe the raise here will re-raise that exception instead of the one that caused us to call cleanup_remote_migration() in the first place.  There is a context handler that you should use instead, nova.openstack.common.excutils.save_and_reraise_exception().","commit_id":"b56c546501a9050eabe7214414f5df765897b869"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"3b5d84cc373f397f95f5ff187e2b899b87b69300","unresolved":false,"context_lines":[{"line_number":2826,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"},{"line_number":2827,"context_line":"        except Exception:"},{"line_number":2828,"context_line":"            self.cleanup_remote_migration(dest, inst_base, inst_base_resize)"},{"line_number":2829,"context_line":"            raise"},{"line_number":2830,"context_line":""},{"line_number":2831,"context_line":"        return disk_info_text"},{"line_number":2832,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FVZY%3D","line":2829,"in_reply_to":"AAAALH%2F%2FVco%3D","updated":"2012-09-20 16:16:42.000000000","message":"It would be nice to get a comment on cleanup_remote_migration so it\u0027s clear that having it as a function is intended for correctness.\n\nAlso, please prefix the name with a _ since it\u0027s not intended to be a public method.","commit_id":"b56c546501a9050eabe7214414f5df765897b869"},{"author":{"_account_id":1528,"name":"Stanislaw Pitucha","email":"viraptor@gmail.com","username":"stanislaw-pitucha"},"change_message_id":"dda2096574ed713e28ffc41d7c460e5573979baf","unresolved":false,"context_lines":[{"line_number":2826,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"},{"line_number":2827,"context_line":"        except Exception:"},{"line_number":2828,"context_line":"            self.cleanup_remote_migration(dest, inst_base, inst_base_resize)"},{"line_number":2829,"context_line":"            raise"},{"line_number":2830,"context_line":""},{"line_number":2831,"context_line":"        return disk_info_text"},{"line_number":2832,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAALH%2F%2FVco%3D","line":2829,"in_reply_to":"AAAALH%2F%2FVd8%3D","updated":"2012-09-20 15:08:05.000000000","message":"Yes, save_and_reraise_exception would work here. But the exception overwriting issue only happens on the same stack level, so this version is also fine:\n\ndef cleanup():\n    try:\n        raise Exception(\u0027cleanup\u0027)\n    except:\n        pass\n\ndef f():\n    try:\n        raise Exception(\u0027a\u0027)\n    except:\n        cleanup()\n        raise\n\nf()\n\n# raises exception \u0027a\u0027, not \u0027cleanup\u0027\n\nI just thought the indenting level starts getting to deep here anyway.","commit_id":"b56c546501a9050eabe7214414f5df765897b869"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"58f5cea2d29bcd1150b98610a0a09e5f100a5b44","unresolved":false,"context_lines":[{"line_number":2827,"context_line":"                    libvirt_utils.copy_image(from_path, img_path, host\u003ddest)"},{"line_number":2828,"context_line":"        except Exception:"},{"line_number":2829,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":2830,"context_line":"                _self.cleanup_remote_migration(dest, inst_base,"},{"line_number":2831,"context_line":"                                               inst_base_resize)"},{"line_number":2832,"context_line":""},{"line_number":2833,"context_line":"        return disk_info_text"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2FVHo%3D","line":2830,"updated":"2012-09-20 19:42:44.000000000","message":"I misread the unit test failures. This should be \u0027self\u0027, not \u0027_self\u0027.","commit_id":"64c59dde706ce6bd6ef027b61b679bdb3c7baee8"}]}
