)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"37e920c1333f6c7c51e5db77989374741b7b0a37","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: delegate ovs plug to os-vif"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This change alters the xml generation"},{"line_number":10,"context_line":"  for ovs ports when hybrid plug is false"},{"line_number":11,"context_line":"  to be of type ethernet"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- This change will reduce the time reqiured"},{"line_number":14,"context_line":"  to wire up the port on live migration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_b6eaa074","line":11,"range":{"start_line":10,"start_character":16,"end_line":11,"end_character":24},"updated":"2018-10-19 18:18:28.000000000","message":"when \"hybrid plug is false\" is where exactly?\n\nAlso, please clearly explain how changing the interface type to \u0027ethernet\u0027 (which I presume means \"generic\"?) from \u0027bridge\u0027 is addressing the issue where a user could eavesdrop on private traffic.","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1c241fa18923f5321961c8920186b14c00a4f4a9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"libvirt: delegate ovs plug to os-vif"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- This change alters the xml generation"},{"line_number":10,"context_line":"  for ovs ports when hybrid plug is false"},{"line_number":11,"context_line":"  to be of type ethernet"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- This change will reduce the time reqiured"},{"line_number":14,"context_line":"  to wire up the port on live migration"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_4da821d9","line":11,"range":{"start_line":10,"start_character":16,"end_line":11,"end_character":24},"in_reply_to":"3f79a3b5_b6eaa074","updated":"2018-11-21 12:42:41.000000000","message":"the os-vif and neutron changes are what actually prevent that.\n\nthis change was intended to make the libvirt driver rely on os-vif to plug the vif into ovs. libvirt would still create the tap and set the mtu and mac as it/qemu normally does but\nit would no longer interact with ovs.\n\nthe ethernet type which is just a tap device not connected to anything is refered to as a  Generic ethernet connection in libvirt docs which is why i called it generic on the os-vif side.\nhttps://libvirt.org/formatdomain.html#elementsNICSEthernet","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"37e920c1333f6c7c51e5db77989374741b7b0a37","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  for ovs ports when hybrid plug is false"},{"line_number":11,"context_line":"  to be of type ethernet"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- This change will reduce the time reqiured"},{"line_number":14,"context_line":"  to wire up the port on live migration"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_56730c50","line":13,"range":{"start_line":13,"start_character":35,"end_line":13,"end_character":43},"updated":"2018-10-19 18:18:28.000000000","message":"required","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"37e920c1333f6c7c51e5db77989374741b7b0a37","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  to wire up the port on live migration"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"},{"line_number":17,"context_line":"Closes-Bug: #1734320"},{"line_number":18,"context_line":"Depends-On: https://review.openstack.org/#/c/602384"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_b689401f","line":17,"updated":"2018-10-19 18:18:28.000000000","message":"Please clearly describe *how* this patch solves that bug. The bug in question is about being able to eavesdrop on private traffic. Neither of the above listed changes indicates how those changes address the ability to eavesdrop on private traffic...","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1c241fa18923f5321961c8920186b14c00a4f4a9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"  to wire up the port on live migration"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"},{"line_number":17,"context_line":"Closes-Bug: #1734320"},{"line_number":18,"context_line":"Depends-On: https://review.openstack.org/#/c/602384"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_ad09b5db","line":17,"in_reply_to":"3f79a3b5_b689401f","updated":"2018-11-21 12:42:41.000000000","message":"this was originally planned to be the last patch in the series that relied on the os-vif and neutron changes to adress the issue. \n\ni created it with the assumption libvirt would complain if we configured the ovs port in os-vif but libvirt is perfectly happy with that so i abandoned the change.","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b15858b2ae09cd16960526bd3a4e7a9bd4c81574","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1734320"},{"line_number":20,"context_line":"Closes-Bug: #1815989"},{"line_number":21,"context_line":"Depends-On: https://review.openstack.org/640258"},{"line_number":22,"context_line":"Change-Id: I11fb5d3ada7f27b39c183157ea73c8b72b4e672e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"7faddb67_2ae60246","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":47},"updated":"2019-07-29 20:51:14.000000000","message":"so this didnt work\ndoes it have to be to a specfic revision\n\nhttps://review.opendev.org/#/c/640258/10\n\nor jus the #/c/ form\n\nhttps://review.opendev.org/#/c/640258\n\ni think im going to change this back to the change id just to be safe.\n\nI79158baafbb99bee99a1d687039313eb454d3a9b","commit_id":"22eb5a6704cdfc2bc615f55d2be10fedc5603ad3"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ceed3c26290fd1651888bf9e217352a150aacbc5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"  for ovs ports when hybrid plug is false"},{"line_number":11,"context_line":"  to be of type ethernet"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- This change will reduce the time reqiured"},{"line_number":14,"context_line":"  to wire up the port on live migration"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- This change corrects the order of arguments"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"9f560f44_ae8d7dd5","line":13,"range":{"start_line":13,"start_character":35,"end_line":13,"end_character":43},"updated":"2020-09-22 14:09:48.000000000","message":"required","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"b9a530230b5fe6804d9e62632551a4587918c5a4","unresolved":false,"context_lines":[{"line_number":20,"context_line":"  to ensure that create-port is present in the profile."},{"line_number":21,"context_line":"  create-port was added in 1.15.0 however 1.15.1 and"},{"line_number":22,"context_line":"  1.15.2 have important bugfixs for linuxbridge so"},{"line_number":23,"context_line":"  1.15.2 is chosen instead."},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Depends-On: Id12486b3127ab4ac8ad9ef2b3641da1b79a25a50"},{"line_number":26,"context_line":"Closes-Bug: #1734320"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"fffc6b78_324b3088","line":23,"updated":"2020-11-19 00:36:50.000000000","message":"++ as sean-k-mooney mentioned 1.15.2 is the upper constraint in stein:\n\nhttps://github.com/openstack/requirements/blob/stable/stein/upper-constraints.txt#L488\n\nso it\u0027s been around for awhile.","commit_id":"6eeb046360457724819b28872cb57d699d821129"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29071,"name":"norman shen","email":"yshxxsjt715@gmail.com","username":"ushen"},"change_message_id":"a31b6884e7c5fffbab53a11d699760dcb5dc57dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"45c71267_bdc850bd","updated":"2024-03-14 07:38:05.000000000","message":"Sorry for being dumb, but why does this patchset help reducing packet loss during live migration?","commit_id":"a62dd42c0dbb6b2ab128e558e127d76962738446"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e0c2c9b58bb754a03eb3178e1324cecacd946777","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":33,"id":"6e1da675_196abea1","updated":"2024-03-14 12:07:59.000000000","message":"The short answer is by moving the create of the port to pre live migrate which was only possibel by changing that form libvirt to nova/os-vif we an ensure the port is wired up by neutron before we start the migration. that reduces the migration downtime as the neutron configuration of the port is nologner racing with \nlibvirt stoping the guest on the host and resuming it on the dest.","commit_id":"a62dd42c0dbb6b2ab128e558e127d76962738446"}],"nova/network/os_vif_util.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            vif_name\u003dvif_name,"},{"line_number":348,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":349,"context_line":"    else:"},{"line_number":350,"context_line":"        profile.create_port \u003d True"},{"line_number":351,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":352,"context_line":"            vif,"},{"line_number":353,"context_line":"            objects.vif.VIFOpenVSwitch,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_1adc55e2","line":350,"updated":"2020-08-26 15:33:43.000000000","message":"Can you add a comment for this, explaining why it\u0027s different?","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"034bc37eed49561fd8e80f08bc56b382b3104e61","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            vif_name\u003dvif_name,"},{"line_number":348,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":349,"context_line":"    else:"},{"line_number":350,"context_line":"        profile.create_port \u003d True"},{"line_number":351,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":352,"context_line":"            vif,"},{"line_number":353,"context_line":"            objects.vif.VIFOpenVSwitch,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_b76a9fe9","line":350,"in_reply_to":"9f560f44_1adc55e2","updated":"2020-08-26 18:44:08.000000000","message":"ah yes i can but basically for the non hybrid plug case which was previouls partly done by neutron we want to tell os-vif to create teh port.\n\nwe will be taking this path in os-vif\n\nhttps://github.com/openstack/os-vif/blob/master/vif_plug_ovs/ovs.py#L227-L251\n\nthe current behavior is relying on libvirt to plug the vif\nbut we want os-vif to do it.\n\neventually we will want to remvoe \n\n profile.create_port  and alway create it in that case but that is out of scope of this change","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d2ebec3810a9b4e46d092b3d93f7153577f1b161","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            vif_name\u003dvif_name,"},{"line_number":348,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":349,"context_line":"    else:"},{"line_number":350,"context_line":"        profile.create_port \u003d True"},{"line_number":351,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":352,"context_line":"            vif,"},{"line_number":353,"context_line":"            objects.vif.VIFOpenVSwitch,"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_6d85d859","line":350,"in_reply_to":"9f560f44_b76a9fe9","updated":"2020-08-26 19:59:56.000000000","message":"actuly i dont want to put this in the code so ill put it here\n\nas part of fixing this bug in the past i made  this change in os-vif \nhttps://github.com/openstack/os-vif/commit/165ed325917e5deadb274ad9c122db157c0b55b2\n\nto have os-vif always create the port in this configuration\nthen we realised libvirt was deleteing the port and recrating it so we did a partial revert\n\nhttps://github.com/openstack/os-vif/commit/86ad3cb24279a6d8dbe29901b2c70eb62f8d33a7\n\nthen we need to supprot smarnics \n\nand allowed it to be condtional\n\nhttps://github.com/openstack/os-vif/commit/9611f0472280dfb19558812f4f74be6af55fd42f\n\nthis is why we did a partial revert instead of a full revert.\n\nwe can now go back to the old logic in os-vif that i tried to intoduce firts and always create the port in this case hoever that would require deprecating the profile option and some other steps for for now i am just using it to instruct os-vif to create teh port.\n\n\ntl;dr if we take the _plug_vif_generic path\nthis is the correct thing to do no that i have change the xml element form bridge to ethernet since libvirt will nolonger create the port.","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            vif_name\u003dvif_name,"},{"line_number":348,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":349,"context_line":"    else:"},{"line_number":350,"context_line":"        profile.create_port \u003d True"},{"line_number":351,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":352,"context_line":"            vif,"},{"line_number":353,"context_line":"            objects.vif.VIFOpenVSwitch,"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_5ed09cc9","line":350,"updated":"2020-11-13 02:51:42.000000000","message":"Is create_port something new in os-vif 1.15.1? I didn\u0027t see anything in the release notes [1] and I don\u0027t know enough about this area to make the connection as to how setting create_port\u003dTrue results in os-vif plugging the vif.\n\nAnother question: does this path run in the gate during tempest tests or is this change only tested by the functional tests in this patch?\n\n[1] https://docs.openstack.org/releasenotes/os-vif/stein.html","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4abc45e1d45b9c406d1a92e803a4a01aa7a85ca9","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            vif_name\u003dvif_name,"},{"line_number":348,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":349,"context_line":"    else:"},{"line_number":350,"context_line":"        profile.create_port \u003d True"},{"line_number":351,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":352,"context_line":"            vif,"},{"line_number":353,"context_line":"            objects.vif.VIFOpenVSwitch,"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_96f30ae8","line":350,"in_reply_to":"1f621f24_5ed09cc9","updated":"2020-11-17 22:14:04.000000000","message":"\u003e Is create_port something new in os-vif 1.15.1? I didn\u0027t see\n \u003e anything in the release notes [1] and I don\u0027t know enough about\n \u003e this area to make the connection as to how setting create_port\u003dTrue\n \u003e results in os-vif plugging the vif.\n\nLooks like create_port was added in version 1.15.0 [2]. So why are we bumping the. version to 1.15.1 specifically and not 1.15.0 or 1.15.2? I don\u0027t find anything in the release notes for 1.15.1 [1].\n\n[1] https://docs.openstack.org/releasenotes/os-vif/stein.html\n\n[2] https://github.com/openstack/os-vif/commit/9611f0472280dfb19558812f4f74be6af55fd42f","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46c002b81fe1ea45e022ab4fcb171c9935f5fbc1","unresolved":false,"context_lines":[{"line_number":347,"context_line":"            vif_name\u003dvif_name,"},{"line_number":348,"context_line":"            bridge_name\u003d_get_hybrid_bridge_name(vif))"},{"line_number":349,"context_line":"    else:"},{"line_number":350,"context_line":"        profile.create_port \u003d True"},{"line_number":351,"context_line":"        obj \u003d _get_vif_instance("},{"line_number":352,"context_line":"            vif,"},{"line_number":353,"context_line":"            objects.vif.VIFOpenVSwitch,"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_fcf8584a","line":350,"in_reply_to":"1f621f24_96f30ae8","updated":"2020-11-18 12:01:01.000000000","message":"this is the main cahnge\nhttps://github.com/openstack/os-vif/commit/638861c37cf1e08e8acfb20a22162f730e69e5c3\nhttps://bugs.launchpad.net/os-vif/+bug/1817919\nwe had a minor bugfix that we found after the 1.15.0 release\n\n1.15.2 actully has two important bugfix too for linux bridge\n\nhttps://github.com/openstack/os-vif/compare/1.15.1...1.15.2\n\nhttps://github.com/openstack/os-vif/commit/c42e7641f00905ff2dd68096d733929bf84756b5 and\nhttps://github.com/openstack/os-vif/commit/ec9d5430300c908ea9a1c64151eee7af522a44e7\n\n1.15.2 was the first version we released based on stable/stien\n1.15.1 was the version we release and was used during the stien rc period.\n\nnote for others i replied to melanie\u0027s previous question on irc\n\nhttp://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2020-11-17.log.html#t2020-11-17T15:11:15\n\ntl;dr without create_port \u003d True it would be a noop as libvirt was expected to the plugging unless it was windows wher os-vif needed to do it. that is why create_port was added to support ovs on windows.","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"}],"nova/objects/migrate_data.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b572074aaba577b85b4b5abe54a6d07292f93b33","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @property"},{"line_number":64,"context_line":"    def vif_details(self):"},{"line_number":65,"context_line":"        return jsonutils.loads(self.vif_details_json)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @vif_details.setter"},{"line_number":68,"context_line":"    def vif_details(self, vif_details_dict):"}],"source_content_type":"text/x-python","patch_set":27,"id":"fa1f90ac_16b5456f","line":65,"range":{"start_line":65,"start_character":15,"end_line":65,"end_character":53},"updated":"2020-12-14 21:31:47.000000000","message":"we mign want to do the same  ... if ... else {} here too but its unrelated to my current change.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90a898895c9ff6734895987974926c36b6e84ea3","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    @property"},{"line_number":64,"context_line":"    def vif_details(self):"},{"line_number":65,"context_line":"        return jsonutils.loads(self.vif_details_json)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @vif_details.setter"},{"line_number":68,"context_line":"    def vif_details(self, vif_details_dict):"}],"source_content_type":"text/x-python","patch_set":27,"id":"e51cc323_4c317977","line":65,"range":{"start_line":65,"start_character":15,"end_line":65,"end_character":53},"in_reply_to":"fa1f90ac_16b5456f","updated":"2020-12-15 13:41:45.000000000","message":"im going to do this for safty and consitency","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c8def70a704ac4240c1cf003745adeb0648d1fc","unresolved":true,"context_lines":[{"line_number":82,"context_line":"    def supports_os_vif_delegation(self):"},{"line_number":83,"context_line":"        return ("},{"line_number":84,"context_line":"            self.OS_VIF_DELEGATION in self.profile and"},{"line_number":85,"context_line":"            self.profile[self.OS_VIF_DELEGATION])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @supports_os_vif_delegation.setter"},{"line_number":88,"context_line":"    def supports_os_vif_delegation(self, supported):"}],"source_content_type":"text/x-python","patch_set":27,"id":"a8093621_d588e61a","line":85,"updated":"2020-12-15 03:29:25.000000000","message":"Note to self: looks like it should be safe to assume we can\u0027t get a KeyError as self.OS_VIF_DELEGATION","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"bd25b6219cbe3ec1975b5509175de3103d72138c","unresolved":true,"context_lines":[{"line_number":82,"context_line":"    def supports_os_vif_delegation(self):"},{"line_number":83,"context_line":"        return ("},{"line_number":84,"context_line":"            self.OS_VIF_DELEGATION in self.profile and"},{"line_number":85,"context_line":"            self.profile[self.OS_VIF_DELEGATION])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @supports_os_vif_delegation.setter"},{"line_number":88,"context_line":"    def supports_os_vif_delegation(self, supported):"}],"source_content_type":"text/x-python","patch_set":27,"id":"ea3202c8_5ed6a1c8","line":85,"in_reply_to":"a8093621_d588e61a","updated":"2020-12-15 03:48:44.000000000","message":"Sorry, I had meant to delete this ^ before posting. I was trying to figure out if there\u0027s any way OS_VIF_DELEGATION can be present without the OS_VIF_DELEGATION key set in self.profile. It seems like not but I keep getting confused.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90a898895c9ff6734895987974926c36b6e84ea3","unresolved":true,"context_lines":[{"line_number":82,"context_line":"    def supports_os_vif_delegation(self):"},{"line_number":83,"context_line":"        return ("},{"line_number":84,"context_line":"            self.OS_VIF_DELEGATION in self.profile and"},{"line_number":85,"context_line":"            self.profile[self.OS_VIF_DELEGATION])"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @supports_os_vif_delegation.setter"},{"line_number":88,"context_line":"    def supports_os_vif_delegation(self, supported):"}],"source_content_type":"text/x-python","patch_set":27,"id":"61b5872e_815e643e","line":85,"in_reply_to":"ea3202c8_5ed6a1c8","updated":"2020-12-15 13:41:45.000000000","message":"there was no key error  but there was an atribute error. which is why i updated profile\nby default self.profile_json is unset so acessing it raises an atribute error from ovo.\n\ni am going to update this to just be self.profile.get(self.OS_VIF_DELEGATION, False)\nits shorter and does the same thing","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b572074aaba577b85b4b5abe54a6d07292f93b33","unresolved":true,"context_lines":[{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    @supports_os_vif_delegation.setter"},{"line_number":88,"context_line":"    def supports_os_vif_delegation(self, supported):"},{"line_number":89,"context_line":"        self.profile \u003d self.profile.update({self.OS_VIF_DELEGATION: supported})"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def get_dest_vif(self):"},{"line_number":92,"context_line":"        \"\"\"Get a destination VIF representation of this object."}],"source_content_type":"text/x-python","patch_set":27,"id":"9747c0d2_736baa7d","line":89,"range":{"start_line":89,"start_character":23,"end_line":89,"end_character":35},"updated":"2020-12-14 21:31:47.000000000","message":"this creates a copy which we update and then save back.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"}],"nova/tests/functional/libvirt/test_pci_sriov_servers.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        self.mock_conn.return_value \u003d fake_connection"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        # Create a flavor"},{"line_number":233,"context_line":"        flavor_id \u003d self._create_flavor()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        if not self.compute_started:"},{"line_number":236,"context_line":"            self.compute \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027test_compute0\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_5ad88d1c","line":233,"updated":"2020-08-26 15:33:43.000000000","message":"Is this intentional?","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"034bc37eed49561fd8e80f08bc56b382b3104e61","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        self.mock_conn.return_value \u003d fake_connection"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        # Create a flavor"},{"line_number":233,"context_line":"        flavor_id \u003d self._create_flavor()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        if not self.compute_started:"},{"line_number":236,"context_line":"            self.compute \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027test_compute0\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_b743bf6b","line":233,"in_reply_to":"9f560f44_5ad88d1c","updated":"2020-08-26 18:44:08.000000000","message":"i cant rememeber ill have to check thses patches are pretty old and i just did a rebase so it was added in patchset 12 so proably but ill verify.","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc1b70991fbd5fc540ff813f9eaddf32b7bf8f2d","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        self.mock_conn.return_value \u003d fake_connection"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        # Create a flavor"},{"line_number":233,"context_line":"        flavor_id \u003d self._create_flavor()"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"        if not self.compute_started:"},{"line_number":236,"context_line":"            self.compute \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027test_compute0\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_ad5410ff","line":233,"in_reply_to":"9f560f44_b743bf6b","updated":"2020-08-26 19:48:23.000000000","message":"so yes top level comment on patchset 11\ncoppied below with some spelling fixes\n\n\nok i finally figured it out.\nthe functional test is failing because it is wrong.\n\nthe fake instance xml generation is assuming that all interface without a source element are sriov direct interfaces\n\nhttps://github.com/openstack/nova/commit/ab7c968b6f66404c032f62a952e353f94d3be165#diff-ede661771530c1367d24c1c0099d754cR1023\n\nthis is not true.\n\nas a result the diagnostic info is not present for the ovs port because the target is not set in the else branch.\n\nand because the target is not generated when we take this branch\n\nhttps://github.com/openstack/nova/commit/ab7c968b6f66404c032f62a952e353f94d3be165#diff-f4019782d93a196a0d026479e6aa61b1R9188","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0511f593e2a39304cd9d87a6b41e2154a78313c","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        # create the SR-IOV port"},{"line_number":238,"context_line":"        self.neutron.create_port({\u0027port\u0027: self.neutron.network_4_port_1})"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        # create a server using the VF and multiple networks"},{"line_number":241,"context_line":"        extra_spec \u003d {\u0027pci_passthrough:alias\u0027: f\u0027{self.VFS_ALIAS_NAME}:1\u0027}"},{"line_number":242,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":243,"context_line":"        server \u003d self._create_server("},{"line_number":244,"context_line":"            flavor_id\u003dflavor_id,"},{"line_number":245,"context_line":"            networks\u003d["},{"line_number":246,"context_line":"                {\u0027uuid\u0027: base.LibvirtNeutronFixture.network_1[\u0027id\u0027]},"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_dbb248e5","side":"PARENT","line":243,"range":{"start_line":240,"start_character":0,"end_line":243,"end_character":8},"updated":"2020-09-21 14:35:41.000000000","message":"Why was it needed before this patch?\n// later\nIt is not needed even on master. I guess this is an unrelated cleanup then.","commit_id":"089cc217daddc5f87cd342370c06e11f49d40e67"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4dc3d0e25fd77d8df4397ad234f92789e5113094","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        # create the SR-IOV port"},{"line_number":238,"context_line":"        self.neutron.create_port({\u0027port\u0027: self.neutron.network_4_port_1})"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        # create a server using the VF and multiple networks"},{"line_number":241,"context_line":"        extra_spec \u003d {\u0027pci_passthrough:alias\u0027: f\u0027{self.VFS_ALIAS_NAME}:1\u0027}"},{"line_number":242,"context_line":"        flavor_id \u003d self._create_flavor(extra_spec\u003dextra_spec)"},{"line_number":243,"context_line":"        server \u003d self._create_server("},{"line_number":244,"context_line":"            flavor_id\u003dflavor_id,"},{"line_number":245,"context_line":"            networks\u003d["},{"line_number":246,"context_line":"                {\u0027uuid\u0027: base.LibvirtNeutronFixture.network_1[\u0027id\u0027]},"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_67ee02b6","side":"PARENT","line":243,"range":{"start_line":240,"start_character":0,"end_line":243,"end_character":8},"in_reply_to":"9f560f44_dbb248e5","updated":"2020-09-22 12:23:40.000000000","message":"actually the specific reason it was needed has been fixed by a different patch however this was ment to be testing server diagnostics with neutron sriov ports and its also  addin a vf via pci passthough alias so this device should not have been added in the first place.\n\nthis was need when i first submitted this but i think tis still valid cleanup.","commit_id":"089cc217daddc5f87cd342370c06e11f49d40e67"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4dc3d0e25fd77d8df4397ad234f92789e5113094","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        self.start_compute(pci_info\u003dpci_info)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        # create the SR-IOV port"},{"line_number":238,"context_line":"        self.neutron.create_port({\u0027port\u0027: self.neutron.network_4_port_1})"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        flavor_id \u003d self._create_flavor()"},{"line_number":241,"context_line":"        server \u003d self._create_server("}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_c7826ec7","line":238,"range":{"start_line":238,"start_character":55,"end_line":238,"end_character":71},"updated":"2020-09-22 12:23:40.000000000","message":"that said ill double check this is an sriov port.\nbut it shoudl be.","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0dc59a7ffb65602825337d1f3d07be763a5bc0d0","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        self.start_compute(pci_info\u003dpci_info)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"        # create the SR-IOV port"},{"line_number":238,"context_line":"        self.neutron.create_port({\u0027port\u0027: self.neutron.network_4_port_1})"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        flavor_id \u003d self._create_flavor()"},{"line_number":241,"context_line":"        server \u003d self._create_server("}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_8444a2b9","line":238,"range":{"start_line":238,"start_character":55,"end_line":238,"end_character":71},"in_reply_to":"9f560f44_c7826ec7","updated":"2020-10-05 11:47:47.000000000","message":"yes this is vnic_type\u003ddirect","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2e99e39c45eb249a070f6a4a6944d6e73763fd28","unresolved":false,"context_lines":[{"line_number":273,"context_line":"            diagnostics[\u0027nic_details\u0027][0][\u0027mac_address\u0027],"},{"line_number":274,"context_line":"        )"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        for key in (\u0027rx_packets\u0027,\u0027tx_packets\u0027):"},{"line_number":277,"context_line":"            self.assertIn(key, diagnostics[\u0027nic_details\u0027][0])"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":23,"id":"1f621f24_92a712be","line":276,"updated":"2020-11-06 18:19:17.000000000","message":"pep8: E231 missing whitespace after \u0027,\u0027","commit_id":"10905bcde2ffe51f8d6602999ff09963c8a712ca"}],"nova/tests/unit/virt/libvirt/fakelibvirt.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"37e920c1333f6c7c51e5db77989374741b7b0a37","unresolved":false,"context_lines":[{"line_number":844,"context_line":"                \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":845,"context_line":"                \u003csource %(type)s\u003d\u0027%(source)s\u0027/\u003e"},{"line_number":846,"context_line":"                \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027"},{"line_number":847,"context_line":"                function\u003d\u00270x0\u0027/\u003e"},{"line_number":848,"context_line":"                \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":849,"context_line":"            else:"},{"line_number":850,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_561d4cbd","line":847,"updated":"2018-10-19 18:18:28.000000000","message":"nit: here and below, please indent \"function\u003d...\" to make it easier to read (like the original was).","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"1c241fa18923f5321961c8920186b14c00a4f4a9","unresolved":false,"context_lines":[{"line_number":844,"context_line":"                \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":845,"context_line":"                \u003csource %(type)s\u003d\u0027%(source)s\u0027/\u003e"},{"line_number":846,"context_line":"                \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027"},{"line_number":847,"context_line":"                function\u003d\u00270x0\u0027/\u003e"},{"line_number":848,"context_line":"                \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":849,"context_line":"            else:"},{"line_number":850,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_eabc736c","line":847,"in_reply_to":"3f79a3b5_561d4cbd","updated":"2018-11-21 12:42:41.000000000","message":"sure i can do this but i had abandond this as it seemed like it was not needed. ill tidy it up and resubmit but the libvirt interface type ethernet seems to be kindof flaky","commit_id":"73bb05845b47f7b4fea8dabcbe194831d3c32574"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc1b70991fbd5fc540ff813f9eaddf32b7bf8f2d","unresolved":false,"context_lines":[{"line_number":1118,"context_line":"      \u003ctarget dev\u003d\u0027%(target_dev)s\u0027 bus\u003d\u0027%(target_bus)s\u0027/\u003e"},{"line_number":1119,"context_line":"      \u003caddress type\u003d\u0027drive\u0027 controller\u003d\u00270\u0027 bus\u003d\u00270\u0027 unit\u003d\u00270\u0027/\u003e"},{"line_number":1120,"context_line":"    \u003c/disk\u003e\u0027\u0027\u0027 % dict(source_attr\u003dsource_attr, **disk)"},{"line_number":1121,"context_line":"        func \u003d 0o0"},{"line_number":1122,"context_line":"        nics \u003d \u0027\u0027"},{"line_number":1123,"context_line":"        for nic in self._def[\u0027devices\u0027][\u0027nics\u0027]:"},{"line_number":1124,"context_line":"            nic[\u0027func\u0027] \u003d func"}],"source_content_type":"text/x-python","patch_set":14,"id":"9f560f44_caffaa31","line":1121,"range":{"start_line":1121,"start_character":14,"end_line":1121,"end_character":18},"updated":"2020-08-26 19:48:23.000000000","message":"for those that dont know what this smile face is its octal 0","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7163c39ea74a6d2654615a6d36500f4aa60415e2","unresolved":false,"context_lines":[{"line_number":1113,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1114,"context_line":"          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1115,"context_line":"          \u003csource %(type)s\u003d\u0027%(source)s\u0027/\u003e"},{"line_number":1116,"context_line":"          \u003ctarget dev\u003d\u0027tap274487d1-6%(func)s\u0027/\u003e"},{"line_number":1117,"context_line":"          \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027"},{"line_number":1118,"context_line":"                   function\u003d\u0027%(func)s\u0027/\u003e"},{"line_number":1119,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_d769aa26","line":1116,"range":{"start_line":1116,"start_character":36,"end_line":1116,"end_character":44},"updated":"2020-09-17 15:43:14.000000000","message":"This is decimal formatting...","commit_id":"4cf8a9afbb070f3e0d47853ffe0c7c9f45362c62"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7163c39ea74a6d2654615a6d36500f4aa60415e2","unresolved":false,"context_lines":[{"line_number":1115,"context_line":"          \u003csource %(type)s\u003d\u0027%(source)s\u0027/\u003e"},{"line_number":1116,"context_line":"          \u003ctarget dev\u003d\u0027tap274487d1-6%(func)s\u0027/\u003e"},{"line_number":1117,"context_line":"          \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027"},{"line_number":1118,"context_line":"                   function\u003d\u0027%(func)s\u0027/\u003e"},{"line_number":1119,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1120,"context_line":"            elif nic[\u0027type\u0027] in (\u0027ethernet\u0027,):"},{"line_number":1121,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_b764f64e","line":1118,"range":{"start_line":1118,"start_character":29,"end_line":1118,"end_character":38},"updated":"2020-09-17 15:43:14.000000000","message":"...and so is this, but it shouldn\u0027t be, right?","commit_id":"4cf8a9afbb070f3e0d47853ffe0c7c9f45362c62"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7163c39ea74a6d2654615a6d36500f4aa60415e2","unresolved":false,"context_lines":[{"line_number":1134,"context_line":"          \u003csource\u003e"},{"line_number":1135,"context_line":"              \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027"},{"line_number":1136,"context_line":"               bus\u003d\u00270x81\u0027 slot\u003d\u00270x00\u0027"},{"line_number":1137,"context_line":"               function\u003d\u0027%(func)s\u0027/\u003e"},{"line_number":1138,"context_line":"          \u003c/source\u003e"},{"line_number":1139,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1140,"context_line":"            func +\u003d 1"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f560f44_f76e6e2a","line":1137,"range":{"start_line":1137,"start_character":25,"end_line":1137,"end_character":33},"updated":"2020-09-17 15:43:14.000000000","message":"ditto","commit_id":"4cf8a9afbb070f3e0d47853ffe0c7c9f45362c62"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0511f593e2a39304cd9d87a6b41e2154a78313c","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                nic for nic in self._def[\u0027devices\u0027][\u0027nics\u0027] if"},{"line_number":1098,"context_line":"            nic[\u0027mac\u0027] !\u003d nic_info[\u0027mac\u0027]]"},{"line_number":1099,"context_line":"            return True"},{"line_number":1100,"context_line":"        return False"},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    def detachDeviceFlags(self, xml, flags):"},{"line_number":1103,"context_line":"        self.detachDevice(xml)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_5b8ab863","line":1100,"updated":"2020-09-21 14:35:41.000000000","message":"I guess we would need another elif for PF as that is a \u003chostdev","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0dc59a7ffb65602825337d1f3d07be763a5bc0d0","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                nic for nic in self._def[\u0027devices\u0027][\u0027nics\u0027] if"},{"line_number":1098,"context_line":"            nic[\u0027mac\u0027] !\u003d nic_info[\u0027mac\u0027]]"},{"line_number":1099,"context_line":"            return True"},{"line_number":1100,"context_line":"        return False"},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    def detachDeviceFlags(self, xml, flags):"},{"line_number":1103,"context_line":"        self.detachDevice(xml)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_2422f601","line":1100,"in_reply_to":"9f560f44_27236ac0","updated":"2020-10-05 11:47:47.000000000","message":"actully if im reading this correctly we dont currenlty have support form generating xml for PFs currently so ill defer adding that to a different patch which wont be backported.","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4dc3d0e25fd77d8df4397ad234f92789e5113094","unresolved":false,"context_lines":[{"line_number":1097,"context_line":"                nic for nic in self._def[\u0027devices\u0027][\u0027nics\u0027] if"},{"line_number":1098,"context_line":"            nic[\u0027mac\u0027] !\u003d nic_info[\u0027mac\u0027]]"},{"line_number":1099,"context_line":"            return True"},{"line_number":1100,"context_line":"        return False"},{"line_number":1101,"context_line":""},{"line_number":1102,"context_line":"    def detachDeviceFlags(self, xml, flags):"},{"line_number":1103,"context_line":"        self.detachDevice(xml)"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_27236ac0","line":1100,"in_reply_to":"9f560f44_5b8ab863","updated":"2020-09-22 12:23:40.000000000","message":"oh good point that also wont have a mac so ill have to compare on the pci adress but that is fine\nill add that in the next version.","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0dc59a7ffb65602825337d1f3d07be763a5bc0d0","unresolved":false,"context_lines":[{"line_number":1157,"context_line":"            func +\u003d 1"},{"line_number":1158,"context_line":""},{"line_number":1159,"context_line":"        hostdevs \u003d \u0027\u0027"},{"line_number":1160,"context_line":"        for hostdev in self._def[\u0027devices\u0027][\u0027hostdevs\u0027]:"},{"line_number":1161,"context_line":"            hostdevs +\u003d \u0027\u0027\u0027\u003chostdev mode\u003d\u0027subsystem\u0027 type\u003d\u0027%(type)s\u0027 model\u003d\u0027%(model)s\u0027\u003e"},{"line_number":1162,"context_line":"    \u003csource\u003e"},{"line_number":1163,"context_line":"      \u003caddress uuid\u003d\u0027%(address_uuid)s\u0027/\u003e"},{"line_number":1164,"context_line":"    \u003c/source\u003e"},{"line_number":1165,"context_line":"    \u003c/hostdev\u003e"},{"line_number":1166,"context_line":"            \u0027\u0027\u0027 % hostdev  # noqa"},{"line_number":1167,"context_line":""},{"line_number":1168,"context_line":"        vpmems \u003d \u0027\u0027"},{"line_number":1169,"context_line":"        for vpmem in self._def[\u0027devices\u0027][\u0027vpmems\u0027]:"}],"source_content_type":"text/x-python","patch_set":18,"id":"9f560f44_c4785af9","line":1166,"range":{"start_line":1160,"start_character":0,"end_line":1166,"end_character":33},"updated":"2020-10-05 11:47:47.000000000","message":"this looks like its for mdevs maybe. its not for nics of vnic_type\u003ddirect-physical\n\nthey would have a source pci adress not a uuid.\nso this wont work with neutron ports.","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"23bbc6b9437a22b005dea1ee064bb0f94b332e7e","unresolved":false,"context_lines":[{"line_number":1085,"context_line":"        self.attachDevice(xml)"},{"line_number":1086,"context_line":""},{"line_number":1087,"context_line":"    def detachDevice(self, xml):"},{"line_number":1088,"context_line":"        if xml.startswith(\"\u003cdisk\"):"},{"line_number":1089,"context_line":"            disk_info \u003d _parse_disk_info(etree.fromstring(xml))"},{"line_number":1090,"context_line":"            source_attr \u003d \u0027file\u0027"},{"line_number":1091,"context_line":"            if disk_info[\u0027type\u0027] !\u003d \u0027file\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_4d8eb6d0","line":1088,"updated":"2020-10-27 16:07:31.000000000","message":"This whole thing needs context comments IMO","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7b4b60d5a23afdb1c224830ffba13e43ad70677","unresolved":false,"context_lines":[{"line_number":1085,"context_line":"        self.attachDevice(xml)"},{"line_number":1086,"context_line":""},{"line_number":1087,"context_line":"    def detachDevice(self, xml):"},{"line_number":1088,"context_line":"        if xml.startswith(\"\u003cdisk\"):"},{"line_number":1089,"context_line":"            disk_info \u003d _parse_disk_info(etree.fromstring(xml))"},{"line_number":1090,"context_line":"            source_attr \u003d \u0027file\u0027"},{"line_number":1091,"context_line":"            if disk_info[\u0027type\u0027] !\u003d \u0027file\u0027:"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_a82bf8e8","line":1088,"in_reply_to":"3f65232a_4d8eb6d0","updated":"2020-10-27 16:50:23.000000000","message":"basically the fake driver never properly implemented detach so i had to add it because of gibi\u0027s sriov attach detach code.\n\nall detaches were treaded as disks and even then it did not actully detach them properly for the fake objects","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"23bbc6b9437a22b005dea1ee064bb0f94b332e7e","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"        func \u003d 0"},{"line_number":1127,"context_line":"        nics \u003d \u0027\u0027"},{"line_number":1128,"context_line":"        for nic in self._def[\u0027devices\u0027][\u0027nics\u0027]:"},{"line_number":1129,"context_line":"            nic[\u0027func\u0027] \u003d func"},{"line_number":1130,"context_line":"            if \u0027source\u0027 in nic:"},{"line_number":1131,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1132,"context_line":"          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_adbe6a62","line":1129,"updated":"2020-10-27 16:07:31.000000000","message":"Want an assert to make sure func \u003c 10?","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7b4b60d5a23afdb1c224830ffba13e43ad70677","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"        func \u003d 0"},{"line_number":1127,"context_line":"        nics \u003d \u0027\u0027"},{"line_number":1128,"context_line":"        for nic in self._def[\u0027devices\u0027][\u0027nics\u0027]:"},{"line_number":1129,"context_line":"            nic[\u0027func\u0027] \u003d func"},{"line_number":1130,"context_line":"            if \u0027source\u0027 in nic:"},{"line_number":1131,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1132,"context_line":"          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_4844e4b7","line":1129,"in_reply_to":"3f65232a_adbe6a62","updated":"2020-10-27 16:50:23.000000000","message":"ya i can add one i guess. it would be hard to see why it failed. although it should be \u003c8\nthe function is 3 bits so 0-7","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"23bbc6b9437a22b005dea1ee064bb0f94b332e7e","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"          \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027"},{"line_number":1136,"context_line":"                   function\u003d\u00270x%(func)s\u0027/\u003e"},{"line_number":1137,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1138,"context_line":"            elif nic[\u0027type\u0027] in (\u0027ethernet\u0027,):"},{"line_number":1139,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1140,"context_line":"                          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1141,"context_line":"                          \u003csource\u003e"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_ad630a1a","line":1138,"updated":"2020-10-27 16:07:31.000000000","message":"Can you add a context comment for this branch also?","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7b4b60d5a23afdb1c224830ffba13e43ad70677","unresolved":false,"context_lines":[{"line_number":1135,"context_line":"          \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027 bus\u003d\u00270x00\u0027 slot\u003d\u00270x03\u0027"},{"line_number":1136,"context_line":"                   function\u003d\u00270x%(func)s\u0027/\u003e"},{"line_number":1137,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1138,"context_line":"            elif nic[\u0027type\u0027] in (\u0027ethernet\u0027,):"},{"line_number":1139,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1140,"context_line":"                          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1141,"context_line":"                          \u003csource\u003e"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_a87938fd","line":1138,"in_reply_to":"3f65232a_ad630a1a","updated":"2020-10-27 16:50:23.000000000","message":"sure this branch covers ovs ports\n\nthe are now of type ethernet instead of type bridge\nwhich is part of the chagnes in this commit.","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"23bbc6b9437a22b005dea1ee064bb0f94b332e7e","unresolved":false,"context_lines":[{"line_number":1137,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1138,"context_line":"            elif nic[\u0027type\u0027] in (\u0027ethernet\u0027,):"},{"line_number":1139,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1140,"context_line":"                          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1141,"context_line":"                          \u003csource\u003e"},{"line_number":1142,"context_line":"                              \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027"},{"line_number":1143,"context_line":"                               bus\u003d\u00270x81\u0027 slot\u003d\u00270x00\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_2db25a95","line":1140,"range":{"start_line":1140,"start_character":24,"end_line":1140,"end_character":26},"updated":"2020-10-27 16:07:31.000000000","message":"nit: dedent to match above (which isn\u0027t great either, but at least it\u0027s consistent)","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7b4b60d5a23afdb1c224830ffba13e43ad70677","unresolved":false,"context_lines":[{"line_number":1137,"context_line":"        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1138,"context_line":"            elif nic[\u0027type\u0027] in (\u0027ethernet\u0027,):"},{"line_number":1139,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1140,"context_line":"                          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1141,"context_line":"                          \u003csource\u003e"},{"line_number":1142,"context_line":"                              \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027"},{"line_number":1143,"context_line":"                               bus\u003d\u00270x81\u0027 slot\u003d\u00270x00\u0027"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_286d2832","line":1140,"range":{"start_line":1140,"start_character":24,"end_line":1140,"end_character":26},"in_reply_to":"3f65232a_2db25a95","updated":"2020-10-27 16:50:23.000000000","message":"sure i can do that.","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d7b4b60d5a23afdb1c224830ffba13e43ad70677","unresolved":false,"context_lines":[{"line_number":1138,"context_line":"            elif nic[\u0027type\u0027] in (\u0027ethernet\u0027,):"},{"line_number":1139,"context_line":"                nics +\u003d \u0027\u0027\u0027\u003cinterface type\u003d\u0027%(type)s\u0027\u003e"},{"line_number":1140,"context_line":"                          \u003cmac address\u003d\u0027%(mac)s\u0027/\u003e"},{"line_number":1141,"context_line":"                          \u003csource\u003e"},{"line_number":1142,"context_line":"                              \u003caddress type\u003d\u0027pci\u0027 domain\u003d\u00270x0000\u0027"},{"line_number":1143,"context_line":"                               bus\u003d\u00270x81\u0027 slot\u003d\u00270x00\u0027"},{"line_number":1144,"context_line":"                               function\u003d\u00270x%(func)s\u0027/\u003e"},{"line_number":1145,"context_line":"                          \u003c/source\u003e"},{"line_number":1146,"context_line":"                          \u003ctarget dev\u003d\u0027tap274487d1-6%(func)s\u0027/\u003e"},{"line_number":1147,"context_line":"                        \u003c/interface\u003e\u0027\u0027\u0027 % nic"},{"line_number":1148,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":22,"id":"3f65232a_c88634dc","line":1145,"range":{"start_line":1141,"start_character":26,"end_line":1145,"end_character":35},"updated":"2020-10-27 16:50:23.000000000","message":"im not sure this is actully required for this branch","commit_id":"f201a56ae38140a2dac741dd2eebcc2918bd8e6b"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2e99e39c45eb249a070f6a4a6944d6e73763fd28","unresolved":false,"context_lines":[{"line_number":1125,"context_line":"            # or detaching hostdevs but we have test that assume we do so"},{"line_number":1126,"context_line":"            # this is an error not an exception"},{"line_number":1127,"context_line":"            # this affects (pci passthough, vGPUs and PF neutron ports)"},{"line_number":1128,"context_line":"            LOG.error("},{"line_number":1129,"context_line":"                \"Trying to detach an unsupported device type\""},{"line_number":1130,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1131,"context_line":"                \"and should be extended to support %s: %s\" % ("}],"source_content_type":"text/x-python","patch_set":23,"id":"1f621f24_52c45a5f","line":1128,"updated":"2020-11-06 18:19:17.000000000","message":"pep8: H904: String interpolation should be delayed to be handled by the logging code, rather than being done at the point of the logging call. Use \u0027,\u0027 instead of \u0027%\u0027.","commit_id":"10905bcde2ffe51f8d6602999ff09963c8a712ca"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"2e99e39c45eb249a070f6a4a6944d6e73763fd28","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"            # or detaching hostdevs but we have test that assume we do so"},{"line_number":1172,"context_line":"            # this is an error not an exception"},{"line_number":1173,"context_line":"            # this affects (pci passthough, vGPUs and PF neutron ports)"},{"line_number":1174,"context_line":"            LOG.error("},{"line_number":1175,"context_line":"                \"Trying to detach an unsupported device type\""},{"line_number":1176,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1177,"context_line":"                \"and should be extended to support %s: %s\" % ("}],"source_content_type":"text/x-python","patch_set":23,"id":"1f621f24_b2a20ead","line":1174,"updated":"2020-11-06 18:19:17.000000000","message":"pep8: H904: String interpolation should be delayed to be handled by the logging code, rather than being done at the point of the logging call. Use \u0027,\u0027 instead of \u0027%\u0027.","commit_id":"10905bcde2ffe51f8d6602999ff09963c8a712ca"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":1122,"context_line":"            result \u003d True"},{"line_number":1123,"context_line":"        else:"},{"line_number":1124,"context_line":"            # FIXME(sean-k-mooney): we don\u0027t currently handle attaching"},{"line_number":1125,"context_line":"            # or detaching hostdevs but we have test that assume we do so"},{"line_number":1126,"context_line":"            # this is an error not an exception"},{"line_number":1127,"context_line":"            # this affects (pci passthough, vGPUs and PF neutron ports)"},{"line_number":1128,"context_line":"            LOG.error("}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_3e37a04f","line":1125,"range":{"start_line":1125,"start_character":48,"end_line":1125,"end_character":52},"updated":"2020-11-13 02:51:42.000000000","message":"tests?","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":1126,"context_line":"            # this is an error not an exception"},{"line_number":1127,"context_line":"            # this affects (pci passthough, vGPUs and PF neutron ports)"},{"line_number":1128,"context_line":"            LOG.error("},{"line_number":1129,"context_line":"                \"Trying to detach an unsupported device type\""},{"line_number":1130,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1131,"context_line":"                \"and should be extended to support %s: %s\","},{"line_number":1132,"context_line":"                xml, self._def[\u0027devices\u0027])"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_9e2a34d8","line":1129,"range":{"start_line":1129,"start_character":56,"end_line":1129,"end_character":61},"updated":"2020-11-13 02:51:42.000000000","message":"type. \"","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":1151,"context_line":"            if disk_info[\u0027type\u0027] !\u003d \u0027file\u0027:"},{"line_number":1152,"context_line":"                source_attr \u003d \u0027dev\u0027"},{"line_number":1153,"context_line":"            # detaching the disk means finding the element matching"},{"line_number":1154,"context_line":"            # the disk and removing it for the list of disks"},{"line_number":1155,"context_line":"            # we do this in a list comprehension to make it safe to iterate"},{"line_number":1156,"context_line":"            # over the collection we are modifying."},{"line_number":1157,"context_line":"            self._def[\u0027devices\u0027][\u0027disks\u0027] \u003d ["}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_fe7ec8e1","line":1154,"range":{"start_line":1154,"start_character":39,"end_line":1154,"end_character":42},"updated":"2020-11-13 02:51:42.000000000","message":"from?","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"            nic_info \u003d _parse_nic_info(etree.fromstring(xml))"},{"line_number":1164,"context_line":"            self._def[\u0027devices\u0027][\u0027nics\u0027] \u003d ["},{"line_number":1165,"context_line":"                nic for nic in self._def[\u0027devices\u0027][\u0027nics\u0027] if"},{"line_number":1166,"context_line":"            nic[\u0027mac\u0027] !\u003d nic_info[\u0027mac\u0027]]"},{"line_number":1167,"context_line":"            return True"},{"line_number":1168,"context_line":"        else:"},{"line_number":1169,"context_line":"            # FIXME(sean-k-mooney): we don\u0027t currently handle attaching"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_9ed35404","line":1166,"updated":"2020-11-13 02:51:42.000000000","message":"indent needed","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46c002b81fe1ea45e022ab4fcb171c9935f5fbc1","unresolved":false,"context_lines":[{"line_number":1163,"context_line":"            nic_info \u003d _parse_nic_info(etree.fromstring(xml))"},{"line_number":1164,"context_line":"            self._def[\u0027devices\u0027][\u0027nics\u0027] \u003d ["},{"line_number":1165,"context_line":"                nic for nic in self._def[\u0027devices\u0027][\u0027nics\u0027] if"},{"line_number":1166,"context_line":"            nic[\u0027mac\u0027] !\u003d nic_info[\u0027mac\u0027]]"},{"line_number":1167,"context_line":"            return True"},{"line_number":1168,"context_line":"        else:"},{"line_number":1169,"context_line":"            # FIXME(sean-k-mooney): we don\u0027t currently handle attaching"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_dcaf5c29","line":1166,"in_reply_to":"1f621f24_9ed35404","updated":"2020-11-18 12:01:01.000000000","message":"aparently its not a pep8 issue but ya ill fix this\n\nyou other comments on this file are also valid","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"            # this is an error not an exception"},{"line_number":1172,"context_line":"            # this affects (pci passthough, vGPUs and PF neutron ports)"},{"line_number":1173,"context_line":"            LOG.error("},{"line_number":1174,"context_line":"                \"Trying to detach an unsupported device type\""},{"line_number":1175,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1176,"context_line":"                \"and should be extended to support %s: %s\","},{"line_number":1177,"context_line":"                xml, self._def[\u0027devices\u0027])"}],"source_content_type":"text/x-python","patch_set":25,"id":"1f621f24_5e825cc9","line":1174,"range":{"start_line":1174,"start_character":56,"end_line":1174,"end_character":61},"updated":"2020-11-13 02:51:42.000000000","message":"type. \"","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"c8c7607e83f67942466ff36ed9f6ad90c614daf2","unresolved":true,"context_lines":[{"line_number":1270,"context_line":"            # this is an error not an exception. This affects PCI passthough,"},{"line_number":1271,"context_line":"            # vGPUs and PF neutron ports."},{"line_number":1272,"context_line":"            LOG.error("},{"line_number":1273,"context_line":"                \"Trying to detach an unsupported device type.\""},{"line_number":1274,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1275,"context_line":"                \"and should be extended to support %s: %s\","},{"line_number":1276,"context_line":"                xml, self._def[\u0027devices\u0027])"}],"source_content_type":"text/x-python","patch_set":32,"id":"92e21b52_0dce5fa7","line":1273,"range":{"start_line":1273,"start_character":27,"end_line":1273,"end_character":33},"updated":"2021-03-26 06:21:56.000000000","message":"IMO you meant attach here, as it is in attachDevice function ?","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"88b8c67526c436639cb73b64c020f891bbc241ff","unresolved":false,"context_lines":[{"line_number":1270,"context_line":"            # this is an error not an exception. This affects PCI passthough,"},{"line_number":1271,"context_line":"            # vGPUs and PF neutron ports."},{"line_number":1272,"context_line":"            LOG.error("},{"line_number":1273,"context_line":"                \"Trying to detach an unsupported device type.\""},{"line_number":1274,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1275,"context_line":"                \"and should be extended to support %s: %s\","},{"line_number":1276,"context_line":"                xml, self._def[\u0027devices\u0027])"}],"source_content_type":"text/x-python","patch_set":32,"id":"0902427a_2525b24b","line":1273,"range":{"start_line":1273,"start_character":27,"end_line":1273,"end_character":33},"in_reply_to":"8116de28_328015c1","updated":"2021-04-30 11:46:58.000000000","message":"Done","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4824d84ac97e06856b1ac76739611901dd56038b","unresolved":true,"context_lines":[{"line_number":1270,"context_line":"            # this is an error not an exception. This affects PCI passthough,"},{"line_number":1271,"context_line":"            # vGPUs and PF neutron ports."},{"line_number":1272,"context_line":"            LOG.error("},{"line_number":1273,"context_line":"                \"Trying to detach an unsupported device type.\""},{"line_number":1274,"context_line":"                \"The fakelibvirt implementation is incomplete \""},{"line_number":1275,"context_line":"                \"and should be extended to support %s: %s\","},{"line_number":1276,"context_line":"                xml, self._def[\u0027devices\u0027])"}],"source_content_type":"text/x-python","patch_set":32,"id":"8116de28_328015c1","line":1273,"range":{"start_line":1273,"start_character":27,"end_line":1273,"end_character":33},"in_reply_to":"92e21b52_0dce5fa7","updated":"2021-03-29 12:13:07.000000000","message":"i can updat hits but i dont intend to respin this unless i have too for a merge conflcit.","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"afbde88df96fa823250875c776ec5c32154d6c67","unresolved":true,"context_lines":[{"line_number":1345,"context_line":"    \u003c/disk\u003e\u0027\u0027\u0027 % dict(source_attr\u003dsource_attr, **disk)"},{"line_number":1346,"context_line":"        func \u003d 0"},{"line_number":1347,"context_line":"        nics \u003d \u0027\u0027"},{"line_number":1348,"context_line":"        for nic in self._def[\u0027devices\u0027][\u0027nics\u0027]:"},{"line_number":1349,"context_line":"            if func \u003e 7:"},{"line_number":1350,"context_line":"                # this should never be raised but is just present to highlight"},{"line_number":1351,"context_line":"                # the limitations of the current fake when writing new tests."}],"source_content_type":"text/x-python","patch_set":32,"id":"e5dc9d99_c7c93cab","line":1348,"updated":"2021-03-30 15:09:17.000000000","message":"nit that you hopefully won\u0027t get to because this will just get merged:\n\nThis could just be:\n\n  for func, nic in enumerate(self._def[\u0027devices\u0027][\u0027nics\u0027]:\n    ...","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"88b8c67526c436639cb73b64c020f891bbc241ff","unresolved":false,"context_lines":[{"line_number":1345,"context_line":"    \u003c/disk\u003e\u0027\u0027\u0027 % dict(source_attr\u003dsource_attr, **disk)"},{"line_number":1346,"context_line":"        func \u003d 0"},{"line_number":1347,"context_line":"        nics \u003d \u0027\u0027"},{"line_number":1348,"context_line":"        for nic in self._def[\u0027devices\u0027][\u0027nics\u0027]:"},{"line_number":1349,"context_line":"            if func \u003e 7:"},{"line_number":1350,"context_line":"                # this should never be raised but is just present to highlight"},{"line_number":1351,"context_line":"                # the limitations of the current fake when writing new tests."}],"source_content_type":"text/x-python","patch_set":32,"id":"a3e1da3d_4e80d40a","line":1348,"in_reply_to":"715f06d8_01553ab3","updated":"2021-04-30 11:46:58.000000000","message":"Done","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65c1c83f3e901b3102676e5a1ac47368462ccd58","unresolved":true,"context_lines":[{"line_number":1345,"context_line":"    \u003c/disk\u003e\u0027\u0027\u0027 % dict(source_attr\u003dsource_attr, **disk)"},{"line_number":1346,"context_line":"        func \u003d 0"},{"line_number":1347,"context_line":"        nics \u003d \u0027\u0027"},{"line_number":1348,"context_line":"        for nic in self._def[\u0027devices\u0027][\u0027nics\u0027]:"},{"line_number":1349,"context_line":"            if func \u003e 7:"},{"line_number":1350,"context_line":"                # this should never be raised but is just present to highlight"},{"line_number":1351,"context_line":"                # the limitations of the current fake when writing new tests."}],"source_content_type":"text/x-python","patch_set":32,"id":"715f06d8_01553ab3","line":1348,"in_reply_to":"e5dc9d99_c7c93cab","updated":"2021-03-30 16:46:28.000000000","message":"yep i coudl use enumerate here","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"afbde88df96fa823250875c776ec5c32154d6c67","unresolved":true,"context_lines":[{"line_number":10467,"context_line":"        \u0027_create_shared_storage_test_file\u0027)"},{"line_number":10468,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027compareCPU\u0027)"},{"line_number":10469,"context_line":"    def test_check_can_live_migrate_dest_all_pass_with_block_migration("},{"line_number":10470,"context_line":"        self, mock_cpu, mock_test_file,"},{"line_number":10471,"context_line":"    ):"},{"line_number":10472,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":10473,"context_line":"        instance_ref.vcpu_model \u003d test_vcpu_model.fake_vcpumodel"},{"line_number":10474,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":32,"id":"a97e5bb6_cdd47547","line":10471,"range":{"start_line":10470,"start_character":0,"end_line":10471,"end_character":6},"updated":"2021-03-30 15:09:17.000000000","message":"nit: this and following unnecessary whitespace-only changes seem like they just increase the chance of merge failures without a lot of benefit.","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65c1c83f3e901b3102676e5a1ac47368462ccd58","unresolved":true,"context_lines":[{"line_number":10467,"context_line":"        \u0027_create_shared_storage_test_file\u0027)"},{"line_number":10468,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027compareCPU\u0027)"},{"line_number":10469,"context_line":"    def test_check_can_live_migrate_dest_all_pass_with_block_migration("},{"line_number":10470,"context_line":"        self, mock_cpu, mock_test_file,"},{"line_number":10471,"context_line":"    ):"},{"line_number":10472,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":10473,"context_line":"        instance_ref.vcpu_model \u003d test_vcpu_model.fake_vcpumodel"},{"line_number":10474,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":32,"id":"e5a86f13_827635e7","line":10471,"range":{"start_line":10470,"start_character":0,"end_line":10471,"end_character":6},"in_reply_to":"a97e5bb6_cdd47547","updated":"2021-03-30 16:46:28.000000000","message":"it is but i was asked to do it while i was adding the decorator.\n\nwe have been slowly chaning our indentiation style on master and this is becoming the preferred style.","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"88b8c67526c436639cb73b64c020f891bbc241ff","unresolved":false,"context_lines":[{"line_number":10467,"context_line":"        \u0027_create_shared_storage_test_file\u0027)"},{"line_number":10468,"context_line":"    @mock.patch.object(fakelibvirt.Connection, \u0027compareCPU\u0027)"},{"line_number":10469,"context_line":"    def test_check_can_live_migrate_dest_all_pass_with_block_migration("},{"line_number":10470,"context_line":"        self, mock_cpu, mock_test_file,"},{"line_number":10471,"context_line":"    ):"},{"line_number":10472,"context_line":"        instance_ref \u003d objects.Instance(**self.test_instance)"},{"line_number":10473,"context_line":"        instance_ref.vcpu_model \u003d test_vcpu_model.fake_vcpumodel"},{"line_number":10474,"context_line":"        drvr \u003d libvirt_driver.LibvirtDriver(fake.FakeVirtAPI(), False)"}],"source_content_type":"text/x-python","patch_set":32,"id":"dfab4965_558472fc","line":10471,"range":{"start_line":10470,"start_character":0,"end_line":10471,"end_character":6},"in_reply_to":"e5a86f13_827635e7","updated":"2021-04-30 11:46:58.000000000","message":"Ack","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"}],"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":"b9fdf5aa0c6dce4e0b067143d3dc0c7497f39956","unresolved":true,"context_lines":[{"line_number":1574,"context_line":""},{"line_number":1575,"context_line":"        self._test_config_os_vif(os_vif_type, vif_type, expected_xml)"},{"line_number":1576,"context_line":""},{"line_number":1577,"context_line":"    def test_config_os_vif_ovs(self):"},{"line_number":1578,"context_line":"        os_vif_type \u003d self.os_vif_ovs"},{"line_number":1579,"context_line":"        vif_type \u003d self.vif_ovs"},{"line_number":1580,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"b1bfd6e8_a072fa89","line":1577,"range":{"start_line":1577,"start_character":8,"end_line":1577,"end_character":30},"updated":"2020-12-14 21:33:51.000000000","message":"i should proably add a new unit test there to test teh fallback.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c8def70a704ac4240c1cf003745adeb0648d1fc","unresolved":true,"context_lines":[{"line_number":1574,"context_line":""},{"line_number":1575,"context_line":"        self._test_config_os_vif(os_vif_type, vif_type, expected_xml)"},{"line_number":1576,"context_line":""},{"line_number":1577,"context_line":"    def test_config_os_vif_ovs(self):"},{"line_number":1578,"context_line":"        os_vif_type \u003d self.os_vif_ovs"},{"line_number":1579,"context_line":"        vif_type \u003d self.vif_ovs"},{"line_number":1580,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"a1cf4cfb_42501dca","line":1577,"range":{"start_line":1577,"start_character":8,"end_line":1577,"end_character":30},"in_reply_to":"b1bfd6e8_a072fa89","updated":"2020-12-15 03:29:25.000000000","message":"++","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b572074aaba577b85b4b5abe54a6d07292f93b33","unresolved":true,"context_lines":[{"line_number":8522,"context_line":"        # then."},{"line_number":8523,"context_line":"        if instance.numa_topology:"},{"line_number":8524,"context_line":"            data.dst_supports_numa_live_migration \u003d True"},{"line_number":8525,"context_line":"        data.vifs \u003d ("},{"line_number":8526,"context_line":"            migrate_data_obj.VIFMigrateData.create_skeleton_migrate_vifs("},{"line_number":8527,"context_line":"                instance.get_network_info()))"},{"line_number":8528,"context_line":"        for vif in data.vifs:"},{"line_number":8529,"context_line":"            vif.supports_os_vif_delegation \u003d True"},{"line_number":8530,"context_line":""},{"line_number":8531,"context_line":"        return data"},{"line_number":8532,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"efbb2adc_852ce180","line":8529,"range":{"start_line":8525,"start_character":8,"end_line":8529,"end_character":49},"updated":"2020-12-14 21:31:47.000000000","message":"this is where we stash the flag to encode that the dest node supports delegating port pluging to os-vif.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90a898895c9ff6734895987974926c36b6e84ea3","unresolved":true,"context_lines":[{"line_number":9028,"context_line":"                # If the migrate_data has port binding information for the"},{"line_number":9029,"context_line":"                # destination host, we need to prepare the guest vif config"},{"line_number":9030,"context_line":"                # for the destination before we start migrating the guest."},{"line_number":9031,"context_line":"                get_vif_config \u003d None"},{"line_number":9032,"context_line":"                if \u0027vifs\u0027 in migrate_data and migrate_data.vifs:"},{"line_number":9033,"context_line":"                    # NOTE(mriedem): The vif kwarg must be built on the fly"},{"line_number":9034,"context_line":"                    # within get_updated_guest_xml based on migrate_data.vifs."},{"line_number":9035,"context_line":"                    # We could stash the virt_type from the destination host"},{"line_number":9036,"context_line":"                    # into LibvirtLiveMigrateData but the host kwarg is a"},{"line_number":9037,"context_line":"                    # nova.virt.libvirt.host.Host object and is used to check"},{"line_number":9038,"context_line":"                    # information like libvirt version on the destination."},{"line_number":9039,"context_line":"                    # If this becomes a problem, what we could do is get the"},{"line_number":9040,"context_line":"                    # VIF configs while on the destination host during"},{"line_number":9041,"context_line":"                    # pre_live_migration() and store those in the"},{"line_number":9042,"context_line":"                    # LibvirtLiveMigrateData object. For now we just use the"},{"line_number":9043,"context_line":"                    # source host information for virt_type and"},{"line_number":9044,"context_line":"                    # host (version) since the conductor live_migrate method"},{"line_number":9045,"context_line":"                    # _check_compatible_with_source_hypervisor() ensures that"},{"line_number":9046,"context_line":"                    # the hypervisor types and versions are compatible."},{"line_number":9047,"context_line":"                    get_vif_config \u003d functools.partial("},{"line_number":9048,"context_line":"                        self.vif_driver.get_config,"},{"line_number":9049,"context_line":"                        instance\u003dinstance,"},{"line_number":9050,"context_line":"                        image_meta\u003dinstance.image_meta,"},{"line_number":9051,"context_line":"                        inst_type\u003dinstance.flavor,"},{"line_number":9052,"context_line":"                        virt_type\u003dCONF.libvirt.virt_type,"},{"line_number":9053,"context_line":"                    )"},{"line_number":9054,"context_line":"                    self._detach_direct_passthrough_vifs(context,"},{"line_number":9055,"context_line":"                        migrate_data, instance)"},{"line_number":9056,"context_line":"                new_resources \u003d None"},{"line_number":9057,"context_line":"                if isinstance(instance, objects.Instance):"},{"line_number":9058,"context_line":"                    new_resources \u003d self._sorted_migrating_resources("},{"line_number":9059,"context_line":"                        instance, instance.flavor)"},{"line_number":9060,"context_line":"                new_xml_str \u003d libvirt_migrate.get_updated_guest_xml("},{"line_number":9061,"context_line":"                    # TODO(sahid): It\u0027s not a really good idea to pass"},{"line_number":9062,"context_line":"                    # the method _get_volume_config and we should to find"},{"line_number":9063,"context_line":"                    # a way to avoid this in future."},{"line_number":9064,"context_line":"                    guest, migrate_data, self._get_volume_config,"},{"line_number":9065,"context_line":"                    get_vif_config\u003dget_vif_config, new_resources\u003dnew_resources)"},{"line_number":9066,"context_line":""},{"line_number":9067,"context_line":"            # NOTE(pkoniszewski): Because of precheck which blocks"},{"line_number":9068,"context_line":"            # tunnelled block live migration with mapped volumes we"}],"source_content_type":"text/x-python","patch_set":27,"id":"3e5149d5_78563523","line":9065,"range":{"start_line":9031,"start_character":16,"end_line":9065,"end_character":79},"updated":"2020-12-15 13:41:45.000000000","message":"see this is where its used.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"}],"nova/virt/libvirt/migration.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c8def70a704ac4240c1cf003745adeb0648d1fc","unresolved":true,"context_lines":[{"line_number":352,"context_line":"            # nova.virt.libvirt.vif.LibvirtGenericVIFDriver.get_config"},{"line_number":353,"context_line":"            # with all but the \u0027vif\u0027 kwarg set already and returns a"},{"line_number":354,"context_line":"            # LibvirtConfigGuestInterface object."},{"line_number":355,"context_line":"            vif_config \u003d get_vif_config(vif\u003dvif, delegate\u003ddelegate)"},{"line_number":356,"context_line":"        else:"},{"line_number":357,"context_line":"            # This shouldn\u0027t happen but if it does, we need to abort the"},{"line_number":358,"context_line":"            # migration."}],"source_content_type":"text/x-python","patch_set":27,"id":"0b3f707a_4e1914d5","line":355,"updated":"2020-12-15 03:29:25.000000000","message":"Hm, looking in the next file vif.py I wonder if it might be cleaner to do the conditional in this file and then have a get_vif_config_legacy() in vif.py where the old way goes, instead of passing a \u0027delegate\u0027 kwarg all around. That way you can put a TODO over it to remove it in X and have it be compartmentalized. But perhaps I am missing something.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b572074aaba577b85b4b5abe54a6d07292f93b33","unresolved":true,"context_lines":[{"line_number":353,"context_line":"            # with all but the \u0027vif\u0027 kwarg set already and returns a"},{"line_number":354,"context_line":"            # LibvirtConfigGuestInterface object."},{"line_number":355,"context_line":"            vif_config \u003d get_vif_config(vif\u003dvif, delegate\u003ddelegate)"},{"line_number":356,"context_line":"        else:"},{"line_number":357,"context_line":"            # This shouldn\u0027t happen but if it does, we need to abort the"},{"line_number":358,"context_line":"            # migration."},{"line_number":359,"context_line":"            raise exception.NovaException("}],"source_content_type":"text/x-python","patch_set":27,"id":"f608c7fc_866f27c2","line":356,"updated":"2020-12-14 21:31:47.000000000","message":"so when we are generating the config later we have an os-vif vif object not the migration vif so we need to stash the value in the partial function as we do with the vif itself above.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"}],"nova/virt/libvirt/vif.py":[{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"a70dbc22035a11828a6b84abd971bea9a54a30be","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                conf, mac, model, driver, vhost_queues, rx_queue_size)"},{"line_number":196,"context_line":"            return conf"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        rx_queue_size \u003d CONF.libvirt.rx_queue_size"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"        # if model has already been defined,"},{"line_number":201,"context_line":"        # image_meta contents will override it"}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_5f27641f","line":198,"range":{"start_line":198,"start_character":8,"end_line":198,"end_character":50},"updated":"2020-10-05 12:03:24.000000000","message":"Note to self: that\u0027s why L232 makes sense","commit_id":"995013860b32c672f6861638b26021adb614978e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b572074aaba577b85b4b5abe54a6d07292f93b33","unresolved":true,"context_lines":[{"line_number":448,"context_line":"        conf.target_dev \u003d vif.vif_name"},{"line_number":449,"context_line":""},{"line_number":450,"context_line":"    def _set_config_VIFOpenVSwitch(self, instance, vif, conf, delegate\u003dTrue):"},{"line_number":451,"context_line":"        if delegate:"},{"line_number":452,"context_line":"            self._set_config_VIFGeneric(instance, vif, conf)"},{"line_number":453,"context_line":"        else:"},{"line_number":454,"context_line":"            conf.net_type \u003d \"bridge\""}],"source_content_type":"text/x-python","patch_set":27,"id":"16300d9c_0cd2144e","line":451,"range":{"start_line":451,"start_character":8,"end_line":451,"end_character":20},"updated":"2020-12-14 21:31:47.000000000","message":"this is the new default path.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"b572074aaba577b85b4b5abe54a6d07292f93b33","unresolved":true,"context_lines":[{"line_number":450,"context_line":"    def _set_config_VIFOpenVSwitch(self, instance, vif, conf, delegate\u003dTrue):"},{"line_number":451,"context_line":"        if delegate:"},{"line_number":452,"context_line":"            self._set_config_VIFGeneric(instance, vif, conf)"},{"line_number":453,"context_line":"        else:"},{"line_number":454,"context_line":"            conf.net_type \u003d \"bridge\""},{"line_number":455,"context_line":"            conf.source_dev \u003d vif.bridge_name"},{"line_number":456,"context_line":"            conf.target_dev \u003d vif.vif_name"}],"source_content_type":"text/x-python","patch_set":27,"id":"51bff816_5c14e411","line":453,"range":{"start_line":453,"start_character":7,"end_line":453,"end_character":13},"updated":"2020-12-14 21:31:47.000000000","message":"this is the old behvior which we will fall back too when migrating form patched host to un patched.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2c8def70a704ac4240c1cf003745adeb0648d1fc","unresolved":true,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def get_config("},{"line_number":545,"context_line":"            self, instance, vif, image_meta, inst_type, virt_type,"},{"line_number":546,"context_line":"            delegate\u003dTrue):"},{"line_number":547,"context_line":"        vif_type \u003d vif[\u0027type\u0027]"},{"line_number":548,"context_line":"        vnic_type \u003d vif[\u0027vnic_type\u0027]"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"afb73c2c_f38682f3","line":546,"updated":"2020-12-15 03:29:25.000000000","message":"This doesn\u0027t seem used anywhere?","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"90a898895c9ff6734895987974926c36b6e84ea3","unresolved":true,"context_lines":[{"line_number":543,"context_line":""},{"line_number":544,"context_line":"    def get_config("},{"line_number":545,"context_line":"            self, instance, vif, image_meta, inst_type, virt_type,"},{"line_number":546,"context_line":"            delegate\u003dTrue):"},{"line_number":547,"context_line":"        vif_type \u003d vif[\u0027type\u0027]"},{"line_number":548,"context_line":"        vnic_type \u003d vif[\u0027vnic_type\u0027]"},{"line_number":549,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"8e6273db_111193ca","line":546,"in_reply_to":"afb73c2c_f38682f3","updated":"2020-12-15 13:41:45.000000000","message":"its called indirectly \n\nhttps://github.com/openstack/nova/blob/9edf181d4cb19b548d2882c448f5c029cf7f6616/nova/virt/libvirt/driver.py#L9042\n\nwe use functools.partial to wrap it\n\n\n       get_vif_config \u003d functools.partial(\n                        self.vif_driver.get_config,\n                        instance\u003dinstance,\n                        image_meta\u003dinstance.image_meta,\n                        inst_type\u003dinstance.flavor,\n                        virt_type\u003dCONF.libvirt.virt_type,\n                    )\n\nso when you see get_vif_config in the previous files it  the wrapped version of this.","commit_id":"eecc7429fc96128ed1a46415e6bd53687595e1bd"}],"releasenotes/notes/libvirt-delegate-ovs-pluggin-to-os-vif-6adc0398a0e0df58.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_3aecb9b9","line":4,"range":{"start_line":4,"start_character":20,"end_line":4,"end_character":23},"updated":"2020-08-26 15:33:43.000000000","message":"OVS","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc1b70991fbd5fc540ff813f9eaddf32b7bf8f2d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_eab26e93","line":4,"range":{"start_line":4,"start_character":20,"end_line":4,"end_character":23},"in_reply_to":"9f560f44_3aecb9b9","updated":"2020-08-26 19:48:23.000000000","message":"Done","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_7a2f51f5","line":5,"range":{"start_line":5,"start_character":28,"end_line":5,"end_character":37},"updated":"2020-08-26 15:33:43.000000000","message":"mechanism","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc1b70991fbd5fc540ff813f9eaddf32b7bf8f2d","unresolved":false,"context_lines":[{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_caadea31","line":5,"range":{"start_line":5,"start_character":28,"end_line":5,"end_character":37},"in_reply_to":"9f560f44_7a2f51f5","updated":"2020-08-26 19:48:23.000000000","message":"Done","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_fa3a4131","line":6,"range":{"start_line":6,"start_character":13,"end_line":6,"end_character":17},"updated":"2020-08-26 15:33:43.000000000","message":"``noop``? (It\u0027s the actual name of the driver, right?)","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_ba356947","line":6,"range":{"start_line":6,"start_character":21,"end_line":6,"end_character":33},"updated":"2020-08-26 15:33:43.000000000","message":"what\u0027s the codename for this in neutron? Can you use it? Also, conntrack?","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"cc1b70991fbd5fc540ff813f9eaddf32b7bf8f2d","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_4a671a26","line":6,"range":{"start_line":6,"start_character":21,"end_line":6,"end_character":33},"in_reply_to":"9f560f44_ba356947","updated":"2020-08-26 19:48:23.000000000","message":"its just called openvswtich or OVSFirewallDriver\n\nhttps://github.com/openstack/neutron/blob/master/setup.cfg#L181","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"034bc37eed49561fd8e80f08bc56b382b3104e61","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_f72537c3","line":6,"range":{"start_line":6,"start_character":13,"end_line":6,"end_character":17},"in_reply_to":"9f560f44_fa3a4131","updated":"2020-08-26 18:44:08.000000000","message":"yes its the name of the stevador entry point for the dirver.\nhttps://github.com/openstack/neutron/blob/master/setup.cfg#L178\n\nfullname is NoopFirewallDriver","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    In this release ovs port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."},{"line_number":10,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_3a4159a7","line":7,"range":{"start_line":7,"start_character":23,"end_line":7,"end_character":30},"updated":"2020-08-26 15:33:43.000000000","message":"plugging","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_9a15059f","line":8,"range":{"start_line":8,"start_character":21,"end_line":8,"end_character":24},"updated":"2020-08-26 15:33:43.000000000","message":"VIFs","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_ba0e0989","line":8,"range":{"start_line":8,"start_character":68,"end_line":8,"end_character":76},"updated":"2020-08-26 15:33:43.000000000","message":"accessing","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechisium is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_7a18f1d1","line":8,"range":{"start_line":8,"start_character":37,"end_line":8,"end_character":44},"updated":"2020-08-26 15:33:43.000000000","message":"securely","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    when the noop or ovs contrack security group drivers are enabled."},{"line_number":7,"context_line":"    By delegating port pluggin to os-vif we can use the ``isolate_vif`` config"},{"line_number":8,"context_line":"    option to ensure vif are plugged securly preventing guests from acessing"},{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    In this release we delegate port pluggin to os-vif for all ovs interface"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_1a29f5e4","line":9,"range":{"start_line":9,"start_character":10,"end_line":9,"end_character":16},"updated":"2020-08-26 15:33:43.000000000","message":"tenants\u0027","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    other teants networks in before the neutron ovs agent can wire up the port."},{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    In this release we delegate port pluggin to os-vif for all ovs interface"},{"line_number":13,"context_line":"    types. This allows os-vif to create the ovs port before libvirt creates"},{"line_number":14,"context_line":"    a tap device during a live migration therefor preventing the loss of"},{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_5a1fedb5","line":12,"range":{"start_line":12,"start_character":37,"end_line":12,"end_character":44},"updated":"2020-08-26 15:33:43.000000000","message":"plugging","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":10,"context_line":"fixes:"},{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    In this release we delegate port pluggin to os-vif for all ovs interface"},{"line_number":13,"context_line":"    types. This allows os-vif to create the ovs port before libvirt creates"},{"line_number":14,"context_line":"    a tap device during a live migration therefor preventing the loss of"},{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"},{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_ba83a9ca","line":13,"range":{"start_line":13,"start_character":44,"end_line":13,"end_character":47},"updated":"2020-08-26 15:33:43.000000000","message":"OVS\n\n(and below)","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  - |"},{"line_number":12,"context_line":"    In this release we delegate port pluggin to os-vif for all ovs interface"},{"line_number":13,"context_line":"    types. This allows os-vif to create the ovs port before libvirt creates"},{"line_number":14,"context_line":"    a tap device during a live migration therefor preventing the loss of"},{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"},{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"},{"line_number":17,"context_line":"    the ovs port and qemu generating RARP packets to populate the vswitch"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_da801dc2","line":14,"range":{"start_line":14,"start_character":41,"end_line":14,"end_character":49},"updated":"2020-08-26 15:33:43.000000000","message":"therefore","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    In this release we delegate port pluggin to os-vif for all ovs interface"},{"line_number":13,"context_line":"    types. This allows os-vif to create the ovs port before libvirt creates"},{"line_number":14,"context_line":"    a tap device during a live migration therefor preventing the loss of"},{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"},{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"},{"line_number":17,"context_line":"    the ovs port and qemu generating RARP packets to populate the vswitch"},{"line_number":18,"context_line":"    maclearning table. As a result this reduces the interval during a live"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_3a6f9928","line":15,"range":{"start_line":15,"start_character":8,"end_line":15,"end_character":35},"updated":"2020-08-26 15:33:43.000000000","message":"MAC learning frames generated","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    In this release we delegate port pluggin to os-vif for all ovs interface"},{"line_number":13,"context_line":"    types. This allows os-vif to create the ovs port before libvirt creates"},{"line_number":14,"context_line":"    a tap device during a live migration therefor preventing the loss of"},{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"},{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"},{"line_number":17,"context_line":"    the ovs port and qemu generating RARP packets to populate the vswitch"},{"line_number":18,"context_line":"    maclearning table. As a result this reduces the interval during a live"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_1a6e152e","line":15,"range":{"start_line":15,"start_character":61,"end_line":15,"end_character":74},"updated":"2020-08-26 15:33:43.000000000","message":"long-standing","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":14,"context_line":"    a tap device during a live migration therefor preventing the loss of"},{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"},{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"},{"line_number":17,"context_line":"    the ovs port and qemu generating RARP packets to populate the vswitch"},{"line_number":18,"context_line":"    maclearning table. As a result this reduces the interval during a live"},{"line_number":19,"context_line":"    migration where packs can be lost."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_ba5c497d","line":17,"range":{"start_line":17,"start_character":21,"end_line":17,"end_character":25},"updated":"2020-08-26 15:33:43.000000000","message":"QEMU","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    the mac leaning frames generted by QEMU. This resolved a long standing"},{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"},{"line_number":17,"context_line":"    the ovs port and qemu generating RARP packets to populate the vswitch"},{"line_number":18,"context_line":"    maclearning table. As a result this reduces the interval during a live"},{"line_number":19,"context_line":"    migration where packs can be lost."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_1a57355a","line":18,"range":{"start_line":18,"start_character":4,"end_line":18,"end_character":15},"updated":"2020-08-26 15:33:43.000000000","message":"MAC learning","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8031488755cbfc567c847e6bada6e429cc82ae01","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    race condition between libvirt creating the ovs port, neutron wiring up"},{"line_number":17,"context_line":"    the ovs port and qemu generating RARP packets to populate the vswitch"},{"line_number":18,"context_line":"    maclearning table. As a result this reduces the interval during a live"},{"line_number":19,"context_line":"    migration where packs can be lost."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9f560f44_9ac86522","line":19,"range":{"start_line":19,"start_character":20,"end_line":19,"end_character":25},"updated":"2020-08-26 15:33:43.000000000","message":"packets","commit_id":"a4897f3df34c37daf3029f6946094370e165ca03"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c0511f593e2a39304cd9d87a6b41e2154a78313c","unresolved":false,"context_lines":[{"line_number":16,"context_line":"    In this release we delegate port plugging to os-vif for all OVS interface"},{"line_number":17,"context_line":"    types. This allows os-vif to create the OVS port before libvirt creates"},{"line_number":18,"context_line":"    a tap device during a live migration therefore preventing the loss of"},{"line_number":19,"context_line":"    the MAC learning frames generated by QEMU. This resolved a long-standing"},{"line_number":20,"context_line":"    race condition between libvirt creating the OVS port, neutron wiring up"},{"line_number":21,"context_line":"    the OVS port and QEMU generating RARP packets to populate the vswitch"},{"line_number":22,"context_line":"    MAC learning table. As a result this reduces the interval during a live"},{"line_number":23,"context_line":"    migration where packets can be lost."}],"source_content_type":"text/x-yaml","patch_set":18,"id":"9f560f44_bbc4b40f","line":20,"range":{"start_line":19,"start_character":48,"end_line":20,"end_character":57},"updated":"2020-09-21 14:35:41.000000000","message":"could you link the bug?","commit_id":"fb8827c52928bd0f78978d2278369864b3bd443d"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ceed3c26290fd1651888bf9e217352a150aacbc5","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release OVS port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    neutron ``hybrid_plug`` mechanism is not used. ``hybrid_plug`` is disabled"},{"line_number":6,"context_line":"    when the ``noop`` or ``openvswitch`` security group firewall drivers are"},{"line_number":7,"context_line":"    enabled in neutron. By delegating port plugging to os-vif we can use the"},{"line_number":8,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":9,"context_line":"    guests from accessing other tenants\u0027 networks in before the neutron ovs agent"},{"line_number":10,"context_line":"    can wire up the port. Note that OVN, ODL and other SDN solution also use"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_4ed661c5","line":7,"range":{"start_line":4,"start_character":4,"end_line":7,"end_character":24},"updated":"2020-09-22 14:09:48.000000000","message":"The first time I read this, I struggled a bit with the negatives. How about changing this sentence to read:\n\nIn this release OVS port creation has been delegated to os-vif when the when the ``noop`` or ``openvswitch`` security group firewall drivers are enabled in Neutron. Those options, and others that disable the ``hybrid_plug`` mechanism, will now use os-vif instead of libvirt to plug VIFs into the bridge.","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ceed3c26290fd1651888bf9e217352a150aacbc5","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":9,"context_line":"    guests from accessing other tenants\u0027 networks in before the neutron ovs agent"},{"line_number":10,"context_line":"    can wire up the port. Note that OVN, ODL and other SDN solution also use"},{"line_number":11,"context_line":"    hybrid_plug\u003dfalse but they are not known to be affected by the security"},{"line_number":12,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":13,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":14,"context_line":"fixes:"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_eeee5589","line":11,"range":{"start_line":11,"start_character":4,"end_line":11,"end_character":21},"updated":"2020-09-22 14:09:48.000000000","message":"Probably want ``hybrid_plug \u003d false`` here for consistency.","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ceed3c26290fd1651888bf9e217352a150aacbc5","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    can wire up the port. Note that OVN, ODL and other SDN solution also use"},{"line_number":11,"context_line":"    hybrid_plug\u003dfalse but they are not known to be affected by the security"},{"line_number":12,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":13,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":14,"context_line":"fixes:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    In this release we delegate port plugging to os-vif for all OVS interface"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_2ee5eda4","line":13,"range":{"start_line":13,"start_character":58,"end_line":13,"end_character":65},"updated":"2020-09-22 14:09:48.000000000","message":"ML2/OVS","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0dc59a7ffb65602825337d1f3d07be763a5bc0d0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    can wire up the port. Note that OVN, ODL and other SDN solution also use"},{"line_number":11,"context_line":"    hybrid_plug\u003dfalse but they are not known to be affected by the security"},{"line_number":12,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":13,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":14,"context_line":"fixes:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    In this release we delegate port plugging to os-vif for all OVS interface"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_e4b63e89","line":13,"range":{"start_line":13,"start_character":58,"end_line":13,"end_character":65},"in_reply_to":"9f560f44_2ee5eda4","updated":"2020-10-05 11:47:47.000000000","message":"this is ment to be lowercase i belive.\n\ni have never seen the ml2 driver refered too in upper case.","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"a70dbc22035a11828a6b84abd971bea9a54a30be","unresolved":false,"context_lines":[{"line_number":10,"context_line":"    can wire up the port. Note that OVN, ODL and other SDN solution also use"},{"line_number":11,"context_line":"    hybrid_plug\u003dfalse but they are not known to be affected by the security"},{"line_number":12,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":13,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":14,"context_line":"fixes:"},{"line_number":15,"context_line":"  - |"},{"line_number":16,"context_line":"    In this release we delegate port plugging to os-vif for all OVS interface"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_9fe3bcd8","line":13,"range":{"start_line":13,"start_character":58,"end_line":13,"end_character":65},"in_reply_to":"9f560f44_e4b63e89","updated":"2020-10-05 12:03:24.000000000","message":"Hehe, and OVS is usually uppercase. Yaay consistency :-p","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":25733,"name":"Jan Gutter","email":"github@jangutter.com","username":"jangutter"},"change_message_id":"ceed3c26290fd1651888bf9e217352a150aacbc5","unresolved":false,"context_lines":[{"line_number":17,"context_line":"    types. This allows os-vif to create the OVS port before libvirt creates"},{"line_number":18,"context_line":"    a tap device during a live migration therefore preventing the loss of"},{"line_number":19,"context_line":"    the MAC learning frames generated by QEMU. This resolved a long-standing"},{"line_number":20,"context_line":"    race condition between libvirt creating the OVS port, neutron wiring up"},{"line_number":21,"context_line":"    the OVS port and QEMU generating RARP packets to populate the vswitch"},{"line_number":22,"context_line":"    MAC learning table. As a result this reduces the interval during a live"},{"line_number":23,"context_line":"    migration where packets can be lost."}],"source_content_type":"text/x-yaml","patch_set":19,"id":"9f560f44_0eeaa972","line":20,"range":{"start_line":20,"start_character":58,"end_line":20,"end_character":65},"updated":"2020-09-22 14:09:48.000000000","message":"Neutron","commit_id":"1a505473a43d37debe044e7eaab59a187b2e9070"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    ``hybrid_plug`` mechanism, will now use os-vif instead of libvirt to plug"},{"line_number":8,"context_line":"    VIFs into the bridge.  By delegating port plugging to os-vif we can use the"},{"line_number":9,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":10,"context_line":"    guests from accessing other tenants\u0027 networks in before the neutron ovs agent"},{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solution also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1f621f24_5226036a","line":10,"range":{"start_line":10,"start_character":50,"end_line":10,"end_character":52},"updated":"2020-11-13 02:51:42.000000000","message":"nix?","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":10,"context_line":"    guests from accessing other tenants\u0027 networks in before the neutron ovs agent"},{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solution also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"},{"line_number":14,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":15,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1f621f24_322b8730","line":12,"range":{"start_line":12,"start_character":37,"end_line":12,"end_character":45},"updated":"2020-11-13 02:51:42.000000000","message":"solutions","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solution also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"},{"line_number":14,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":15,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":16,"context_line":"fixes:"},{"line_number":17,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1f621f24_92237b56","line":14,"range":{"start_line":14,"start_character":10,"end_line":14,"end_character":16},"updated":"2020-11-13 02:51:42.000000000","message":"caused? created?","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46c002b81fe1ea45e022ab4fcb171c9935f5fbc1","unresolved":false,"context_lines":[{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solution also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"},{"line_number":14,"context_line":"    issue create by the previous behavior. As such the ``isolate_vif``"},{"line_number":15,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":16,"context_line":"fixes:"},{"line_number":17,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1f621f24_fca69853","line":14,"range":{"start_line":14,"start_character":10,"end_line":14,"end_character":16},"in_reply_to":"1f621f24_92237b56","updated":"2020-11-18 12:01:01.000000000","message":"caused i think is better but yes i ment created","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"dfe116f9b217e5513d084f90ff043ae8ea62ffd3","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    In this release we delegate port plugging to os-vif for all OVS interface"},{"line_number":19,"context_line":"    types. This allows os-vif to create the OVS port before libvirt creates"},{"line_number":20,"context_line":"    a tap device during a live migration therefore preventing the loss of"},{"line_number":21,"context_line":"    the MAC learning frames generated by QEMU. This resolved a long-standing"},{"line_number":22,"context_line":"    race condition between Libvirt creating the OVS port, Neutron wiring up"},{"line_number":23,"context_line":"    the OVS port and QEMU generating RARP packets to populate the vswitch"},{"line_number":24,"context_line":"    MAC learning table. As a result this reduces the interval during a live"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1f621f24_32e0a7fa","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":60},"updated":"2020-11-13 02:51:42.000000000","message":"resolves?","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"46c002b81fe1ea45e022ab4fcb171c9935f5fbc1","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    In this release we delegate port plugging to os-vif for all OVS interface"},{"line_number":19,"context_line":"    types. This allows os-vif to create the OVS port before libvirt creates"},{"line_number":20,"context_line":"    a tap device during a live migration therefore preventing the loss of"},{"line_number":21,"context_line":"    the MAC learning frames generated by QEMU. This resolved a long-standing"},{"line_number":22,"context_line":"    race condition between Libvirt creating the OVS port, Neutron wiring up"},{"line_number":23,"context_line":"    the OVS port and QEMU generating RARP packets to populate the vswitch"},{"line_number":24,"context_line":"    MAC learning table. As a result this reduces the interval during a live"}],"source_content_type":"text/x-yaml","patch_set":25,"id":"1f621f24_1c7f14ac","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":60},"in_reply_to":"1f621f24_32e0a7fa","updated":"2020-11-18 12:01:01.000000000","message":"i think both work but sure ill update this when when i fix the other issues","commit_id":"f4740f56ec9180740c4352aabda8b54399d40c3e"}],"releasenotes/notes/libvirt-delegate-ovs-plugging-to-os-vif-6adc0398a0e0df58.yaml":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"afbde88df96fa823250875c776ec5c32154d6c67","unresolved":true,"context_lines":[{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release OVS port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    when the ``noop`` or ``openvswitch`` security group firewall drivers are"},{"line_number":6,"context_line":"    enabled in Neutron. Those options, and others that disable the"},{"line_number":7,"context_line":"    ``hybrid_plug`` mechanism, will now use os-vif instead of libvirt to plug"},{"line_number":8,"context_line":"    VIFs into the bridge.  By delegating port plugging to os-vif we can use the"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"c63d786d_a9f66c94","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":12},"updated":"2021-03-30 15:09:17.000000000","message":"nit: duplicate \"when the\"","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"88b8c67526c436639cb73b64c020f891bbc241ff","unresolved":false,"context_lines":[{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release OVS port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    when the ``noop`` or ``openvswitch`` security group firewall drivers are"},{"line_number":6,"context_line":"    enabled in Neutron. Those options, and others that disable the"},{"line_number":7,"context_line":"    ``hybrid_plug`` mechanism, will now use os-vif instead of libvirt to plug"},{"line_number":8,"context_line":"    VIFs into the bridge.  By delegating port plugging to os-vif we can use the"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"c6ce372a_6e0ca6f3","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":12},"in_reply_to":"7cebcf0a_50873b67","updated":"2021-04-30 11:46:58.000000000","message":"Done","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65c1c83f3e901b3102676e5a1ac47368462ccd58","unresolved":true,"context_lines":[{"line_number":2,"context_line":"security:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    In this release OVS port creation has been delegated to os-vif when the"},{"line_number":5,"context_line":"    when the ``noop`` or ``openvswitch`` security group firewall drivers are"},{"line_number":6,"context_line":"    enabled in Neutron. Those options, and others that disable the"},{"line_number":7,"context_line":"    ``hybrid_plug`` mechanism, will now use os-vif instead of libvirt to plug"},{"line_number":8,"context_line":"    VIFs into the bridge.  By delegating port plugging to os-vif we can use the"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"7cebcf0a_50873b67","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":12},"in_reply_to":"c63d786d_a9f66c94","updated":"2021-03-30 16:46:28.000000000","message":"ok so this is in a release note so i should fix this.\nthe other nits could have been ignored but not doc issues.","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"afbde88df96fa823250875c776ec5c32154d6c67","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":10,"context_line":"    guests from accessing other tenants\u0027 networks before the neutron ovs agent"},{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solutions also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"},{"line_number":14,"context_line":"    issue caused by the previous behavior. As such the ``isolate_vif``"},{"line_number":15,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":16,"context_line":"fixes:"},{"line_number":17,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"f8569d02_275ed153","line":14,"range":{"start_line":12,"start_character":4,"end_line":14,"end_character":9},"updated":"2021-03-30 15:09:17.000000000","message":"While I haven\u0027t heard of a security report re: OVN, we have experienced reports from customers about network interruption during live migrations because the ports have not been wired before the VM is paused for the memory copy. Will this patch also be applicable for OVN in the following \u0027fixes\u0027 that describes that issue?","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"88b8c67526c436639cb73b64c020f891bbc241ff","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":10,"context_line":"    guests from accessing other tenants\u0027 networks before the neutron ovs agent"},{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solutions also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"},{"line_number":14,"context_line":"    issue caused by the previous behavior. As such the ``isolate_vif``"},{"line_number":15,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":16,"context_line":"fixes:"},{"line_number":17,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"ed0fa0a4_ced67ec4","line":14,"range":{"start_line":12,"start_character":4,"end_line":14,"end_character":9},"in_reply_to":"bb8b2997_c2764388","updated":"2021-04-30 11:46:58.000000000","message":"Ack","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"65c1c83f3e901b3102676e5a1ac47368462ccd58","unresolved":true,"context_lines":[{"line_number":9,"context_line":"    ``isolate_vif`` config option to ensure VIFs are plugged securely preventing"},{"line_number":10,"context_line":"    guests from accessing other tenants\u0027 networks before the neutron ovs agent"},{"line_number":11,"context_line":"    can wire up the port. See `bug #1734320`_ for details."},{"line_number":12,"context_line":"    Note that OVN, ODL and other SDN solutions also use"},{"line_number":13,"context_line":"    ``hybrid_plug\u003dfalse`` but they are not known to be affected by the security"},{"line_number":14,"context_line":"    issue caused by the previous behavior. As such the ``isolate_vif``"},{"line_number":15,"context_line":"    os-vif config option is only used when deploying with ml2/ovs."},{"line_number":16,"context_line":"fixes:"},{"line_number":17,"context_line":"  - |"}],"source_content_type":"text/x-yaml","patch_set":32,"id":"bb8b2997_c2764388","line":14,"range":{"start_line":12,"start_character":4,"end_line":14,"end_character":9},"in_reply_to":"f8569d02_275ed153","updated":"2021-03-30 16:46:28.000000000","message":"it applies to ovn in that it will elminate the race for any solution that uses hybrid_plug\u003dfalse\nwhich include ovn. it is not a security issue in that case but it should help reduce packet loss\nprovided ovn will recaulate the flows and install them. if it waits for the openflow id to be populated in the ovs db before installing some or all of the flows it wont reduce the time it take to setup the flows at all.\n\nas you know we do not provdie any sla or guarentees for packet loss during a live migration to our customer upstream or downstream. fundementally we can never guarentee there will be 0 packet loss and if a network solution depend on the device being present on the datapath before it can program the flows then this change will not alter that requirement. it will simply move the creation fo the port in the contol plane earlier.\n\nfor ml2/ovs there is no depenciy (anymore) on the port also being present on the dataplane to start installing the flows in the contol plane. i am not sure how ovn generates its flows but if it use the of_port id as part of its flow rules it will need to wait until libvirt creates the tap defice to install those flows that need it. so it really comes down to the internal of the SDN contolers openflow pipeline which is out of scope of the nova release notes.\n\nclear as mud i know but that is really the best we can do.\n\nour upstream users and down stream custoemr should be aware of the fact that no sla applies once an instance is live migrated and that all we can do is make a best effort attempt to minimse the impact within reason.","commit_id":"c53b9bf4ecbc0df93a836c75a3aad624f764676a"}]}
