)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"9098a531a72dc04beab152800bd7da1a95d86bd4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a1d2d28d_29cfe764","updated":"2024-02-22 12:06:17.000000000","message":"Just a rebase","commit_id":"31c241ce6cf98d8ac7bd7c3472da93dbf592cdb8"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"e074a173ddcd33163d2896448bb37640667768e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6ffd8941_0cafa0b7","updated":"2024-02-22 10:56:30.000000000","message":"rebased it with changes of upstream change","commit_id":"31c241ce6cf98d8ac7bd7c3472da93dbf592cdb8"}],"ovn_bgp_agent/drivers/openstack/nb_ovn_bgp_driver.py":[{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"bfde1c7cf572f4eef6027d73e50771771bbe6a94","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        self._post_start_event \u003d threading.Event()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @property"},{"line_number":61,"context_line":"    def nb_idl(self) -\u003e ovn.OvsdbNbOvnIdl:"},{"line_number":62,"context_line":"        if not self._nb_idl:"},{"line_number":63,"context_line":"            self._post_start_event.wait()"},{"line_number":64,"context_line":"        return self._nb_idl"}],"source_content_type":"text/x-python","patch_set":1,"id":"4482f955_d91ec976","line":61,"updated":"2024-01-29 14:55:35.000000000","message":"This will make vscode understand the methods within the property.","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"26ce8d47e29913dd0efbbf739f07d1c5505dc2c4","unresolved":true,"context_lines":[{"line_number":58,"context_line":"        self._post_start_event \u003d threading.Event()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @property"},{"line_number":61,"context_line":"    def nb_idl(self) -\u003e ovn.OvsdbNbOvnIdl:"},{"line_number":62,"context_line":"        if not self._nb_idl:"},{"line_number":63,"context_line":"            self._post_start_event.wait()"},{"line_number":64,"context_line":"        return self._nb_idl"}],"source_content_type":"text/x-python","patch_set":1,"id":"c294c45b_0b36ff0c","line":61,"in_reply_to":"4482f955_d91ec976","updated":"2024-02-02 09:55:47.000000000","message":"We haven\u0027t been using annotations since not long ago we also had to support python 2.X compatibility, but I like it, I think we should use it more.","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"e074a173ddcd33163d2896448bb37640667768e4","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        self._post_start_event \u003d threading.Event()"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @property"},{"line_number":61,"context_line":"    def nb_idl(self) -\u003e ovn.OvsdbNbOvnIdl:"},{"line_number":62,"context_line":"        if not self._nb_idl:"},{"line_number":63,"context_line":"            self._post_start_event.wait()"},{"line_number":64,"context_line":"        return self._nb_idl"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ff0c3ed_8c79574b","line":61,"in_reply_to":"c294c45b_0b36ff0c","updated":"2024-02-22 10:56:30.000000000","message":"Acknowledged","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"bfde1c7cf572f4eef6027d73e50771771bbe6a94","unresolved":true,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.ovn_routing_tables \u003d {}  # {\u0027br-ex\u0027: 200}"},{"line_number":85,"context_line":"        # {\u0027br-ex\u0027: [route1, route2]}"},{"line_number":86,"context_line":"        self.ovn_routing_tables_routes \u003d collections.defaultdict(list)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.ovn_local_cr_lrps \u003d {}"},{"line_number":89,"context_line":"        self.ovn_local_lrps \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"6adc5fb6_1742b26d","line":86,"updated":"2024-01-29 14:55:35.000000000","message":"Not a real requirement, but a list is expected when used in linux_net.","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"e074a173ddcd33163d2896448bb37640667768e4","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"        self.ovn_routing_tables \u003d {}  # {\u0027br-ex\u0027: 200}"},{"line_number":85,"context_line":"        # {\u0027br-ex\u0027: [route1, route2]}"},{"line_number":86,"context_line":"        self.ovn_routing_tables_routes \u003d collections.defaultdict(list)"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"        self.ovn_local_cr_lrps \u003d {}"},{"line_number":89,"context_line":"        self.ovn_local_lrps \u003d {}"}],"source_content_type":"text/x-python","patch_set":1,"id":"44dc020c_57d8b728","line":86,"in_reply_to":"6adc5fb6_1742b26d","updated":"2024-02-22 10:56:30.000000000","message":"Done","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"bfde1c7cf572f4eef6027d73e50771771bbe6a94","unresolved":true,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        logical_switch \u003d port.external_ids.get("},{"line_number":225,"context_line":"            constants.OVN_LS_NAME_EXT_ID_KEY)"},{"line_number":226,"context_line":"        if not self.is_ls_exposed(logical_switch):"},{"line_number":227,"context_line":"            return"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        _, bridge_device, bridge_vlan \u003d self._get_provider_ls_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"4e50f69b_40192121","line":226,"updated":"2024-01-29 14:55:35.000000000","message":"These (and other updates like this), are using the method introduced in this change:\nhttps://review.opendev.org/c/openstack/ovn-bgp-agent/+/906111\n\nThis code is used multiple times in similar manner, so re-using the cache here makes more sense.","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"},{"author":{"_account_id":25468,"name":"Michel Nederlof","email":"michel@nederlof.info","username":"pellucid"},"change_message_id":"e074a173ddcd33163d2896448bb37640667768e4","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        logical_switch \u003d port.external_ids.get("},{"line_number":225,"context_line":"            constants.OVN_LS_NAME_EXT_ID_KEY)"},{"line_number":226,"context_line":"        if not self.is_ls_exposed(logical_switch):"},{"line_number":227,"context_line":"            return"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        _, bridge_device, bridge_vlan \u003d self._get_provider_ls_info("}],"source_content_type":"text/x-python","patch_set":1,"id":"c7c58259_f045d2e9","line":226,"in_reply_to":"4e50f69b_40192121","updated":"2024-02-22 10:56:30.000000000","message":"Done","commit_id":"b5bb527a228547f842ce076eb455c267669b6aec"}]}
