)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"a61dc7601dc862213b21aaed5d2607b31d7a7d62","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f287c486_adbe9a02","updated":"2025-09-09 16:46:26.000000000","message":"Apologies, I accidentally posted this without the UTs.  Will post a new patchset including the UTs...","commit_id":"7863b04c686f7a162203115b2b06e6efda13e991"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"19aa40759a8da4058cc3ee1d01698b2bd2cdfd88","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"84dc4654_7d6817b0","updated":"2025-09-09 17:11:20.000000000","message":"The concern posted by sean in the original patch looks regit.\n\nAFAIR when ml2 ovs plugin in neutron is used tap device SHOULD BE created by libvirt. This definitely breaks that pattern.\nYou should probably fix your plugin so that neutron can that the tap device should be unmanaged and honor that field in nova, or at least add a config knob to change it.","commit_id":"7863b04c686f7a162203115b2b06e6efda13e991"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f4f8fb71896136629ec8799d55d006727e03c688","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4b41bbc7_c7fff359","updated":"2025-09-09 17:17:58.000000000","message":"keeping this note in case it can be useful for reviewers\n\nThe domain xml guide states that\n\n`Since 5.7.0 Using managed\u003d\u0027no\u0027 with a pre-created tap device is useful because it permits a virtual machine managed by an unprivileged libvirtd to have emulated network devices based on tap devices.`\n\nso the option should be always available (current minimum libvirt version is 8.0.0)\n\nhttps://libvirt.org/formatdomain.html#generic-ethernet-connection","commit_id":"7863b04c686f7a162203115b2b06e6efda13e991"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"3c08ee5e2c7efa059c34b1af93d2708686d75003","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d4e554d3_2aefba40","in_reply_to":"84dc4654_7d6817b0","updated":"2025-09-09 17:13:20.000000000","message":"Ignore my comment. I see this only touches config_tap which is used by tap vif_type, which looks like a correct approach.","commit_id":"7863b04c686f7a162203115b2b06e6efda13e991"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"5ff52d28a27817eea9f76cc9a178fc82ba648c42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9ae8e10a_f459f3ac","updated":"2025-09-09 17:21:58.000000000","message":"Masahito Muroi, tagging you in case you would like to review this, as an evolution of your earlier change at https://review.opendev.org/c/openstack/nova/+/940135","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"},{"author":{"_account_id":8878,"name":"Masahito Muroi","email":"masahito.muroi@linecorp.com","username":"masa"},"change_message_id":"8bfe5926bd513043bb68d90d3897d955c3619208","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c8b79f9c_5dbe72bb","updated":"2025-11-05 07:21:30.000000000","message":"Thanks for the update :) many thanks for the updating the code.","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6a2b0a5afbd03732dbf764a4ecec51176c2b1fa4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9d509135_782e6197","updated":"2025-11-04 18:47:58.000000000","message":"it woudl be good to have a release not for this given the upgrade impact for calico user and the new libvirt 9.0.5 behvior\n\ni dont htink that fucntional tests are really needed in this case so i think im oke with proceedign with this version provide a release note is added\n\nit woudl be nice to eventually have calico tested in ci somewere even if it was a perodic btu that is out os scope fo this change","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"06be08a641ee21e086080c4cbf0e8cded7b06333","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"b19c6b22_020fee16","updated":"2025-11-06 11:46:40.000000000","message":"Many thanks for your reviews.  I have added a release note now.  Please do take another look when you have time.","commit_id":"5f78e44886f6e36015816bd661e0dae9c360f2e9"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"dd160b609cd0470bc52a4a527bb6cbb730f8f46f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cd64c033_2aa78202","updated":"2025-11-18 13:06:54.000000000","message":"Change looks good to me. Only touches the very specific tap vif_type codepath we don\u0027t verify in CI but the author verified it with Calico. \n\n14:05 \u003c nelljerram\u003e gibi: Many thanks; I have tested that it works for Calico.\n\n\nSo I\u0027m OK to land this.","commit_id":"6aba55a23faf47e6650e4cc0ae3007d77a19e3ac"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"61de89c2b034cad8070e33798050d9000f3eb21c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"6fbf06f4_4fcb0216","updated":"2025-11-06 15:57:08.000000000","message":"I\u0027ve raised https://bugs.launchpad.net/nova/+bug/2130801 to describe the failure in the nova-lvm job.  As far as I can tell, I don\u0027t think it is caused by this change - but of course I could be wrong about that.","commit_id":"6aba55a23faf47e6650e4cc0ae3007d77a19e3ac"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"5e5fbd2a71cc7e4db0a36c4e731c0de9eb749aaa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fe8a41c5_73a4d284","updated":"2025-11-17 14:38:31.000000000","message":"IIUC this change is now in need of another +2 vote.  Is there a Nova IRC call that I can attend to present this change and ask for that?  Or alternatively is there a regular Nova team sync that will get to this soon?","commit_id":"6aba55a23faf47e6650e4cc0ae3007d77a19e3ac"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"b9478c1c56ab477456e70f98d451c7f09bec2af1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"5f5208e7_1ad63ddb","updated":"2025-11-06 18:06:53.000000000","message":"recheck bug #2130801","commit_id":"6aba55a23faf47e6650e4cc0ae3007d77a19e3ac"}],"nova/tests/unit/virt/libvirt/test_vif.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6a2b0a5afbd03732dbf764a4ecec51176c2b1fa4","unresolved":false,"context_lines":[{"line_number":552,"context_line":"    def _assertTypeAndMacEquals(self, node, type, attr, source, vif,"},{"line_number":553,"context_line":"                                br_want\u003dNone, managed_want\u003dNone):"},{"line_number":554,"context_line":"        self._assertTypeEquals(node, type, attr, source, br_want, managed_want)"},{"line_number":555,"context_line":"        self._assertMacEquals(node, vif)"},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"    def _assertModel(self, xml, model_want\u003dNone, driver_want\u003dNone):"},{"line_number":558,"context_line":"        node \u003d self._get_node(xml)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9e53b87f_bdddc19c","line":555,"updated":"2025-11-04 18:47:58.000000000","message":"and this is just the generic plumbing for that change.\n+1","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6a2b0a5afbd03732dbf764a4ecec51176c2b1fa4","unresolved":true,"context_lines":[{"line_number":1117,"context_line":"        xml \u003d self._get_instance_xml(d, self.vif_tap)"},{"line_number":1118,"context_line":"        node \u003d self._get_node(xml)"},{"line_number":1119,"context_line":"        self._assertTypeAndMacEquals(node, \"ethernet\", \"target\", \"dev\","},{"line_number":1120,"context_line":"                                     self.vif_tap, br_want, \"no\")"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.device_exists\u0027, return_value\u003dTrue)"},{"line_number":1123,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_mtu\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fbe2bf94_f6d14f77","line":1120,"updated":"2025-11-04 18:47:58.000000000","message":"ok so this is the test coverage for the calico and medionet (vif_type\u003dtap) code paths","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"222489f71921bc0dda53e7f723260748d7434361","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"        xml \u003d self._get_instance_xml(d, self.vif_tap)"},{"line_number":1118,"context_line":"        node \u003d self._get_node(xml)"},{"line_number":1119,"context_line":"        self._assertTypeAndMacEquals(node, \"ethernet\", \"target\", \"dev\","},{"line_number":1120,"context_line":"                                     self.vif_tap, br_want, \"no\")"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.device_exists\u0027, return_value\u003dTrue)"},{"line_number":1123,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_mtu\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a538b07_3f6ea799","line":1120,"in_reply_to":"fbe2bf94_f6d14f77","updated":"2025-11-06 12:27:05.000000000","message":"Acknowledged","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"0443f34be8a90d7161211969d148d72459d45fc8","unresolved":false,"context_lines":[{"line_number":1117,"context_line":"        xml \u003d self._get_instance_xml(d, self.vif_tap)"},{"line_number":1118,"context_line":"        node \u003d self._get_node(xml)"},{"line_number":1119,"context_line":"        self._assertTypeAndMacEquals(node, \"ethernet\", \"target\", \"dev\","},{"line_number":1120,"context_line":"                                     self.vif_tap, br_want, \"no\")"},{"line_number":1121,"context_line":""},{"line_number":1122,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.device_exists\u0027, return_value\u003dTrue)"},{"line_number":1123,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_mtu\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9295e2d7_a367acbb","line":1120,"in_reply_to":"fbe2bf94_f6d14f77","updated":"2025-11-06 12:30:14.000000000","message":"Acknowledged","commit_id":"5a2ef925f591d4da3216b6e4765a0eaba6807628"}],"releasenotes/notes/bug-2033681-fix-vif-type-tap-with-new-libvirt-791e8b5f170e9c40.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"222489f71921bc0dda53e7f723260748d7434361","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    to treat TAP interface specifications as \"managed\" by default.  This means"},{"line_number":6,"context_line":"    that libvirt expects to create the TAP interface itself, which is"},{"line_number":7,"context_line":"    incompatible with how Nova works, because Nova creates the TAP interface"},{"line_number":8,"context_line":"    before telling libvirt about it.  In particular this broke OpenStack with"},{"line_number":9,"context_line":"    Calico as the network plugin, because Calico uses VIF type TAP."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    This is now fixed, by Nova adding the `managed\u003d\"no\"` attribute to TAP"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"e74b595d_446a1168","line":8,"range":{"start_line":8,"start_character":36,"end_line":8,"end_character":38},"updated":"2025-11-06 12:27:05.000000000","message":"nit this shoudl be 1 space.","commit_id":"5f78e44886f6e36015816bd661e0dae9c360f2e9"},{"author":{"_account_id":13734,"name":"Nell Jerram","email":"nell@tigera.io","username":"neiljerram"},"change_message_id":"0443f34be8a90d7161211969d148d72459d45fc8","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    to treat TAP interface specifications as \"managed\" by default.  This means"},{"line_number":6,"context_line":"    that libvirt expects to create the TAP interface itself, which is"},{"line_number":7,"context_line":"    incompatible with how Nova works, because Nova creates the TAP interface"},{"line_number":8,"context_line":"    before telling libvirt about it.  In particular this broke OpenStack with"},{"line_number":9,"context_line":"    Calico as the network plugin, because Calico uses VIF type TAP."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    This is now fixed, by Nova adding the `managed\u003d\"no\"` attribute to TAP"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"81fa7bf1_cdc60cf3","line":8,"range":{"start_line":8,"start_character":36,"end_line":8,"end_character":38},"in_reply_to":"e74b595d_446a1168","updated":"2025-11-06 12:30:14.000000000","message":"Sorry, fixed now in latest patchset.","commit_id":"5f78e44886f6e36015816bd661e0dae9c360f2e9"}]}
