)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"618cdc160a29842893725c6e18b1e44fa57adefa","unresolved":true,"context_lines":[{"line_number":69,"context_line":"  * libvirt: Always delegate OVS plug to os-vif"},{"line_number":70,"context_line":"fa0fb2fe3d61de1cb871c48ee97053cf2fb5827a is squashed"},{"line_number":71,"context_line":"  * Updated fakelibvirt.Domain.XMLDesc to add pci address"},{"line_number":72,"context_line":"for ovs interface"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"},{"line_number":75,"context_line":"Depends-On: Id12486b3127ab4ac8ad9ef2b3641da1b79a25a50"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7ec94f3b_704f33b4","line":72,"updated":"2023-02-28 13:15:17.000000000","message":"you should call out that this is a partial backport of \n\nhttps://github.com/openstack/nova/commit/1ad287bf9a8f65ce68c14f4634775f58abda15c2\n\nthis was not included in https://review.opendev.org/c/openstack/nova/+/841760\nfor some reason when it was backported.","commit_id":"2a83a5edd877fceec419beb08e05b93349e86b32"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"fc85ba45f57d753db1fb44979f49f99a84e62c2f","unresolved":false,"context_lines":[{"line_number":69,"context_line":"  * libvirt: Always delegate OVS plug to os-vif"},{"line_number":70,"context_line":"fa0fb2fe3d61de1cb871c48ee97053cf2fb5827a is squashed"},{"line_number":71,"context_line":"  * Updated fakelibvirt.Domain.XMLDesc to add pci address"},{"line_number":72,"context_line":"for ovs interface"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"},{"line_number":75,"context_line":"Depends-On: Id12486b3127ab4ac8ad9ef2b3641da1b79a25a50"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"a7ae2310_f92d976e","line":72,"in_reply_to":"7ec94f3b_704f33b4","updated":"2023-02-28 13:47:59.000000000","message":"Done","commit_id":"2a83a5edd877fceec419beb08e05b93349e86b32"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"415480a614ed5dc490947291a71330625d2a8cff","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"libvirt: Delegate OVS plug to os-vif"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"os-vif 1.15.0 added the ability to create an OVS port during plugging"},{"line_number":10,"context_line":"by specifying the \u0027create_port\u0027 attribute in the \u0027port_profile\u0027 field."},{"line_number":11,"context_line":"By delegating port creation to os-vif, we can rely on it\u0027s \u0027isolate_vif\u0027"},{"line_number":12,"context_line":"config option [1] that will temporarily configure the VLAN to 4095"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"ddb21ebd_f40119f3","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":13},"updated":"2023-04-18 12:59:08.000000000","message":"lgtm https://github.com/openstack/nova/blob/c9fc9baa9c9211af7302b497702785fa8fe53c7e/requirements.txt#L57","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"415480a614ed5dc490947291a71330625d2a8cff","unresolved":true,"context_lines":[{"line_number":70,"context_line":"https://github.com/openstack/nova/commit/fa0fb2fe3d61de1cb871c48ee97053cf2fb5827a"},{"line_number":71,"context_line":"  * Updated fakelibvirt.Domain.XMLDesc to add pci address"},{"line_number":72,"context_line":"for ovs interface, which is a patial backport of"},{"line_number":73,"context_line":"https://github.com/openstack/nova/commit/1ad287bf9a8f65ce68c14f4634775f58abda15c2"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"},{"line_number":76,"context_line":"Depends-On: Id12486b3127ab4ac8ad9ef2b3641da1b79a25a50"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"97cc044f_e989935e","line":73,"updated":"2023-04-18 12:59:08.000000000","message":"thanks for adding those.","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"970e709388bf8fd70714ceb616453176c3c4dbcd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"30e9f144_55e4e030","updated":"2023-02-15 13:37:26.000000000","message":"recheck _live_migration_operation failed (unrelated)","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"72ebe8f7359830acfc41ec286630887a797499f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"97f10ef5_8e9fc516","updated":"2023-02-20 06:24:23.000000000","message":"recheck live migration failed (unrelated)","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"355ad9a570200afc31f1f19ec40bfeeca6765e94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f7bc9d82_52bde6d8","updated":"2023-02-09 20:28:31.000000000","message":"recheck live_migration failed (unrelated)","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bc45b508965c7abc4024187dfd349841d4ccd3c5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"bcd1da67_f899b1cc","updated":"2023-02-22 02:42:10.000000000","message":"the  fucntional test failure \ntest_queued_live_migration_abort_leftovers_removed\nis related to this patch.\n\nthe type of the xml element changed from bridge to ethernet with this patch so you need to fix the funciotnal test.","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3a83c9050f6db330f5bed7447c344312b1db8185","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"efb073fa_9dc973b2","updated":"2023-02-28 13:16:20.000000000","message":"if this passes ci im overall ok with it but i would like to update teh commit message","commit_id":"2a83a5edd877fceec419beb08e05b93349e86b32"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2ba83f06d17965420d61f19ca0f22dffa152aca6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"ce484cb5_3c9b74a0","updated":"2023-03-17 15:05:49.000000000","message":"I made a very quick glance and I haven\u0027t found any problem yet. But please lemme try to review it again on next week.","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"90eebb4080884dd1fce358b507143d3a4d6cd537","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d9e119a2_b65b07c2","updated":"2023-04-20 08:30:55.000000000","message":"recheck live migration tests failed specifically for volume (unrelated)","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"12901f6438d46a1514474e17fbbc8f79f4b0fc5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"766cdc5f_93b8763a","updated":"2023-04-18 17:51:29.000000000","message":"recheck nova-grenade-multinode failed on cleaning up volumes.","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"536d3a50a7b37634febb697a563f06b82a16317b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a002d453_a72761bd","updated":"2023-03-01 05:44:18.000000000","message":"recheck tempest live migration test failed with timeout","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"1b1448903dc3f5aa4ca6e2728b4ec52aad94262b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"bc026868_968e34b1","updated":"2023-02-28 17:34:03.000000000","message":"recheck tempest tests for compute api failed (unrelated)","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"9852c29b2b2a77ebe52bc7793070038d629ce0b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cb718f44_bdeafc0e","updated":"2023-03-12 08:06:07.000000000","message":"recheck test_live_block_migration_paused failed","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"acfca1718eebee443024524e5b45328fea5a8b64","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"252de418_f880f353","updated":"2023-04-23 17:47:30.000000000","message":"recheck timeout","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"}],"nova/network/neutron.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c9b32b8cb4bb7b62c7d950612a15010baeddd25a","unresolved":true,"context_lines":[{"line_number":3067,"context_line":"            devname\u003ddevname,"},{"line_number":3068,"context_line":"            active\u003dvif_active,"},{"line_number":3069,"context_line":"            preserve_on_delete\u003dpreserve_on_delete,"},{"line_number":3070,"context_line":"            delegate_create\u003dTrue,"},{"line_number":3071,"context_line":"        )"},{"line_number":3072,"context_line":""},{"line_number":3073,"context_line":"    def _build_network_info_model(self, context, instance, networks\u003dNone,"}],"source_content_type":"text/x-python","patch_set":9,"id":"54975c10_a5c64eb9","line":3070,"updated":"2023-04-18 11:44:43.000000000","message":"this comes form the squash merge of https://github.com/openstack/nova/commit/fa0fb2fe3d61de1cb871c48ee97053cf2fb5827a\n\nand it is noted in the commit message","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"}],"nova/network/os_vif_util.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"efe07269641326326a30c234ab94a9c14702bb2a","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            vif_name\u003dvif_name,"},{"line_number":349,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":350,"context_line":"    else:"},{"line_number":351,"context_line":"        # NOTE(stephenfin): The \u0027create_port\u0027 attribute was added in os-vif"},{"line_number":352,"context_line":"        # 1.15.0 and isn\u0027t available with the lowest version supported here"},{"line_number":353,"context_line":"        if ("},{"line_number":354,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":355,"context_line":"            pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":356,"context_line":"        ):"},{"line_number":357,"context_line":"            profile.create_port \u003d vif.get(\u0027delegate_create\u0027, False)"},{"line_number":358,"context_line":"        elif vif.get(\u0027delegate_create\u0027, False):"},{"line_number":359,"context_line":"            # NOTE(stephenfin): This should never happen, since if the"},{"line_number":360,"context_line":"            # \u0027delegate_create\u0027 attribute is true then it was set by the"},{"line_number":361,"context_line":"            # destination compute node as part of the live migration operation:"},{"line_number":362,"context_line":"            # the same destination compute node that we are currently running"},{"line_number":363,"context_line":"            # on. We include it for sanity-preservation"},{"line_number":364,"context_line":"            LOG.warning("},{"line_number":365,"context_line":"                \u0027os-vif 1.15.0 or later is required to support \u0027"},{"line_number":366,"context_line":"                \u0027delegated port creation but you have %s; consider \u0027"},{"line_number":367,"context_line":"                \u0027updating this package to resolve bugs #1734320 and \u0027"},{"line_number":368,"context_line":"                \u0027#1815989\u0027,"},{"line_number":369,"context_line":"                pbr.version.VersionInfo(\u0027os-vif\u0027).version_string(),"},{"line_number":370,"context_line":"            )"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":373,"context_line":"            vif,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3d18d5e1_c687819c","line":370,"range":{"start_line":351,"start_character":0,"end_line":370,"end_character":13},"updated":"2021-06-18 11:31:50.000000000","message":"✔","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1465b0451f13e976592ad81814b124d53562681f","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            vif_name\u003dvif_name,"},{"line_number":349,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":350,"context_line":"    else:"},{"line_number":351,"context_line":"        # NOTE(stephenfin): The \u0027create_port\u0027 attribute was added in os-vif"},{"line_number":352,"context_line":"        # 1.15.0 and isn\u0027t available with the lowest version supported here"},{"line_number":353,"context_line":"        if ("},{"line_number":354,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":355,"context_line":"            pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":356,"context_line":"        ):"},{"line_number":357,"context_line":"            profile.create_port \u003d vif.get(\u0027delegate_create\u0027, False)"},{"line_number":358,"context_line":"        elif vif.get(\u0027delegate_create\u0027, False):"},{"line_number":359,"context_line":"            # NOTE(stephenfin): This should never happen, since if the"},{"line_number":360,"context_line":"            # \u0027delegate_create\u0027 attribute is true then it was set by the"},{"line_number":361,"context_line":"            # destination compute node as part of the live migration operation:"},{"line_number":362,"context_line":"            # the same destination compute node that we are currently running"},{"line_number":363,"context_line":"            # on. We include it for sanity-preservation"},{"line_number":364,"context_line":"            LOG.warning("},{"line_number":365,"context_line":"                \u0027os-vif 1.15.0 or later is required to support \u0027"},{"line_number":366,"context_line":"                \u0027delegated port creation but you have %s; consider \u0027"},{"line_number":367,"context_line":"                \u0027updating this package to resolve bugs #1734320 and \u0027"},{"line_number":368,"context_line":"                \u0027#1815989\u0027,"},{"line_number":369,"context_line":"                pbr.version.VersionInfo(\u0027os-vif\u0027).version_string(),"},{"line_number":370,"context_line":"            )"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":373,"context_line":"            vif,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5cfd66a5_3f64cf05","line":370,"range":{"start_line":351,"start_character":0,"end_line":370,"end_character":13},"in_reply_to":"3d18d5e1_c687819c","updated":"2021-06-18 11:39:21.000000000","message":"fwiw, this is tested by the unit test where I also have a conditional on the expected output. I\u0027m relying on the lower-constraints job to validate things","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c9b32b8cb4bb7b62c7d950612a15010baeddd25a","unresolved":true,"context_lines":[{"line_number":348,"context_line":"            vif_name\u003dvif_name,"},{"line_number":349,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":350,"context_line":"    else:"},{"line_number":351,"context_line":"        # NOTE(stephenfin): The \u0027create_port\u0027 attribute was added in os-vif"},{"line_number":352,"context_line":"        # 1.15.0 and isn\u0027t available with the lowest version supported here"},{"line_number":353,"context_line":"        if ("},{"line_number":354,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"}],"source_content_type":"text/x-python","patch_set":9,"id":"8fcdeb0b_5f3df60d","line":351,"updated":"2023-04-18 11:44:43.000000000","message":"this change is noted in the commit message\nhttps://review.opendev.org/c/openstack/nova/+/790447/9//COMMIT_MSG#55\n\nso +1 it is required for the min os-vif version we have in wallaby.","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"415480a614ed5dc490947291a71330625d2a8cff","unresolved":true,"context_lines":[{"line_number":352,"context_line":"        # 1.15.0 and isn\u0027t available with the lowest version supported here"},{"line_number":353,"context_line":"        if ("},{"line_number":354,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":355,"context_line":"            pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":356,"context_line":"        ):"},{"line_number":357,"context_line":"            profile.create_port \u003d vif.get(\u0027delegate_create\u0027, False)"},{"line_number":358,"context_line":"        elif vif.get(\u0027delegate_create\u0027, False):"}],"source_content_type":"text/x-python","patch_set":9,"id":"a5f2c41c_4b6f4d75","line":355,"updated":"2023-04-18 12:59:08.000000000","message":"nit: I\u0027d have preferred that the master patch would only have verified the os-vif version only once when restarting the nova-compute service, instead of calling pbr everytime, but ship has sailed.","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"}],"nova/tests/functional/libvirt/test_live_migration.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3ab6cadeecb7c7c044dbd18f2421ef1753f0f67b","unresolved":true,"context_lines":[{"line_number":134,"context_line":"    is aborted using Nova API."},{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_queued_live_migration_abort_leftovers_removed(self):"},{"line_number":138,"context_line":"        # Lock live migrations"},{"line_number":139,"context_line":"        self.lock_live_migration.acquire()"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"83bb39db_4b74dbe5","line":137,"updated":"2023-02-28 12:23:55.000000000","message":"1) this is the test that is failing","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"fc85ba45f57d753db1fb44979f49f99a84e62c2f","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    is aborted using Nova API."},{"line_number":135,"context_line":"    \"\"\""},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def test_queued_live_migration_abort_leftovers_removed(self):"},{"line_number":138,"context_line":"        # Lock live migrations"},{"line_number":139,"context_line":"        self.lock_live_migration.acquire()"},{"line_number":140,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7bdcfce0_22d5e3c4","line":137,"in_reply_to":"83bb39db_4b74dbe5","updated":"2023-02-28 13:47:59.000000000","message":"Done","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3ab6cadeecb7c7c044dbd18f2421ef1753f0f67b","unresolved":true,"context_lines":[{"line_number":152,"context_line":"            host\u003dself.src_hostname,"},{"line_number":153,"context_line":"            networks\u003d[{\u0027port\u0027: self.neutron.port_2[\u0027id\u0027]}])"},{"line_number":154,"context_line":"        # Issue live migration requests for both servers. We expect that"},{"line_number":155,"context_line":"        # server_a live migration would be running, but locked by"},{"line_number":156,"context_line":"        # self.lock_live_migration and server_b live migration would be"},{"line_number":157,"context_line":"        # queued."},{"line_number":158,"context_line":"        self._live_migrate("},{"line_number":159,"context_line":"            self.server_a,"},{"line_number":160,"context_line":"            migration_expected_state\u003d\u0027running\u0027,"},{"line_number":161,"context_line":"            server_expected_state\u003d\u0027MIGRATING\u0027"},{"line_number":162,"context_line":"        )"},{"line_number":163,"context_line":"        self._live_migrate("},{"line_number":164,"context_line":"            self.server_b,"},{"line_number":165,"context_line":"            migration_expected_state\u003d\u0027queued\u0027,"},{"line_number":166,"context_line":"            server_expected_state\u003d\u0027MIGRATING\u0027"},{"line_number":167,"context_line":"        )"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # Abort live migration for server_b"},{"line_number":170,"context_line":"        migration_server_a \u003d self.api.api_get("}],"source_content_type":"text/x-python","patch_set":6,"id":"7284e7ad_e95cfd3a","line":167,"range":{"start_line":155,"start_character":7,"end_line":167,"end_character":9},"updated":"2023-02-28 12:23:55.000000000","message":"3) so the actuall error is happening as part of this call to _live_migrate\n\nim not sure if its the frist or second call.\n\nbut this is the traceback\n\n\n\n    stderr: {{{\n    Traceback (most recent call last):\n      File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/eventlet/hubs/hub.py\", line 476, in fire_timers\n        timer()\n      File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/eventlet/hubs/timer.py\", line 59, in __call__\n        cb(*args, **kw)\n      File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/eventlet/greenthread.py\", line 221, in main\n        result \u003d function(*args, **kwargs)\n      File \"/home/zuul/src/opendev.org/openstack/nova/nova/utils.py\", line 660, in context_wrapper\n        return func(*args, **kwargs)\n      File \"/home/zuul/src/opendev.org/openstack/nova/nova/virt/libvirt/driver.py\", line 9646, in _live_migration_operation\n        LOG.error(\"Live Migration failure: %s\", e, instance\u003dinstance)\n      File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/oslo_utils/excutils.py\", line 227, in __exit__\n        self.force_reraise()\n      File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/oslo_utils/excutils.py\", line 200, in force_reraise\n        raise self.value\n      File \"/home/zuul/src/opendev.org/openstack/nova/nova/virt/libvirt/driver.py\", line 9602, in _live_migration_operation\n        new_xml_str \u003d libvirt_migrate.get_updated_guest_xml(\n      File \"/home/zuul/src/opendev.org/openstack/nova/nova/virt/libvirt/migration.py\", line 66, in get_updated_guest_xml\n        xml_doc \u003d _update_vif_xml(xml_doc, migrate_data, get_vif_config)\n      File \"/home/zuul/src/opendev.org/openstack/nova/nova/virt/libvirt/migration.py\", line 396, in _update_vif_xml\n        interface_dev.insert(index + 1, address)\n    TypeError: Argument \u0027element\u0027 has incorrect type (expected lxml.etree._Element, got NoneType)\n    }}}\n\n\n\ni think the issue is eitehr with the libvirt fixture not generating the xml correctly or with the migrate_data object.","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"fc85ba45f57d753db1fb44979f49f99a84e62c2f","unresolved":false,"context_lines":[{"line_number":152,"context_line":"            host\u003dself.src_hostname,"},{"line_number":153,"context_line":"            networks\u003d[{\u0027port\u0027: self.neutron.port_2[\u0027id\u0027]}])"},{"line_number":154,"context_line":"        # Issue live migration requests for both servers. We expect that"},{"line_number":155,"context_line":"        # server_a live migration would be running, but locked by"},{"line_number":156,"context_line":"        # self.lock_live_migration and server_b live migration would be"},{"line_number":157,"context_line":"        # queued."},{"line_number":158,"context_line":"        self._live_migrate("},{"line_number":159,"context_line":"            self.server_a,"},{"line_number":160,"context_line":"            migration_expected_state\u003d\u0027running\u0027,"},{"line_number":161,"context_line":"            server_expected_state\u003d\u0027MIGRATING\u0027"},{"line_number":162,"context_line":"        )"},{"line_number":163,"context_line":"        self._live_migrate("},{"line_number":164,"context_line":"            self.server_b,"},{"line_number":165,"context_line":"            migration_expected_state\u003d\u0027queued\u0027,"},{"line_number":166,"context_line":"            server_expected_state\u003d\u0027MIGRATING\u0027"},{"line_number":167,"context_line":"        )"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        # Abort live migration for server_b"},{"line_number":170,"context_line":"        migration_server_a \u003d self.api.api_get("}],"source_content_type":"text/x-python","patch_set":6,"id":"253208f9_128b0df3","line":167,"range":{"start_line":155,"start_character":7,"end_line":167,"end_character":9},"in_reply_to":"7284e7ad_e95cfd3a","updated":"2023-02-28 13:47:59.000000000","message":"Done","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3ab6cadeecb7c7c044dbd18f2421ef1753f0f67b","unresolved":true,"context_lines":[{"line_number":182,"context_line":"        # active again after successful (server_a) and aborted"},{"line_number":183,"context_line":"        # (server_b) live migrations"},{"line_number":184,"context_line":"        self.lock_live_migration.release()"},{"line_number":185,"context_line":"        self._wait_for_state_change(self.server_a, \u0027ACTIVE\u0027)"},{"line_number":186,"context_line":"        self._wait_for_migration_status(self.server_a, [\u0027completed\u0027])"},{"line_number":187,"context_line":"        self._wait_for_state_change(self.server_b, \u0027ACTIVE\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"4ad4fcbf_22c7c2fc","line":185,"updated":"2023-02-28 12:23:55.000000000","message":"2) and this is where its reportign the failure.\n\nthis is staying in migrating becasue  of the error in 3)\n\n```\nTraceback (most recent call last):\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/functional/libvirt/test_live_migration.py\", line 185, in test_queued_live_migration_abort_leftovers_removed\n    self._wait_for_state_change(self.server_a, \u0027ACTIVE\u0027)\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/functional/integrated_helpers.py\", line 125, in _wait_for_state_change\n    return self._wait_for_server_parameter(\n  File \"/home/zuul/src/opendev.org/openstack/nova/nova/tests/functional/integrated_helpers.py\", line 117, in _wait_for_server_parameter\n    self.fail(\u0027Wait for state change failed, \u0027\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/functional-py38/lib/python3.8/site-packages/unittest2/case.py\", line 690, in fail\n    raise self.failureException(msg)\nAssertionError: Wait for state change failed, expected_params\u003d{\u0027status\u0027: \u0027ACTIVE\u0027}, server\u003d{\u0027id\u0027: \u0027e381f147-7cb0-4cf4-a7c2-5cb05425ea79\u0027, \u0027name\u0027: \u0027uvwqreimiigyimfbtfrl\u0027, \u0027status\u0027: \u0027MIGRATING\u0027, \u0027tenant_id\u0027: \u00276f70656e737461636b20342065766572\u0027, \u0027user_id\u0027: \u0027admin\u0027, \u0027metadata\u0027: {}, \u0027hostId\u0027: \u0027e692fc4c34e56d92f2f1a666c92aa4c51a0ea1bc09a79dac6e0874a5\u0027, \u0027image\u0027: {\u0027id\u0027: \u0027155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027, \u0027links\u0027: [{\u0027rel\u0027: \u0027bookmark\u0027, \u0027href\u0027: \u0027http://15e0c4cd-2214-48a5-aa0a-3d635ab32c74/images/155d900f-4e14-4e4c-a73d-069cbf4541e6\u0027}]}, \u0027flavor\u0027: {\u0027vcpus\u0027: 1, \u0027ram\u0027: 512, \u0027disk\u0027: 1, \u0027ephemeral\u0027: 0, \u0027swap\u0027: 0, \u0027original_name\u0027: \u0027m1.tiny\u0027, \u0027extra_specs\u0027: {}}, \u0027created\u0027: \u00272023-02-20T06:42:07Z\u0027, \u0027updated\u0027: \u00272023-02-20T06:42:16Z\u0027, \u0027addresses\u0027: {\u0027private\u0027: [{\u0027version\u0027: 4, \u0027addr\u0027: \u0027192.168.1.3\u0027, \u0027OS-EXT-IPS:type\u0027: \u0027fixed\u0027, \u0027OS-EXT-IPS-MAC:mac_addr\u0027: \u0027fa:16:3e:4c:2c:30\u0027}]}, \u0027accessIPv4\u0027: \u0027\u0027, \u0027accessIPv6\u0027: \u0027\u0027, \u0027links\u0027: [{\u0027rel\u0027: \u0027self\u0027, \u0027href\u0027: \u0027http://15e0c4cd-2214-48a5-aa0a-3d635ab32c74/v2.1/servers/e381f147-7cb0-4cf4-a7c2-5cb05425ea79\u0027}, {\u0027rel\u0027: \u0027bookmark\u0027, \u0027href\u0027: \u0027http://15e0c4cd-2214-48a5-aa0a-3d635ab32c74/servers/e381f147-7cb0-4cf4-a7c2-5cb05425ea79\u0027}], \u0027OS-DCF:diskConfig\u0027: \u0027MANUAL\u0027, \u0027progress\u0027: 0, \u0027OS-EXT-AZ:availability_zone\u0027: \u0027nova\u0027, \u0027config_drive\u0027: \u0027\u0027, \u0027key_name\u0027: None, \u0027OS-SRV-USG:launched_at\u0027: \u00272023-02-20T06:42:08.047095\u0027, \u0027OS-SRV-USG:terminated_at\u0027: None, \u0027security_groups\u0027: [{\u0027name\u0027: \u0027default\u0027}], \u0027OS-EXT-SRV-ATTR:host\u0027: \u0027src\u0027, \u0027OS-EXT-SRV-ATTR:instance_name\u0027: \u0027instance-00000001\u0027, \u0027OS-EXT-SRV-ATTR:hypervisor_hostname\u0027: \u0027src\u0027, \u0027OS-EXT-SRV-ATTR:reservation_id\u0027: \u0027r-p90qzik7\u0027, \u0027OS-EXT-SRV-ATTR:launch_index\u0027: 0, \u0027OS-EXT-SRV-ATTR:hostname\u0027: \u0027uvwqreimiigyimfbtfrl\u0027, \u0027OS-EXT-SRV-ATTR:kernel_id\u0027: \u0027\u0027, \u0027OS-EXT-SRV-ATTR:ramdisk_id\u0027: \u0027\u0027, \u0027OS-EXT-SRV-ATTR:root_device_name\u0027: \u0027/dev/vda\u0027, \u0027OS-EXT-SRV-ATTR:user_data\u0027: None, \u0027OS-EXT-STS:task_state\u0027: \u0027migrating\u0027, \u0027OS-EXT-STS:vm_state\u0027: \u0027active\u0027, \u0027OS-EXT-STS:power_state\u0027: 1, \u0027os-extended-volumes:volumes_attached\u0027: [], \u0027host_status\u0027: \u0027UP\u0027, \u0027locked\u0027: False, \u0027locked_reason\u0027: None, \u0027description\u0027: None, \u0027tags\u0027: [], \u0027trusted_image_certificates\u0027: None, \u0027server_groups\u0027: []}\n```","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"fc85ba45f57d753db1fb44979f49f99a84e62c2f","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        # active again after successful (server_a) and aborted"},{"line_number":183,"context_line":"        # (server_b) live migrations"},{"line_number":184,"context_line":"        self.lock_live_migration.release()"},{"line_number":185,"context_line":"        self._wait_for_state_change(self.server_a, \u0027ACTIVE\u0027)"},{"line_number":186,"context_line":"        self._wait_for_migration_status(self.server_a, [\u0027completed\u0027])"},{"line_number":187,"context_line":"        self._wait_for_state_change(self.server_b, \u0027ACTIVE\u0027)"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"406782d0_59fb16fd","line":185,"in_reply_to":"4ad4fcbf_22c7c2fc","updated":"2023-02-28 13:47:59.000000000","message":"Done","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b5264b1ffad025d840391b97aedd8a4d68dabcf5","unresolved":true,"context_lines":[{"line_number":1374,"context_line":"                # this branch covers kernel ovs interfaces"},{"line_number":1375,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1376,"context_line":"          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1377,"context_line":"          \u003ctarget dev\u003d\u0027tap274487d1-6%(func)s\u0027/\u003e"},{"line_number":1378,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1379,"context_line":"            else:"},{"line_number":1380,"context_line":"                # This branch covers the macvtap vnic-type."}],"source_content_type":"text/x-python","patch_set":6,"id":"cd5411f9_ed7a124d","line":1377,"updated":"2023-02-28 12:31:52.000000000","message":"we are missing \n\n \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027\n                   function\u003d\u00270x%(func)s\u0027/\u003e\n\nfrom \nhttps://github.com/openstack/nova/commit/1ad287bf9a8f65ce68c14f4634775f58abda15c2\n\nwhich was fixed in yoga.","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"fc85ba45f57d753db1fb44979f49f99a84e62c2f","unresolved":false,"context_lines":[{"line_number":1374,"context_line":"                # this branch covers kernel ovs interfaces"},{"line_number":1375,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1376,"context_line":"          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1377,"context_line":"          \u003ctarget dev\u003d\u0027tap274487d1-6%(func)s\u0027/\u003e"},{"line_number":1378,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1379,"context_line":"            else:"},{"line_number":1380,"context_line":"                # This branch covers the macvtap vnic-type."}],"source_content_type":"text/x-python","patch_set":6,"id":"4e535ce5_f7de78bc","line":1377,"in_reply_to":"cd5411f9_ed7a124d","updated":"2023-02-28 13:47:59.000000000","message":"Done","commit_id":"a39f67980c6626ad3b59e82a601533e4a421baae"}],"nova/tests/unit/virt/libvirt/test_vif.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"efe07269641326326a30c234ab94a9c14702bb2a","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"        br_want \u003d self.vif_midonet[\u0027devname\u0027]"},{"line_number":1019,"context_line":"        xml \u003d self._get_instance_xml(d, self.vif_ovs_filter_cap)"},{"line_number":1020,"context_line":"        node \u003d self._get_node(xml)"},{"line_number":1021,"context_line":"        # NOTE(stephenfin): We delegate creation of the port to os-vif if, and"},{"line_number":1022,"context_line":"        # only if, the version present is suitably new"},{"line_number":1023,"context_line":"        if ("},{"line_number":1024,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":1025,"context_line":"            pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":1026,"context_line":"        ):"},{"line_number":1027,"context_line":"            self._assertTypeAndMacEquals(node, \"ethernet\", \"target\", \"dev\","},{"line_number":1028,"context_line":"                                         self.vif_ovs_filter_cap, br_want)"},{"line_number":1029,"context_line":"        else:"},{"line_number":1030,"context_line":"            self._assertTypeAndMacEquals(node, \"bridge\", \"target\", \"dev\","},{"line_number":1031,"context_line":"                                         self.vif_ovs_filter_cap, br_want)"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"    def test_ib_hostdev_driver(self):"},{"line_number":1034,"context_line":"        d \u003d vif.LibvirtGenericVIFDriver()"}],"source_content_type":"text/x-python","patch_set":4,"id":"30677a85_29b48d60","line":1031,"range":{"start_line":1021,"start_character":1,"end_line":1031,"end_character":74},"updated":"2021-06-18 11:31:50.000000000","message":"This is reliant on the version of os-vif pulled into the test virtual env so only one branch is ever tested at once. I appreciate that testing both would be a mocking PITA however so I\u0027ll leave it to others to reject the backport based on this.","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1465b0451f13e976592ad81814b124d53562681f","unresolved":false,"context_lines":[{"line_number":1018,"context_line":"        br_want \u003d self.vif_midonet[\u0027devname\u0027]"},{"line_number":1019,"context_line":"        xml \u003d self._get_instance_xml(d, self.vif_ovs_filter_cap)"},{"line_number":1020,"context_line":"        node \u003d self._get_node(xml)"},{"line_number":1021,"context_line":"        # NOTE(stephenfin): We delegate creation of the port to os-vif if, and"},{"line_number":1022,"context_line":"        # only if, the version present is suitably new"},{"line_number":1023,"context_line":"        if ("},{"line_number":1024,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":1025,"context_line":"            pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":1026,"context_line":"        ):"},{"line_number":1027,"context_line":"            self._assertTypeAndMacEquals(node, \"ethernet\", \"target\", \"dev\","},{"line_number":1028,"context_line":"                                         self.vif_ovs_filter_cap, br_want)"},{"line_number":1029,"context_line":"        else:"},{"line_number":1030,"context_line":"            self._assertTypeAndMacEquals(node, \"bridge\", \"target\", \"dev\","},{"line_number":1031,"context_line":"                                         self.vif_ovs_filter_cap, br_want)"},{"line_number":1032,"context_line":""},{"line_number":1033,"context_line":"    def test_ib_hostdev_driver(self):"},{"line_number":1034,"context_line":"        d \u003d vif.LibvirtGenericVIFDriver()"}],"source_content_type":"text/x-python","patch_set":4,"id":"b8b03a1f_51136f63","line":1031,"range":{"start_line":1021,"start_character":1,"end_line":1031,"end_character":74},"in_reply_to":"30677a85_29b48d60","updated":"2021-06-18 11:39:21.000000000","message":"I was relying on lower-constraints to do this validation for us. That pulls in a suitably old version of os-vif, as seen by the failure in PS2. I can\u0027t simply mock this since we don\u0027t have the behavior provided by os-vif that we\u0027re relying on here (i.e. we can\u0027t see the \u0027create_port\u0027 attribute).\n\nThe alternative is to simply skip the test if os-vif is too old, but that seems worse?","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"c9b32b8cb4bb7b62c7d950612a15010baeddd25a","unresolved":true,"context_lines":[{"line_number":1642,"context_line":"        os_vif_type \u003d self.os_vif_ovs"},{"line_number":1643,"context_line":"        vif_type \u003d self.vif_ovs"},{"line_number":1644,"context_line":""},{"line_number":1645,"context_line":"        # NOTE(stephenfin): We delegate creation of the port to os-vif if, and"},{"line_number":1646,"context_line":"        # only if, the version present is suitably new"},{"line_number":1647,"context_line":"        if ("},{"line_number":1648,"context_line":"            pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"}],"source_content_type":"text/x-python","patch_set":9,"id":"00feb744_90d4fbbd","line":1645,"updated":"2023-04-18 11:44:43.000000000","message":"ah this need to be dynmaic again based on os-vif version yep makes sense.","commit_id":"23a4b27dc0c156ad6cbe5260d518da3fd62294b8"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"efe07269641326326a30c234ab94a9c14702bb2a","unresolved":true,"context_lines":[{"line_number":9011,"context_line":"            # NOTE(stephenfin): This functionality was only added in os-vif"},{"line_number":9012,"context_line":"            # 1.15.0, but our lower constraint is 1.14.0. Only enable this if"},{"line_number":9013,"context_line":"            # os-vif is new enough"},{"line_number":9014,"context_line":"            supports_os_vif_delegation \u003d ("},{"line_number":9015,"context_line":"                pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":9016,"context_line":"                pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":9017,"context_line":"            )"},{"line_number":9018,"context_line":"            if not supports_os_vif_delegation:"},{"line_number":9019,"context_line":"                LOG.warning("},{"line_number":9020,"context_line":"                    \u0027os-vif 1.15.0 or later is required to support \u0027"},{"line_number":9021,"context_line":"                    \u0027delegated port creation but you have %s; consider \u0027"},{"line_number":9022,"context_line":"                    \u0027updating this package to resolve bugs #1734320 and \u0027"},{"line_number":9023,"context_line":"                    \u0027#1815989\u0027,"},{"line_number":9024,"context_line":"                    pbr.version.VersionInfo(\u0027os-vif\u0027).version_string(),"},{"line_number":9025,"context_line":"                )"},{"line_number":9026,"context_line":""},{"line_number":9027,"context_line":"            data.vifs \u003d ("},{"line_number":9028,"context_line":"                migrate_data_obj.VIFMigrateData.create_skeleton_migrate_vifs("},{"line_number":9029,"context_line":"                    instance.get_network_info()))"}],"source_content_type":"text/x-python","patch_set":4,"id":"b290c4e0_42fb7e1f","line":9026,"range":{"start_line":9014,"start_character":0,"end_line":9026,"end_character":0},"updated":"2021-06-18 11:31:50.000000000","message":"Nice, I was wondering how you were going to do this. WORKSFORME locally.\n\n*later* However I don\u0027t see any tests for this?","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1465b0451f13e976592ad81814b124d53562681f","unresolved":true,"context_lines":[{"line_number":9011,"context_line":"            # NOTE(stephenfin): This functionality was only added in os-vif"},{"line_number":9012,"context_line":"            # 1.15.0, but our lower constraint is 1.14.0. Only enable this if"},{"line_number":9013,"context_line":"            # os-vif is new enough"},{"line_number":9014,"context_line":"            supports_os_vif_delegation \u003d ("},{"line_number":9015,"context_line":"                pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":9016,"context_line":"                pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":9017,"context_line":"            )"},{"line_number":9018,"context_line":"            if not supports_os_vif_delegation:"},{"line_number":9019,"context_line":"                LOG.warning("},{"line_number":9020,"context_line":"                    \u0027os-vif 1.15.0 or later is required to support \u0027"},{"line_number":9021,"context_line":"                    \u0027delegated port creation but you have %s; consider \u0027"},{"line_number":9022,"context_line":"                    \u0027updating this package to resolve bugs #1734320 and \u0027"},{"line_number":9023,"context_line":"                    \u0027#1815989\u0027,"},{"line_number":9024,"context_line":"                    pbr.version.VersionInfo(\u0027os-vif\u0027).version_string(),"},{"line_number":9025,"context_line":"                )"},{"line_number":9026,"context_line":""},{"line_number":9027,"context_line":"            data.vifs \u003d ("},{"line_number":9028,"context_line":"                migrate_data_obj.VIFMigrateData.create_skeleton_migrate_vifs("},{"line_number":9029,"context_line":"                    instance.get_network_info()))"}],"source_content_type":"text/x-python","patch_set":4,"id":"be96ca93_27b57bc1","line":9026,"range":{"start_line":9014,"start_character":0,"end_line":9026,"end_character":0},"in_reply_to":"b290c4e0_42fb7e1f","updated":"2021-06-18 11:39:21.000000000","message":"Ah, I don\u0027t think we\u0027d any tests for this on master either, now that I look at it. Will add.","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a01fe6a93caadc75e138f340833223f5bf0c171f","unresolved":false,"context_lines":[{"line_number":9011,"context_line":"            # NOTE(stephenfin): This functionality was only added in os-vif"},{"line_number":9012,"context_line":"            # 1.15.0, but our lower constraint is 1.14.0. Only enable this if"},{"line_number":9013,"context_line":"            # os-vif is new enough"},{"line_number":9014,"context_line":"            supports_os_vif_delegation \u003d ("},{"line_number":9015,"context_line":"                pbr.version.VersionInfo(\u0027os-vif\u0027).semantic_version() \u003e\u003d"},{"line_number":9016,"context_line":"                pbr.version.SemanticVersion.from_pip_string(\u00271.15.0\u0027)"},{"line_number":9017,"context_line":"            )"},{"line_number":9018,"context_line":"            if not supports_os_vif_delegation:"},{"line_number":9019,"context_line":"                LOG.warning("},{"line_number":9020,"context_line":"                    \u0027os-vif 1.15.0 or later is required to support \u0027"},{"line_number":9021,"context_line":"                    \u0027delegated port creation but you have %s; consider \u0027"},{"line_number":9022,"context_line":"                    \u0027updating this package to resolve bugs #1734320 and \u0027"},{"line_number":9023,"context_line":"                    \u0027#1815989\u0027,"},{"line_number":9024,"context_line":"                    pbr.version.VersionInfo(\u0027os-vif\u0027).version_string(),"},{"line_number":9025,"context_line":"                )"},{"line_number":9026,"context_line":""},{"line_number":9027,"context_line":"            data.vifs \u003d ("},{"line_number":9028,"context_line":"                migrate_data_obj.VIFMigrateData.create_skeleton_migrate_vifs("},{"line_number":9029,"context_line":"                    instance.get_network_info()))"}],"source_content_type":"text/x-python","patch_set":4,"id":"64f7d481_5a9f3a28","line":9026,"range":{"start_line":9014,"start_character":0,"end_line":9026,"end_character":0},"in_reply_to":"be96ca93_27b57bc1","updated":"2021-06-18 17:55:50.000000000","message":"So good thing you asked, because this isn\u0027t working 😄 I\u0027ve posted a fix for master at [1] and folded in that fix here. Let\u0027s see how the master patch does before we proceed with this\n\n[1] https://review.opendev.org/c/openstack/nova/+/797142","commit_id":"fa29aff6f75ac8e904c185d767dccd1fcf225aa5"}]}
