)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"064cc7c646837dd9a0d095711d201cea3d551f97","unresolved":false,"context_lines":[{"line_number":34,"context_line":"event that neutron is being used and we\u0027re live migrating over shared"},{"line_number":35,"context_line":"storage so rollback_live_migration_at_destination isn\u0027t called."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"This also refactors test_rollback_live_migration_set_migration_status"},{"line_number":38,"context_line":"which was 99% redundant with test_rollback_live_migration except for"},{"line_number":39,"context_line":"using a non-default migration_status kwarg to _rollback_live_migration."},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"Change-Id: I658e0a749e842163ed74f82c975bcaf19f9f7f07"},{"line_number":42,"context_line":"Closes-Bug: #1757292"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"df7087c5_3a8aaf69","line":39,"range":{"start_line":37,"start_character":0,"end_line":39,"end_character":71},"updated":"2018-03-22 22:35:13.000000000","message":"This makes for a pretty ugly diff, I\u0027ll move this out to a separate patch.","commit_id":"1977d399272d772f9a1c83f307f5efc41f9dd285"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5c5043d914a19c5787749611011d1d9801f63c53","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"However, that only happens in rollback_live_migration_at_destination,"},{"line_number":24,"context_line":"which is only called if the instance is not on shared storage (think"},{"line_number":25,"context_line":"libvirt with the rbd image backend or with NFS). That\u0027s controlled"},{"line_number":26,"context_line":"via the \"do_cleanup\" flag returned from _live_migration_cleanup_flags()."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"If the live migration is happening over shared storage and fails, then"},{"line_number":29,"context_line":"rollback_live_migration_at_destination isn\u0027t called which means"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"df7087c5_aea8af77","line":26,"range":{"start_line":25,"start_character":49,"end_line":26,"end_character":72},"updated":"2018-03-23 13:03:26.000000000","message":"So why is this fix preferred over getting the do_cleanup flag to be set in that scenario?\n\nPerhaps I\u0027m not understanding why rollback_live_migration_at_destination is conditioned on shared storage.","commit_id":"d3e4769748dab3a89a4db69f676004be201858d7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c5223e2bf41fba0cf525a0dcc27ee65f2748dbb4","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"However, that only happens in rollback_live_migration_at_destination,"},{"line_number":24,"context_line":"which is only called if the instance is not on shared storage (think"},{"line_number":25,"context_line":"libvirt with the rbd image backend or with NFS). That\u0027s controlled"},{"line_number":26,"context_line":"via the \"do_cleanup\" flag returned from _live_migration_cleanup_flags()."},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"If the live migration is happening over shared storage and fails, then"},{"line_number":29,"context_line":"rollback_live_migration_at_destination isn\u0027t called which means"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bf659307_a12dc4a9","line":26,"range":{"start_line":25,"start_character":49,"end_line":26,"end_character":72},"in_reply_to":"df7087c5_aea8af77","updated":"2018-03-23 18:02:32.000000000","message":"It\u0027s all historical, which is what I try to cover in the first two paragraphs in this commit message. When I2c86989ab7c6593bf346611cde8c043116d55bc5 added setup_networks_on_host to rollback_live_migration_at_destination, rollback_live_migration_at_destination was conditionally only called for block migration, because before that, the only purpose rollback_live_migration_at_destination served was cleaning up disk stuff prepared on the destination host during pre_live_migration. Then, I guess, someone realized they also needed to do nova-network cleanup on the dest host when a live migration failed, so they also added it to rollback_live_migration_at_destination, but again that would only be called for block migration (at that time). Over the years the conditions to call rollback_live_migration_at_destination changed, but the initial munging of what it was originally used for and what it now also does (network teardown on the dest host) are still lumped together and it\u0027s only called based on how the storage is laid out (now it only runs if local disk is on shared storage).\n\nTrying to change the semantic meaning of the \u0027do_cleanup\u0027 flag at this point is not something I\u0027m interested in pursuing.\n\nNow if we wanted to, we could stop calling setup_networks_on_host in rollback_live_migration_at_destination and just always call it from _rollback_live_migration, since we need to anyway for neutron, however (1) that\u0027s going to require an RPC change since you can do live migration over mixed version computes and (2) we still need to do that on the dest host if you\u0027re running nova-network. We\u0027re working on dropping nova-network in Rocky, but we\u0027re not there yet.","commit_id":"d3e4769748dab3a89a4db69f676004be201858d7"}],"nova/compute/manager.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"c6df4bc9742de319c2700d3ead673f3cc0c94c80","unresolved":false,"context_lines":[{"line_number":6506,"context_line":"            self.compute_rpcapi.rollback_live_migration_at_destination("},{"line_number":6507,"context_line":"                    context, instance, dest, destroy_disks\u003ddestroy_disks,"},{"line_number":6508,"context_line":"                    migrate_data\u003dmigrate_data)"},{"line_number":6509,"context_line":"        elif utils.is_neutron():"},{"line_number":6510,"context_line":"            # The port binding profiles need to be cleaned up."},{"line_number":6511,"context_line":"            with errors_out_migration_ctxt(migration):"},{"line_number":6512,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"df7087c5_b12ecf89","line":6509,"updated":"2018-03-23 15:43:44.000000000","message":"rollback_live_migration_at_destination() is called only here. What about to remove the teardown call from that function to have only it onetime here and that in all cases?","commit_id":"d3e4769748dab3a89a4db69f676004be201858d7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c5223e2bf41fba0cf525a0dcc27ee65f2748dbb4","unresolved":false,"context_lines":[{"line_number":6506,"context_line":"            self.compute_rpcapi.rollback_live_migration_at_destination("},{"line_number":6507,"context_line":"                    context, instance, dest, destroy_disks\u003ddestroy_disks,"},{"line_number":6508,"context_line":"                    migrate_data\u003dmigrate_data)"},{"line_number":6509,"context_line":"        elif utils.is_neutron():"},{"line_number":6510,"context_line":"            # The port binding profiles need to be cleaned up."},{"line_number":6511,"context_line":"            with errors_out_migration_ctxt(migration):"},{"line_number":6512,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_cc182f77","line":6509,"in_reply_to":"df7087c5_b12ecf89","updated":"2018-03-23 18:02:32.000000000","message":"See my reply to Eric in the commit message.","commit_id":"d3e4769748dab3a89a4db69f676004be201858d7"}]}
