)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f8cc87d0af2d5f97166b2106a447bf82d75a6b6","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When exception occurs in _live_migration, _rollback_live_migration"},{"line_number":10,"context_line":"is called to rollback the destination resources else next live"},{"line_number":11,"context_line":"migration will fail."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Iac9388759deabbe914d8051fc5a9e1dcb58ad51c"},{"line_number":14,"context_line":"closes-bug: #1415001"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa31d9ce_26797afd","line":11,"updated":"2017-02-10 12:24:07.000000000","message":"We need a lot more context in here:\n\nQ) Why is this important?\n\nI presume that should a migrate operation fail, the instance is left in an error state. This change ensures that the instance reset back into an Active state, should we hit an error at this point.\n\nQ) Has this been tested?\n\nCan we ensure this is manually tested, ideally by doing something like killing the destination host during the live-migration, and seeing what happens.","commit_id":"315b95487d8981d4fdf462718176c9effa4ea3b1"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f8cc87d0af2d5f97166b2106a447bf82d75a6b6","unresolved":false,"context_lines":[{"line_number":5942,"context_line":"                          flags\u003dmigration_flags,"},{"line_number":5943,"context_line":"                          params\u003dparams,"},{"line_number":5944,"context_line":"                          domain_xml\u003dnew_xml_str,"},{"line_number":5945,"context_line":"                          bandwidth\u003dCONF.libvirt.live_migration_bandwidth)"},{"line_number":5946,"context_line":"        except Exception as e:"},{"line_number":5947,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":5948,"context_line":"                LOG.error(_LE(\"Live Migration failure: %s\"), e,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_86edc68d","line":5945,"updated":"2017-02-10 12:24:07.000000000","message":"Do you know how this guest.migrate can fail? It would be good to reproduce the failures, to prove we can actually correctly recover from errors here.","commit_id":"315b95487d8981d4fdf462718176c9effa4ea3b1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7f8cc87d0af2d5f97166b2106a447bf82d75a6b6","unresolved":false,"context_lines":[{"line_number":6322,"context_line":"                            \"for instance\"), instance\u003dinstance)"},{"line_number":6323,"context_line":""},{"line_number":6324,"context_line":"    def _live_migration(self, context, instance, dest, post_method,"},{"line_number":6325,"context_line":"                        recover_method, block_migration,"},{"line_number":6326,"context_line":"                        migrate_data):"},{"line_number":6327,"context_line":"        \"\"\"Do live migration."},{"line_number":6328,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_c6cede59","line":6325,"range":{"start_line":6325,"start_character":24,"end_line":6325,"end_character":38},"updated":"2017-02-10 12:24:07.000000000","message":"We should rename recover_method as rollback_method really.","commit_id":"315b95487d8981d4fdf462718176c9effa4ea3b1"}]}
