)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"702d7b0538e7208f69f7f14a3e9697c387bd15fe","unresolved":false,"context_lines":[{"line_number":9,"context_line":"It is possible to re-use the mech driver ovsdb connections in the"},{"line_number":10,"context_line":"ovn l3 plugin, saving the overhead of two db connections/in-memory"},{"line_number":11,"context_line":"copies of the db per process."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I022dea485f42cf76c4cec67ee43eed9a3770ec9c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1fa4df85_7b275ab8","line":12,"updated":"2020-02-24 13:45:10.000000000","message":"I think we need cherry-pick it down to stable/queens. Can you add a bug report please?","commit_id":"d84f487f9ce7929b3318bce6de9ea8af4cb4396f"}],"neutron/services/ovn_l3/plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"d901bb8b44abe9e7341806e1b27365e8e4c0fe37","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @property"},{"line_number":93,"context_line":"    def _ovn(self):"},{"line_number":94,"context_line":"        return self._plugin.mechanism_manager.mech_drivers[\u0027ovn\u0027].obj._nb_ovn"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @property"},{"line_number":97,"context_line":"    def _sb_ovn(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_6c1ecf71","line":94,"updated":"2020-02-23 19:13:46.000000000","message":"I\u0027m OK with this change. Actually, it\u0027s better to use the existing idl connection. Just two comments:\n\n1) Can you create in the OVNMechanismDriver a property to make _nb_ovn and _sb_ovn public? This is just a nit\n2) Both connections are enabled during \"post_fork_initialize\". Could be possible we can call _ovn and the connection is still not created? What could happens then? Shouldn\u0027t we check it?\nIn the original implementation, the idl connection is always created.","commit_id":"d84f487f9ce7929b3318bce6de9ea8af4cb4396f"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"3d9f648b892a16a84fa6492167d16d1f76a8b7fd","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @property"},{"line_number":93,"context_line":"    def _ovn(self):"},{"line_number":94,"context_line":"        return self._plugin.mechanism_manager.mech_drivers[\u0027ovn\u0027].obj._nb_ovn"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @property"},{"line_number":97,"context_line":"    def _sb_ovn(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_4912bc5a","line":94,"in_reply_to":"1fa4df85_586fffc4","updated":"2020-02-25 21:13:37.000000000","message":"Ok, so _ovn/_sb_ovn don\u0027t get called until after post_fork_initialize is called. The earliest callers will be from schedule_unhosted_gateways() which is called either by the ChassisEvent which can\u0027t fire w/o a connection, and by the sync thread, which doesn\u0027t get initialized until after the connections.","commit_id":"d84f487f9ce7929b3318bce6de9ea8af4cb4396f"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"da196a32bce24eb0b4bf62fd169c7f2fe0832b65","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @property"},{"line_number":93,"context_line":"    def _ovn(self):"},{"line_number":94,"context_line":"        return self._plugin.mechanism_manager.mech_drivers[\u0027ovn\u0027].obj._nb_ovn"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @property"},{"line_number":97,"context_line":"    def _sb_ovn(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1fa4df85_586fffc4","line":94,"in_reply_to":"1fa4df85_6c1ecf71","updated":"2020-02-24 17:15:30.000000000","message":"Thanks for the review!\n\n1) Yeah, but it\u0027s referenced a lot. I was hoping we could find a different way to reference it altogether since this feels really ugly and looking pretty deep into the ml2 stuff. Like the trunk driver, being created inside the mech driver, has a nice reference to plugin_driver. That sure would be nice. :p But I don\u0027t see anything similar for l3. I can change it, but it will make the patch uglier. :D \n\n2) The mech driver won\u0027t do anything (at least anything requiring ovn_client) until that is initialized, so I was thinking that the l3 plugin would probably be safe as well. But if not, since we have a reference to the mech driver now, we should be able to just wait on the driver._post_fork_event which exists specifically for this reason.","commit_id":"d84f487f9ce7929b3318bce6de9ea8af4cb4396f"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"487826f755f633254a35f09b581e56dc033d6772","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        return self._ovn_client_inst"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @property"},{"line_number":92,"context_line":"    def _ovn(self):"},{"line_number":93,"context_line":"        return self._plugin_driver.nb_ovn"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_d96515e3","line":92,"range":{"start_line":92,"start_character":1,"end_line":92,"end_character":19},"updated":"2020-03-13 14:04:17.000000000","message":"I don\u0027t like a bit this broken naming convention between nb_ovn and sb_ovn. For me it would be better just to rename this property to be _nb_ovn to be consistent with _sb_ovn.","commit_id":"d92e71c297d84f767dfb9b2485e64853decce873"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"b6919247e26bfde722d2af0ae32aac61edc77822","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        return self._ovn_client_inst"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @property"},{"line_number":92,"context_line":"    def _ovn(self):"},{"line_number":93,"context_line":"        return self._plugin_driver.nb_ovn"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_5e1c8c12","line":92,"range":{"start_line":92,"start_character":1,"end_line":92,"end_character":19},"in_reply_to":"1fa4df85_d96515e3","updated":"2020-03-16 18:30:37.000000000","message":"+1, maybe for a follow-up patch","commit_id":"d92e71c297d84f767dfb9b2485e64853decce873"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"fb08a4373064ee64f9bc7e534d6a8a21af43d6fe","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        return self._ovn_client_inst"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @property"},{"line_number":92,"context_line":"    def _ovn(self):"},{"line_number":93,"context_line":"        return self._plugin_driver.nb_ovn"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    @property"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_05a33b51","line":92,"range":{"start_line":92,"start_character":1,"end_line":92,"end_character":19},"in_reply_to":"1fa4df85_d96515e3","updated":"2020-03-14 01:40:59.000000000","message":"Agreed. I generally try to keep aesthetic things like renaming, etc. in a separate patch just to simplify reviews and so if you have to revert a patch, you don\u0027t lose both changes.","commit_id":"d92e71c297d84f767dfb9b2485e64853decce873"}],"neutron/tests/functional/base.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"d8d3505e1a9b548b4322d73f6d1e3d93c56ccc77","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        self.l3_plugin._nb_ovn_idl.ovsdb_connection.stop()"},{"line_number":317,"context_line":"        self.l3_plugin._sb_ovn_idl.ovsdb_connection.stop()"},{"line_number":318,"context_line":"        # Stop our monitor connections"},{"line_number":319,"context_line":"        self.nb_api.ovsdb_connection.stop()"},{"line_number":320,"context_line":"        self.sb_api.ovsdb_connection.stop()"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"        if self.ovsdb_server_mgr:"},{"line_number":323,"context_line":"            self.ovsdb_server_mgr.stop()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_861011aa","side":"PARENT","line":320,"range":{"start_line":319,"start_character":0,"end_line":320,"end_character":43},"updated":"2020-03-05 22:38:48.000000000","message":"These are redundant from self.stop() since self.mech_driver._nb_ovn \u003d\u003d self.nb_api etc.","commit_id":"77616fd1773ebca4a6261eec91b2fc5c4ece8e77"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"d8d3505e1a9b548b4322d73f6d1e3d93c56ccc77","unresolved":false,"context_lines":[{"line_number":324,"context_line":"        if self.ovn_northd_mgr:"},{"line_number":325,"context_line":"            self.ovn_northd_mgr.stop()"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        self.mech_driver._nb_ovn \u003d None"},{"line_number":328,"context_line":"        self.mech_driver._sb_ovn \u003d None"},{"line_number":329,"context_line":"        self.l3_plugin._nb_ovn_idl \u003d None"},{"line_number":330,"context_line":"        self.l3_plugin._sb_ovn_idl \u003d None"},{"line_number":331,"context_line":"        self.nb_api.ovsdb_connection \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_e6730515","side":"PARENT","line":328,"range":{"start_line":327,"start_character":0,"end_line":328,"end_character":39},"updated":"2020-03-05 22:38:48.000000000","message":"The post_fork_initialize code will re-assign these with no checks for it already being set, so these don\u0027t do anything.","commit_id":"77616fd1773ebca4a6261eec91b2fc5c4ece8e77"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"d8d3505e1a9b548b4322d73f6d1e3d93c56ccc77","unresolved":false,"context_lines":[{"line_number":328,"context_line":"        self.mech_driver._sb_ovn \u003d None"},{"line_number":329,"context_line":"        self.l3_plugin._nb_ovn_idl \u003d None"},{"line_number":330,"context_line":"        self.l3_plugin._sb_ovn_idl \u003d None"},{"line_number":331,"context_line":"        self.nb_api.ovsdb_connection \u003d None"},{"line_number":332,"context_line":"        self.sb_api.ovsdb_connection \u003d None"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        self.ovsdb_server_mgr.delete_dbs()"},{"line_number":335,"context_line":"        self._start_ovsdb_server_and_idls()"}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_064ae1aa","side":"PARENT","line":332,"range":{"start_line":331,"start_character":0,"end_line":332,"end_character":43},"updated":"2020-03-05 22:38:48.000000000","message":"since self.nb_api \u003d\u003d self.mech_driver._nb_ovn, this too doesn\u0027t do anything since start_ovsdb_server_and_idls calls post_fork_initialize which reassigns self.nb_api etc.","commit_id":"77616fd1773ebca4a6261eec91b2fc5c4ece8e77"}],"tools/migrate_names.txt":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"8930c61c27b946d9288eda2b071db88f7a622aff","unresolved":false,"context_lines":[{"line_number":34,"context_line":"networking_ovn/ml2/mech_driver.py       neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py"},{"line_number":35,"context_line":"networking_ovn/ml2/qos_driver.py        neutron/services/qos/drivers/ovn/driver.py"},{"line_number":36,"context_line":"networking_ovn/ml2/trunk_driver.py      neutron/services/trunk/drivers/ovn/trunk_driver.py"},{"line_number":37,"context_line":"networking_ovn/l3/l3_ovn.py             neutron/services/ovn_l3/plugin.py"},{"line_number":38,"context_line":"networking_ovn/l3/l3_ovn_scheduler.py   neutron/scheduler/ovn_l3_scheduler.py"},{"line_number":39,"context_line":"networking_ovn/tests/unit/ml2/test_mech_driver.py neutron/tests/unit/plugins/ml2/drivers/ovn/mech_driver/test_mech_driver.py"},{"line_number":40,"context_line":"networking_ovn/tests/unit/ml2/test_qos_driver.py neutron/tests/unit/services/qos/drivers/ovn/test_driver.py"}],"source_content_type":"text/plain","patch_set":1,"id":"3fa7e38b_7d3950a0","line":37,"updated":"2020-02-20 22:36:42.000000000","message":"unrelated","commit_id":"ccf609dd79371862b9aca84333d00fb4552bb3ff"}]}
