)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e3db46bc26d000d422c41e5226cf2677a6c7804","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"eee6a7e1_ba071077","updated":"2023-12-20 14:09:25.000000000","message":"over all i think this makes sense but im much less familar with the ovn driver then ovs.\n\ni belive the behvior would not be the same however so +1","commit_id":"af8e6f4fa1b546458de40a56c49c970d683efdd1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"78056077_cb59cef5","updated":"2024-01-02 11:57:27.000000000","message":"just few minor comments. In overall this looks good to me, thx 😊","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b7de1d7cfe63d5c844aa3045cb6d9ac501a379a3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b9aaf008_f3edf3f2","updated":"2024-01-30 09:53:06.000000000","message":"Sorry for the time it took to review this. Code LGTM! Thanks Rodolfo","commit_id":"baaf240ce3f7802fe1431cc13913b9d93fc7f742"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5db2247a01cc716ed36355cd07dc4df69d7fca0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"3e56e1be_1336c1f5","updated":"2024-01-24 08:29:06.000000000","message":"ping fellow reviewers","commit_id":"baaf240ce3f7802fe1431cc13913b9d93fc7f742"}],"neutron/agent/ovn/metadata/agent.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e03ef16307768f3ed76289cbe8f387cb2ad7762c","unresolved":true,"context_lines":[{"line_number":347,"context_line":"        self._post_fork_event \u003d threading.Event()"},{"line_number":348,"context_line":"        # By default, before reading the OVS local configuration, the datapath"},{"line_number":349,"context_line":"        # type is set to \"system\"."},{"line_number":350,"context_line":"        self._datapath_type \u003d ovs_constants.OVS_DATAPATH_SYSTEM"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @property"},{"line_number":353,"context_line":"    def sb_idl(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"b7bf5899_4ce510bd","line":350,"updated":"2023-12-13 12:26:55.000000000","message":"yep technially its \"\" which is an alias for system if you look at the ovs db as system is ovs internal default.","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"13f388835b9958219bfbf8b96b91336ba9fe683f","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        self._post_fork_event \u003d threading.Event()"},{"line_number":348,"context_line":"        # By default, before reading the OVS local configuration, the datapath"},{"line_number":349,"context_line":"        # type is set to \"system\"."},{"line_number":350,"context_line":"        self._datapath_type \u003d ovs_constants.OVS_DATAPATH_SYSTEM"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @property"},{"line_number":353,"context_line":"    def sb_idl(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"369e22ca_619e93af","line":350,"in_reply_to":"b7bf5899_4ce510bd","updated":"2023-12-13 13:16:15.000000000","message":"Done","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"}],"neutron/common/ovn/utils.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e03ef16307768f3ed76289cbe8f387cb2ad7762c","unresolved":true,"context_lines":[{"line_number":713,"context_line":"    This information is stored in the Chassis_Private register by the OVN"},{"line_number":714,"context_line":"    Metadata agent."},{"line_number":715,"context_line":"    \"\"\""},{"line_number":716,"context_line":"    return chassis_private.external_ids.get(constants.OVN_AGENT_OVN_BRIDGE)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":""},{"line_number":719,"context_line":"def get_ovn_datapath_type(chassis_private):"}],"source_content_type":"text/x-python","patch_set":2,"id":"26d0272b_692abdbc","line":716,"updated":"2023-12-13 12:26:55.000000000","message":"and  this shoudl proably default to \"br-int\" or CONF.ovs.integration_bridge which defautls to br-int.\n\nif we use the config option then if someoen for whatever reason wanted too use a diffent defable integration bridge then they could set that in the neutron server config.","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"13f388835b9958219bfbf8b96b91336ba9fe683f","unresolved":false,"context_lines":[{"line_number":713,"context_line":"    This information is stored in the Chassis_Private register by the OVN"},{"line_number":714,"context_line":"    Metadata agent."},{"line_number":715,"context_line":"    \"\"\""},{"line_number":716,"context_line":"    return chassis_private.external_ids.get(constants.OVN_AGENT_OVN_BRIDGE)"},{"line_number":717,"context_line":""},{"line_number":718,"context_line":""},{"line_number":719,"context_line":"def get_ovn_datapath_type(chassis_private):"}],"source_content_type":"text/x-python","patch_set":2,"id":"703d1a9f_d246b90c","line":716,"in_reply_to":"26d0272b_692abdbc","updated":"2023-12-13 13:16:15.000000000","message":"Done","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e03ef16307768f3ed76289cbe8f387cb2ad7762c","unresolved":true,"context_lines":[{"line_number":722,"context_line":"    This information is stored in the Chassis_Private register by the OVN"},{"line_number":723,"context_line":"    Metadata agent."},{"line_number":724,"context_line":"    \"\"\""},{"line_number":725,"context_line":"    return chassis_private.external_ids.get(constants.OVN_AGENT_DATAPATH_TYPE)"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"def is_gateway_chassis(chassis):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7dc42359_e880bb36","line":725,"updated":"2023-12-13 12:26:55.000000000","message":"so based on our irc converstaion we proably shoudl have this default to \"system\" when not set.","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"13f388835b9958219bfbf8b96b91336ba9fe683f","unresolved":false,"context_lines":[{"line_number":722,"context_line":"    This information is stored in the Chassis_Private register by the OVN"},{"line_number":723,"context_line":"    Metadata agent."},{"line_number":724,"context_line":"    \"\"\""},{"line_number":725,"context_line":"    return chassis_private.external_ids.get(constants.OVN_AGENT_DATAPATH_TYPE)"},{"line_number":726,"context_line":""},{"line_number":727,"context_line":""},{"line_number":728,"context_line":"def is_gateway_chassis(chassis):"}],"source_content_type":"text/x-python","patch_set":2,"id":"28a48273_616a03fc","line":725,"in_reply_to":"7dc42359_e880bb36","updated":"2023-12-13 13:16:15.000000000","message":"Done","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0e482383528a646d13de673e673c8b6aceab975a","unresolved":true,"context_lines":[{"line_number":707,"context_line":"        constants.OVN_CMS_OPTIONS, \u0027\u0027).split(\u0027,\u0027)]"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"def get_ovn_bridge(chassis_private):"},{"line_number":711,"context_line":"    \"\"\"Return the OVN bridge used by the local OVN controller"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"    This information is stored in the Chassis_Private register by the OVN"}],"source_content_type":"text/x-python","patch_set":8,"id":"e71d74ec_0739a185","line":710,"range":{"start_line":710,"start_character":4,"end_line":710,"end_character":18},"updated":"2024-01-02 18:28:16.000000000","message":"nit: The function is in `common.ovn.utils` and the name seems too generic to me. I\u0027d prefer to explicitly state it\u0027s from the chassis_private record, something like `get_ovn_bridge_from_chassis_private`","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":707,"context_line":"        constants.OVN_CMS_OPTIONS, \u0027\u0027).split(\u0027,\u0027)]"},{"line_number":708,"context_line":""},{"line_number":709,"context_line":""},{"line_number":710,"context_line":"def get_ovn_bridge(chassis_private):"},{"line_number":711,"context_line":"    \"\"\"Return the OVN bridge used by the local OVN controller"},{"line_number":712,"context_line":""},{"line_number":713,"context_line":"    This information is stored in the Chassis_Private register by the OVN"}],"source_content_type":"text/x-python","patch_set":8,"id":"f95a46ca_983ec136","line":710,"range":{"start_line":710,"start_character":4,"end_line":710,"end_character":18},"in_reply_to":"e71d74ec_0739a185","updated":"2024-01-04 15:51:48.000000000","message":"Agree, this is a very specific method and so should be the name.","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0e482383528a646d13de673e673c8b6aceab975a","unresolved":true,"context_lines":[{"line_number":716,"context_line":"    configuration knob, that could be different."},{"line_number":717,"context_line":"    \"\"\""},{"line_number":718,"context_line":"    return (chassis_private.external_ids.get(constants.OVN_AGENT_OVN_BRIDGE) or"},{"line_number":719,"context_line":"            \u0027br-int\u0027)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"def get_datapath_type(hostname, sb_idl):"}],"source_content_type":"text/x-python","patch_set":8,"id":"74d95dff_da9d2249","line":719,"range":{"start_line":719,"start_character":12,"end_line":719,"end_character":20},"updated":"2024-01-02 18:28:16.000000000","message":"Can it be added as the default to be retuned by `get()` ? Also perhaps it should be a constant","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":716,"context_line":"    configuration knob, that could be different."},{"line_number":717,"context_line":"    \"\"\""},{"line_number":718,"context_line":"    return (chassis_private.external_ids.get(constants.OVN_AGENT_OVN_BRIDGE) or"},{"line_number":719,"context_line":"            \u0027br-int\u0027)"},{"line_number":720,"context_line":""},{"line_number":721,"context_line":""},{"line_number":722,"context_line":"def get_datapath_type(hostname, sb_idl):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1231317e_1dd7fd17","line":719,"range":{"start_line":719,"start_character":12,"end_line":719,"end_character":20},"in_reply_to":"74d95dff_da9d2249","updated":"2024-01-04 15:51:48.000000000","message":"1) I cover the case when the bridge name has been explicitly set as an empty string \"\". I don\u0027t know when that could be needed but if the user explicitly define an empty string, that will be used.\n2) Done, constant added.","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"}],"neutron/plugins/ml2/drivers/ovn/db_migration.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":true,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEFAULT_BR_INT \u003d \u0027br-int\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def migrate_neutron_database_to_ovn():"}],"source_content_type":"text/x-python","patch_set":8,"id":"5e9c9f04_88a25d49","line":34,"updated":"2024-01-02 11:57:27.000000000","message":"this \"br-int\" string is used in more than one file, maybe You should move this constant to some common module and reuse it everywhere where it\u0027s needed?","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":31,"context_line":""},{"line_number":32,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"DEFAULT_BR_INT \u003d \u0027br-int\u0027"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def migrate_neutron_database_to_ovn():"}],"source_content_type":"text/x-python","patch_set":8,"id":"fe6fc860_b9318a6b","line":34,"in_reply_to":"5e9c9f04_88a25d49","updated":"2024-01-04 15:51:48.000000000","message":"Yes, that is a long standing \"tech debt\" in Neutron.","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0e482383528a646d13de673e673c8b6aceab975a","unresolved":true,"context_lines":[{"line_number":84,"context_line":"                    # \"br-int\" will be used."},{"line_number":85,"context_line":"                    # The OVS datapath type is unchanged."},{"line_number":86,"context_line":"                    vif_details \u003d copy.deepcopy(pb.vif_details) or {}"},{"line_number":87,"context_line":"                    if (vif_details.get(pb_api.VIF_DETAILS_BRIDGE_NAME) \u003d\u003d"},{"line_number":88,"context_line":"                            DEFAULT_BR_INT):"},{"line_number":89,"context_line":"                        continue"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"                    vif_details[pb_api.VIF_DETAILS_BRIDGE_NAME] \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"63bc75fe_4410f545","line":88,"range":{"start_line":87,"start_character":0,"end_line":88,"end_character":44},"updated":"2024-01-02 18:28:16.000000000","message":"Do we even need this since ml2/ovs now uses the bridge_name everywhere?","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                    # \"br-int\" will be used."},{"line_number":85,"context_line":"                    # The OVS datapath type is unchanged."},{"line_number":86,"context_line":"                    vif_details \u003d copy.deepcopy(pb.vif_details) or {}"},{"line_number":87,"context_line":"                    if (vif_details.get(pb_api.VIF_DETAILS_BRIDGE_NAME) \u003d\u003d"},{"line_number":88,"context_line":"                            DEFAULT_BR_INT):"},{"line_number":89,"context_line":"                        continue"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"                    vif_details[pb_api.VIF_DETAILS_BRIDGE_NAME] \u003d ("}],"source_content_type":"text/x-python","patch_set":8,"id":"0697f97d_76863150","line":88,"range":{"start_line":87,"start_character":0,"end_line":88,"end_character":44},"in_reply_to":"63bc75fe_4410f545","updated":"2024-01-04 15:51:48.000000000","message":"That\u0027s the point: any ML2/OVS port will have \"bridge_name\" in the VIF details. Most of them will have \"br-int\" but not the Trunk ports because they will contain the Trunk bridge. These ports must be updated with the integration bridge name in OVN.","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3c727a02ef78c468f8cb4a2df2348ba625c802f7","unresolved":true,"context_lines":[{"line_number":1060,"context_line":"                # bridge name must be always written by the OVN metadata agent."},{"line_number":1061,"context_line":"                if ovn_bridge:"},{"line_number":1062,"context_line":"                    vif_details[portbindings.VIF_DETAILS_BRIDGE_NAME] \u003d ("},{"line_number":1063,"context_line":"                        ovn_bridge)"},{"line_number":1064,"context_line":"                context.set_binding(segment_to_bind[api.ID], vif_type,"},{"line_number":1065,"context_line":"                                    vif_details)"},{"line_number":1066,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":1,"id":"57edd2ad_43ce4fe7","line":1063,"updated":"2023-12-12 15:11:54.000000000","message":"we alwasy expect the datapaht type to be set not just when its dpdk\n\n vif_type \u003d portbindings.VIF_TYPE_OVS with datapath_type\u003dnetdev was used for windows support.\n \nwhen using hardware offloaded ovs or kernel ovs on linux we expect neutron to pass system.\n\nthat is the defautl if nothign is passed however neutron shoudl always tell nova what the expect datapath type is.\n\nits is uncoditionally set in ml2/ovs\n\nhttps://github.com/openstack/neutron/blob/2a4dbb63f58b6f9c924a9c56b1e4b367074dc52e/neutron/plugins/ml2/drivers/openvswitch/mech_driver/mech_openvswitch.py#L199-L200","commit_id":"3075459188ae7184268981470ec51c1042d2fdbc"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"bf94985aa6526f253c19cfae7a9404e7e25e7261","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"                # bridge name must be always written by the OVN metadata agent."},{"line_number":1061,"context_line":"                if ovn_bridge:"},{"line_number":1062,"context_line":"                    vif_details[portbindings.VIF_DETAILS_BRIDGE_NAME] \u003d ("},{"line_number":1063,"context_line":"                        ovn_bridge)"},{"line_number":1064,"context_line":"                context.set_binding(segment_to_bind[api.ID], vif_type,"},{"line_number":1065,"context_line":"                                    vif_details)"},{"line_number":1066,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":1,"id":"b25106e1_38321b58","line":1063,"in_reply_to":"57edd2ad_43ce4fe7","updated":"2023-12-13 08:25:43.000000000","message":"Done","commit_id":"3075459188ae7184268981470ec51c1042d2fdbc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e03ef16307768f3ed76289cbe8f387cb2ad7762c","unresolved":true,"context_lines":[{"line_number":1061,"context_line":"                # bridge name must be always written by the OVN metadata agent."},{"line_number":1062,"context_line":"                if ovn_bridge:"},{"line_number":1063,"context_line":"                    dp_type \u003d ovn_utils.get_ovn_datapath_type("},{"line_number":1064,"context_line":"                        agent.chassis_private)"},{"line_number":1065,"context_line":"                    vif_details.update({"},{"line_number":1066,"context_line":"                        portbindings.VIF_DETAILS_BRIDGE_NAME: ovn_bridge,"},{"line_number":1067,"context_line":"                        portbindings.OVS_DATAPATH_TYPE: dp_type,"}],"source_content_type":"text/x-python","patch_set":2,"id":"71c9c900_3aee7dc0","line":1064,"updated":"2023-12-13 12:26:55.000000000","message":"so hopefully it will be very rare that we dont have an ovn_bridge sicne we likely want to default ot br-int if not set. but do we want to pull this out of the if.","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"13f388835b9958219bfbf8b96b91336ba9fe683f","unresolved":false,"context_lines":[{"line_number":1061,"context_line":"                # bridge name must be always written by the OVN metadata agent."},{"line_number":1062,"context_line":"                if ovn_bridge:"},{"line_number":1063,"context_line":"                    dp_type \u003d ovn_utils.get_ovn_datapath_type("},{"line_number":1064,"context_line":"                        agent.chassis_private)"},{"line_number":1065,"context_line":"                    vif_details.update({"},{"line_number":1066,"context_line":"                        portbindings.VIF_DETAILS_BRIDGE_NAME: ovn_bridge,"},{"line_number":1067,"context_line":"                        portbindings.OVS_DATAPATH_TYPE: dp_type,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fcec5ab0_53af7492","line":1064,"in_reply_to":"71c9c900_3aee7dc0","updated":"2023-12-13 13:16:15.000000000","message":"That will happen if the OVN metadata agent is not updated but the Neutron API is. In any case, I\u0027m going to change the \"get_ovn_bridge\" and \"get_ovn_datapath_type\" to return a default value, I\u0027ll remove this check.","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2e3db46bc26d000d422c41e5226cf2677a6c7804","unresolved":true,"context_lines":[{"line_number":1060,"context_line":"                vif_details.update({"},{"line_number":1061,"context_line":"                    portbindings.VIF_DETAILS_BRIDGE_NAME: ovn_bridge,"},{"line_number":1062,"context_line":"                    portbindings.OVS_DATAPATH_TYPE: dp_type,"},{"line_number":1063,"context_line":"                })"},{"line_number":1064,"context_line":"                context.set_binding(segment_to_bind[api.ID], vif_type,"},{"line_number":1065,"context_line":"                                    vif_details)"},{"line_number":1066,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":7,"id":"376f4c6a_0b5c2a86","line":1063,"updated":"2023-12-20 14:09:25.000000000","message":"+1","commit_id":"af8e6f4fa1b546458de40a56c49c970d683efdd1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d2b81118d4ef545a55366bcc6fa00b69b5ccbecd","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"                vif_details.update({"},{"line_number":1061,"context_line":"                    portbindings.VIF_DETAILS_BRIDGE_NAME: ovn_bridge,"},{"line_number":1062,"context_line":"                    portbindings.OVS_DATAPATH_TYPE: dp_type,"},{"line_number":1063,"context_line":"                })"},{"line_number":1064,"context_line":"                context.set_binding(segment_to_bind[api.ID], vif_type,"},{"line_number":1065,"context_line":"                                    vif_details)"},{"line_number":1066,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":7,"id":"bba2c240_0a8ee135","line":1063,"in_reply_to":"376f4c6a_0b5c2a86","updated":"2024-01-05 09:04:40.000000000","message":"Done","commit_id":"af8e6f4fa1b546458de40a56c49c970d683efdd1"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":true,"context_lines":[{"line_number":187,"context_line":"        vif_types \u003d set()"},{"line_number":188,"context_line":"        for ch in self.sb_ovn.chassis_list().execute(check_error\u003dTrue):"},{"line_number":189,"context_line":"            other_config \u003d ovn_utils.get_ovn_chassis_other_config(ch)"},{"line_number":190,"context_line":"            dp_type \u003d other_config.get(ovn_const.OVN_DATAPATH_TYPE, \u0027\u0027)"},{"line_number":191,"context_line":"            if dp_type \u003d\u003d ovn_const.CHASSIS_DATAPATH_NETDEV:"},{"line_number":192,"context_line":"                vif_types.add(portbindings.VIF_TYPE_VHOST_USER)"},{"line_number":193,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5e9cb365_84feea3e","line":190,"updated":"2024-01-02 11:57:27.000000000","message":"why not use \"ovn_utils.get_datapath_type(...)\" like e.g. in L1059 ?","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        vif_types \u003d set()"},{"line_number":188,"context_line":"        for ch in self.sb_ovn.chassis_list().execute(check_error\u003dTrue):"},{"line_number":189,"context_line":"            other_config \u003d ovn_utils.get_ovn_chassis_other_config(ch)"},{"line_number":190,"context_line":"            dp_type \u003d other_config.get(ovn_const.OVN_DATAPATH_TYPE, \u0027\u0027)"},{"line_number":191,"context_line":"            if dp_type \u003d\u003d ovn_const.CHASSIS_DATAPATH_NETDEV:"},{"line_number":192,"context_line":"                vif_types.add(portbindings.VIF_TYPE_VHOST_USER)"},{"line_number":193,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7ced7823_12bffbf4","line":190,"in_reply_to":"5e9cb365_84feea3e","updated":"2024-01-04 15:51:48.000000000","message":"\"get_datapath_type\" will issue a query in the DB for one single register, while here we are iterating over the chassis list. The DB register is already retrieved and here I\u0027m only reading the other_config dictionary.","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":true,"context_lines":[{"line_number":990,"context_line":"            return"},{"line_number":991,"context_line":"        chassis \u003d agent.chassis"},{"line_number":992,"context_line":"        other_config \u003d ovn_utils.get_ovn_chassis_other_config(chassis)"},{"line_number":993,"context_line":"        datapath_type \u003d other_config.get(ovn_const.OVN_DATAPATH_TYPE, \u0027\u0027)"},{"line_number":994,"context_line":"        iface_types \u003d other_config.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":995,"context_line":"        iface_types \u003d iface_types.split(\u0027,\u0027) if iface_types else []"},{"line_number":996,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f8e94f5_6c51f93a","line":993,"updated":"2024-01-02 11:57:27.000000000","message":"same question here","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":990,"context_line":"            return"},{"line_number":991,"context_line":"        chassis \u003d agent.chassis"},{"line_number":992,"context_line":"        other_config \u003d ovn_utils.get_ovn_chassis_other_config(chassis)"},{"line_number":993,"context_line":"        datapath_type \u003d other_config.get(ovn_const.OVN_DATAPATH_TYPE, \u0027\u0027)"},{"line_number":994,"context_line":"        iface_types \u003d other_config.get(\u0027iface-types\u0027, \u0027\u0027)"},{"line_number":995,"context_line":"        iface_types \u003d iface_types.split(\u0027,\u0027) if iface_types else []"},{"line_number":996,"context_line":"        chassis_physnets \u003d self.sb_ovn._get_chassis_physnets(chassis)"}],"source_content_type":"text/x-python","patch_set":8,"id":"6deca2fd_ea44be38","line":993,"in_reply_to":"3f8e94f5_6c51f93a","updated":"2024-01-04 15:51:48.000000000","message":"ditto","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"}],"neutron/tests/functional/agent/ovn/metadata/test_metadata_agent.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":true,"context_lines":[{"line_number":114,"context_line":"        with mock.patch.object(metadata_server.UnixDomainMetadataProxy,"},{"line_number":115,"context_line":"                               \u0027wait\u0027):"},{"line_number":116,"context_line":"            agt.start()"},{"line_number":117,"context_line":"            external_ids \u003d agt.sb_idl.db_get("},{"line_number":118,"context_line":"                \u0027Chassis_Private\u0027, agt.chassis, \u0027external_ids\u0027).execute("},{"line_number":119,"context_line":"                check_error\u003dTrue)"},{"line_number":120,"context_line":"            self.assertEqual(external_ids[ovn_const.OVN_AGENT_OVN_BRIDGE],"}],"source_content_type":"text/x-python","patch_set":8,"id":"2ce0f933_2d15552c","line":117,"updated":"2024-01-02 11:57:27.000000000","message":"just asking: will it be always available immediately? Shouldn\u0027t we maybe use \"wait_until...\" approach here?","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0e482383528a646d13de673e673c8b6aceab975a","unresolved":true,"context_lines":[{"line_number":114,"context_line":"        with mock.patch.object(metadata_server.UnixDomainMetadataProxy,"},{"line_number":115,"context_line":"                               \u0027wait\u0027):"},{"line_number":116,"context_line":"            agt.start()"},{"line_number":117,"context_line":"            external_ids \u003d agt.sb_idl.db_get("},{"line_number":118,"context_line":"                \u0027Chassis_Private\u0027, agt.chassis, \u0027external_ids\u0027).execute("},{"line_number":119,"context_line":"                check_error\u003dTrue)"},{"line_number":120,"context_line":"            self.assertEqual(external_ids[ovn_const.OVN_AGENT_OVN_BRIDGE],"}],"source_content_type":"text/x-python","patch_set":8,"id":"9a67a856_ab269b29","line":117,"in_reply_to":"2ce0f933_2d15552c","updated":"2024-01-02 18:28:16.000000000","message":"the `sb_idl` object is the same that had set the external_ids and the agent `start()` method is called sequentially. that said, I don\u0027t think we need `wait_until_true` here","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        with mock.patch.object(metadata_server.UnixDomainMetadataProxy,"},{"line_number":115,"context_line":"                               \u0027wait\u0027):"},{"line_number":116,"context_line":"            agt.start()"},{"line_number":117,"context_line":"            external_ids \u003d agt.sb_idl.db_get("},{"line_number":118,"context_line":"                \u0027Chassis_Private\u0027, agt.chassis, \u0027external_ids\u0027).execute("},{"line_number":119,"context_line":"                check_error\u003dTrue)"},{"line_number":120,"context_line":"            self.assertEqual(external_ids[ovn_const.OVN_AGENT_OVN_BRIDGE],"}],"source_content_type":"text/x-python","patch_set":8,"id":"4124ce7b_a38e5463","line":117,"in_reply_to":"9a67a856_ab269b29","updated":"2024-01-04 15:51:48.000000000","message":"^^ replied.","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"}],"neutron/tests/unit/plugins/ml2/drivers/ovn/test_db_migration.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":true,"context_lines":[{"line_number":30,"context_line":"    test_mech_driver)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DEFAULT_BR_INT \u003d \u0027br-int\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class TestMigrateNeutronDatabaseToOvn("}],"source_content_type":"text/x-python","patch_set":8,"id":"d842deb8_b8038586","line":33,"updated":"2024-01-02 11:57:27.000000000","message":"again same constant 😊","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    test_mech_driver)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"DEFAULT_BR_INT \u003d \u0027br-int\u0027"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class TestMigrateNeutronDatabaseToOvn("}],"source_content_type":"text/x-python","patch_set":8,"id":"5c66eef9_68ef3d3b","line":33,"in_reply_to":"d842deb8_b8038586","updated":"2024-01-04 15:51:48.000000000","message":"Done","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"}],"releasenotes/notes/ovn-vif-details-bridge-name-and-datapath-type-b6f50aefd3694f91.yaml":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e03ef16307768f3ed76289cbe8f387cb2ad7762c","unresolved":true,"context_lines":[{"line_number":5,"context_line":"    The ports bound to ML2/OVS now contain the OVS bridge name and datapath"},{"line_number":6,"context_line":"    type in the VIF details dictionary. That applies to any new port created"},{"line_number":7,"context_line":"    and bound to this mechanism driver. NOTE: the ports migrated from ML2/OVS"},{"line_number":8,"context_line":"    to ML2/OVS using the database migration tool won\u0027t have these parameters"},{"line_number":9,"context_line":"    populated."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"c2507942_4db8e02d","line":8,"range":{"start_line":8,"start_character":11,"end_line":8,"end_character":14},"updated":"2023-12-13 12:26:55.000000000","message":"ovn","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"13f388835b9958219bfbf8b96b91336ba9fe683f","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    The ports bound to ML2/OVS now contain the OVS bridge name and datapath"},{"line_number":6,"context_line":"    type in the VIF details dictionary. That applies to any new port created"},{"line_number":7,"context_line":"    and bound to this mechanism driver. NOTE: the ports migrated from ML2/OVS"},{"line_number":8,"context_line":"    to ML2/OVS using the database migration tool won\u0027t have these parameters"},{"line_number":9,"context_line":"    populated."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"22496e6b_52dba9eb","line":8,"range":{"start_line":8,"start_character":11,"end_line":8,"end_character":14},"in_reply_to":"c2507942_4db8e02d","updated":"2023-12-13 13:16:15.000000000","message":"Done","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9991ceae1c396db1da4a86c3f1235f9ebe7aa9dc","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    [`bug 2045889 \u003chttps://bugs.launchpad.net/neutron/+bug/2045889\u003e`_]"},{"line_number":5,"context_line":"    The ports bound to ML2/OVS now contain the OVS bridge name and datapath"},{"line_number":6,"context_line":"    type in the VIF details dictionary. That applies to any new port created"},{"line_number":7,"context_line":"    and bound to this mechanism driver. NOTE: the ports migrated from ML2/OVS"},{"line_number":8,"context_line":"    to ML2/OVS using the database migration tool won\u0027t have these parameters"},{"line_number":9,"context_line":"    populated."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"dc3e586a_cab9110b","line":9,"range":{"start_line":7,"start_character":40,"end_line":9,"end_character":13},"updated":"2023-12-13 11:01:28.000000000","message":"feedback on this NOTE is welcome","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"781cbd4de3042a84aff96c256c477e22d327c482","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    [`bug 2045889 \u003chttps://bugs.launchpad.net/neutron/+bug/2045889\u003e`_]"},{"line_number":5,"context_line":"    The ports bound to ML2/OVS now contain the OVS bridge name and datapath"},{"line_number":6,"context_line":"    type in the VIF details dictionary. That applies to any new port created"},{"line_number":7,"context_line":"    and bound to this mechanism driver. NOTE: the ports migrated from ML2/OVS"},{"line_number":8,"context_line":"    to ML2/OVS using the database migration tool won\u0027t have these parameters"},{"line_number":9,"context_line":"    populated."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3a21cbaa_627c2abe","line":9,"range":{"start_line":7,"start_character":40,"end_line":9,"end_character":13},"in_reply_to":"dc3e586a_cab9110b","updated":"2023-12-18 15:37:27.000000000","message":"Done","commit_id":"2387855b21bf168c04427d964e8571cbe9714137"}],"releasenotes/notes/ovn-vif-details-bridge-name-and-datapath-type-d2bd5b438118355f.yaml":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"80d99da5d52b58a2d79969c39768589cf7fbfb73","unresolved":true,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 2045889 \u003chttps://bugs.launchpad.net/neutron/+bug/2045889\u003e`_]"},{"line_number":5,"context_line":"    The ports bound to ML2/OVS now contain the OVS bridge name and datapath"},{"line_number":6,"context_line":"    type in the VIF details dictionary. NOTE: in the ML2/OVS to ML2/OVN"},{"line_number":7,"context_line":"    migration, the local host OVN bridge (integration bridge) per port is not"},{"line_number":8,"context_line":"    known; \"br-int\" will be used by default (that value is rarely changed)."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"e0e581e6_87bc8cbb","line":5,"range":{"start_line":5,"start_character":27,"end_line":5,"end_character":30},"updated":"2024-01-02 11:57:27.000000000","message":"shouldn\u0027t be \"OVN\"?","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"119087d2776bdb13400e2ff96840b000aa9eb4b6","unresolved":false,"context_lines":[{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    [`bug 2045889 \u003chttps://bugs.launchpad.net/neutron/+bug/2045889\u003e`_]"},{"line_number":5,"context_line":"    The ports bound to ML2/OVS now contain the OVS bridge name and datapath"},{"line_number":6,"context_line":"    type in the VIF details dictionary. NOTE: in the ML2/OVS to ML2/OVN"},{"line_number":7,"context_line":"    migration, the local host OVN bridge (integration bridge) per port is not"},{"line_number":8,"context_line":"    known; \"br-int\" will be used by default (that value is rarely changed)."}],"source_content_type":"text/x-yaml","patch_set":8,"id":"67272fab_0248760b","line":5,"range":{"start_line":5,"start_character":27,"end_line":5,"end_character":30},"in_reply_to":"e0e581e6_87bc8cbb","updated":"2024-01-04 15:51:48.000000000","message":"Ups... yes!","commit_id":"7ef47d69c2413f03461ca5b362c7ada6e51cc81c"}]}
