)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"476d58a4189558ccab394e72662d0f38283cc98a","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"This patch implements the simplest solution to make it possible to test"},{"line_number":20,"context_line":"live migration with neutron ports. It simply turns off the waiting by"},{"line_number":21,"context_line":"setting CONF.vif_plugging_timeout to 0"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"A nicer solution would be to extend either the Neutron fixture or the"},{"line_number":24,"context_line":"fake virt driver to send vif-plug event at certain triggers. But that"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_c143d710","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":33},"updated":"2019-11-29 15:28:58.000000000","message":"I thought I\u0027d had to set this in functional tests myself previously but I can\u0027t find the reference. Oh well","commit_id":"ecd0b529ab051780893fdd83722e78d68659dfce"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d5810068f8727e4087a2e345dde267d596a021c8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"None of our functional live migration tests uses neutron ports. Simply"},{"line_number":10,"context_line":"adding a port to the boot request shows that the live migration step of"},{"line_number":11,"context_line":"the tests fails because the compute manager\u0027s"},{"line_number":12,"context_line":"_do_pre_live_migration_from_source() call wait for vif-plugged events"},{"line_number":13,"context_line":"from Neutron but our Neutron fixture does not send it."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This does not cause problem during a simple boot because during boot the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_f48c3d2f","line":12,"updated":"2019-12-05 20:32:08.000000000","message":"Ack, I removed the fixture change and ran the test and it fails with this:\n\n    b\u00272019-12-05 15:31:00,799 WARNING [nova.compute.manager] Unable to cancel live migration.\u0027\n    b\u00272019-12-05 15:31:00,804 ERROR [nova.compute.manager] Failed waiting for network virtual interfaces to be plugged on the destination host host2.\u0027\n    b\u0027Traceback (most recent call last):\u0027\n    b\u0027  File \"/home/osboxes/git/nova/nova/compute/manager.py\", line 7562, in _do_pre_live_migration_from_source\u0027\n    b\u0027    raise _BreakWaitForInstanceEvent\u0027\n    b\u0027  File \"/usr/lib/python3.6/contextlib.py\", line 88, in __exit__\u0027\n    b\u0027    next(self.gen)\u0027\n    b\u0027  File \"/home/osboxes/git/nova/nova/compute/manager.py\", line 480, in wait_for_instance_event\u0027\n    b\u0027    decision \u003d error_callback(event_name, instance)\u0027\n    b\u0027  File \"/home/osboxes/git/nova/nova/compute/manager.py\", line 7447, in _neutron_failed_migration_callback\u0027\n    b\u0027    raise exception.VirtualInterfacePlugException(msg % msg_args)\u0027\n    b\u0027nova.exception.VirtualInterfacePlugException: Neutron reported failure during migration with network-vif-plugged-ce531f90-199f-48c0-816c-13e38010b442 for instance d0aa7f8f-96ae-442b-913c-926ff00d4fa5\u0027","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22080283f9ece3a70798deb59003e462c5ec5566","unresolved":false,"context_lines":[{"line_number":20,"context_line":"live migration with neutron ports. It simply turns off the waiting by"},{"line_number":21,"context_line":"setting CONF.vif_plugging_timeout to 0"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"A nicer solution would be to extend either the Neutron fixture or the"},{"line_number":24,"context_line":"fake virt driver to send vif-plug event at certain triggers. But that"},{"line_number":25,"context_line":"would require a lot more surgery."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_d4b4a1f3","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":62},"updated":"2019-12-05 20:28:27.000000000","message":"But the commit title says you\u0027re extending the neutron fixture....was this change split apart at some point and the title wasn\u0027t updated? Shouldn\u0027t it be more like, \"workaround vif plugging with neutron ports in live migration tests\"?","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"96b233fc305752535932286cb43228dda8d9a5dd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"live migration with neutron ports. It simply turns off the waiting by"},{"line_number":21,"context_line":"setting CONF.vif_plugging_timeout to 0"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"A nicer solution would be to extend either the Neutron fixture or the"},{"line_number":24,"context_line":"fake virt driver to send vif-plug event at certain triggers. But that"},{"line_number":25,"context_line":"would require a lot more surgery."},{"line_number":26,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3fa7e38b_fbcae19d","line":23,"range":{"start_line":23,"start_character":0,"end_line":23,"end_character":62},"in_reply_to":"3fa7e38b_d4b4a1f3","updated":"2019-12-06 15:19:00.000000000","message":"Yeah something like that. Basically the current solution is a bit basic, but the nicer solution would be a lot more complex codewise.","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"}],"nova/tests/fixtures.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22080283f9ece3a70798deb59003e462c5ec5566","unresolved":false,"context_lines":[{"line_number":1642,"context_line":"        super(NeutronFixture, self).setUp()"},{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"        # NOTE(gibi): This is the simplest way to unblock nova during live"},{"line_number":1645,"context_line":"        # migration. A nicest way would be to actually send vif-plug events"},{"line_number":1646,"context_line":"        # to the nova-api from NeutronFixture when the port is bound but"},{"line_number":1647,"context_line":"        # calling nova API from this fixture needs a big surgery and sending"},{"line_number":1648,"context_line":"        # event right at the binding request means that such event will arrive"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_f49e7d67","line":1645,"range":{"start_line":1645,"start_character":23,"end_line":1645,"end_character":29},"updated":"2019-12-05 20:28:27.000000000","message":"nicer","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22080283f9ece3a70798deb59003e462c5ec5566","unresolved":false,"context_lines":[{"line_number":1642,"context_line":"        super(NeutronFixture, self).setUp()"},{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"        # NOTE(gibi): This is the simplest way to unblock nova during live"},{"line_number":1645,"context_line":"        # migration. A nicest way would be to actually send vif-plug events"},{"line_number":1646,"context_line":"        # to the nova-api from NeutronFixture when the port is bound but"},{"line_number":1647,"context_line":"        # calling nova API from this fixture needs a big surgery and sending"},{"line_number":1648,"context_line":"        # event right at the binding request means that such event will arrive"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_14a479b8","line":1645,"range":{"start_line":1645,"start_character":60,"end_line":1645,"end_character":68},"updated":"2019-12-05 20:28:27.000000000","message":"nit: technically \"network-vif-plugged\"","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"96b233fc305752535932286cb43228dda8d9a5dd","unresolved":false,"context_lines":[{"line_number":1642,"context_line":"        super(NeutronFixture, self).setUp()"},{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"        # NOTE(gibi): This is the simplest way to unblock nova during live"},{"line_number":1645,"context_line":"        # migration. A nicest way would be to actually send vif-plug events"},{"line_number":1646,"context_line":"        # to the nova-api from NeutronFixture when the port is bound but"},{"line_number":1647,"context_line":"        # calling nova API from this fixture needs a big surgery and sending"},{"line_number":1648,"context_line":"        # event right at the binding request means that such event will arrive"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_fb3f4183","line":1645,"range":{"start_line":1645,"start_character":60,"end_line":1645,"end_character":68},"in_reply_to":"3fa7e38b_14a479b8","updated":"2019-12-06 15:19:00.000000000","message":"Done","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"96b233fc305752535932286cb43228dda8d9a5dd","unresolved":false,"context_lines":[{"line_number":1642,"context_line":"        super(NeutronFixture, self).setUp()"},{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"        # NOTE(gibi): This is the simplest way to unblock nova during live"},{"line_number":1645,"context_line":"        # migration. A nicest way would be to actually send vif-plug events"},{"line_number":1646,"context_line":"        # to the nova-api from NeutronFixture when the port is bound but"},{"line_number":1647,"context_line":"        # calling nova API from this fixture needs a big surgery and sending"},{"line_number":1648,"context_line":"        # event right at the binding request means that such event will arrive"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_9b488d2e","line":1645,"range":{"start_line":1645,"start_character":23,"end_line":1645,"end_character":29},"in_reply_to":"3fa7e38b_f49e7d67","updated":"2019-12-06 15:19:00.000000000","message":"Done","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"}],"nova/tests/functional/integrated_helpers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"22080283f9ece3a70798deb59003e462c5ec5566","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        return migrations[0].uuid"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"    def _boot_and_check_allocations("},{"line_number":696,"context_line":"            self, flavor, source_hostname, networks\u003d\u0027none\u0027):"},{"line_number":697,"context_line":"        \"\"\"Boot an instance and check that the resource allocation is correct"},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        After booting an instance on the given host with a given flavor it"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_34989574","line":696,"range":{"start_line":696,"start_character":43,"end_line":696,"end_character":58},"updated":"2019-12-05 20:28:27.000000000","message":"This should go into the docstring since the other parameters are documented.","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"96b233fc305752535932286cb43228dda8d9a5dd","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        return migrations[0].uuid"},{"line_number":694,"context_line":""},{"line_number":695,"context_line":"    def _boot_and_check_allocations("},{"line_number":696,"context_line":"            self, flavor, source_hostname, networks\u003d\u0027none\u0027):"},{"line_number":697,"context_line":"        \"\"\"Boot an instance and check that the resource allocation is correct"},{"line_number":698,"context_line":""},{"line_number":699,"context_line":"        After booting an instance on the given host with a given flavor it"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fa7e38b_5bfc55b5","line":696,"range":{"start_line":696,"start_character":43,"end_line":696,"end_character":58},"in_reply_to":"3fa7e38b_34989574","updated":"2019-12-06 15:19:00.000000000","message":"Done","commit_id":"b2734b5a9ae8b869fc9e8e229826343da3b47fcb"}]}
