)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"4af1f0de_8e603225","updated":"2022-03-04 09:12:32.000000000","message":"Nice patch!","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f60e7364223f4b92d51bf9eb21ed7d337ca11208","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ea5815e5_a7d8805c","in_reply_to":"4af1f0de_8e603225","updated":"2022-03-04 12:08:50.000000000","message":"Hi, Rodolfo!\nThanks for the review!","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"6eb8bfe10b5c627e04a7a8ff7d6ef5971ebb03f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"db2f4b31_6c6a9ffb","updated":"2022-03-14 12:00:55.000000000","message":"Hi @Terry,\ncan you take a look on this, please?\nThanks.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b43bd8c9_94dcc462","updated":"2022-03-25 15:38:50.000000000","message":"Thanks a lot for the patch. I\u0027m always impressed by how very well your patches fit in with the rest of the ovsdbapp. Good stuff.\n\nJust a couple of questions in the code. One may just be an API documentation update. I haven\u0027t every used the vtep stuff, so I\u0027ll be relying on your expertise there.\n\nre: venv, things broke in the neutron gate when we presumed IC support existed, so my gut feeling would be to have the vtep stuff as a separate class like we had to do for IC. ","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9bca5dce74bff5320b73f462eff7312505faf6df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d5d9ed24_cdb6b5f1","in_reply_to":"db2f4b31_6c6a9ffb","updated":"2022-03-22 03:35:43.000000000","message":"Sorry, I\u0027ve been caught up with a lot of broken stuff. I\u0027ll make sure I take a look at these patches this week.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"e8050c663c218af93899412736b93e6e02e9d1f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3fe74341_d187ef62","updated":"2022-05-04 10:52:09.000000000","message":"Hi @Terry,\nwhat else is needed for this patch set to be accepted?","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":33896,"name":"Vladislav Odintsov","email":"odivlad@gmail.com","username":"odivlad"},"change_message_id":"d85f4309d6ccd16da411468026f550f9e5853a67","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"55bdb12c_e731bc5f","updated":"2022-06-30 12:30:55.000000000","message":"Hi, it looks like this patch is reviewed. What else should be done for this to get merged?","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"c8cd7d50bd6645ca45f53e9af10bd6236bed986b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"966508a8_75a2d50b","updated":"2022-03-30 13:42:11.000000000","message":"Looks good to me! Thanks so much for contributing this.","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":23804,"name":"Daniel Alvarez","email":"dalvarez@redhat.com","username":"dalvarez"},"change_message_id":"e72b05b67807bffe56e01d2c900c37bcf020fc18","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d5fc28af_248e2088","in_reply_to":"3fe74341_d187ef62","updated":"2022-07-12 12:11:53.000000000","message":"Hey Anton, there seems to be an unaddressed question here:\nhttps://review.opendev.org/c/openstack/ovsdbapp/+/828720/7/ovsdbapp/schema/hardware_vtep/commands.py#286","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"22ee96cddb31fc395e29b86b78c7f6c4922bb503","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9a2ece15_98df0eb0","in_reply_to":"55bdb12c_e731bc5f","updated":"2022-07-13 09:54:58.000000000","message":"Ack","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"eb772801c7127962f34a81d3a37c0a0b21fef3e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c0e062db_ff433ab8","in_reply_to":"966508a8_75a2d50b","updated":"2022-03-30 13:46:29.000000000","message":"Thanks for the review!","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"d0dbc5f75854126404ad6299dfaa7c813bb73df1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"af1c29a3_78399457","in_reply_to":"d5fc28af_248e2088","updated":"2022-07-12 14:23:03.000000000","message":"Hey Daniel!\nSorry, I forgot to answer that comment, but I fixed documentation string here: https://review.opendev.org/c/openstack/ovsdbapp/+/828720/7/ovsdbapp/schema/hardware_vtep/api.py#190 .\nThe return value is list of lists of MACs, that reflects \u0027vtep-ctl list-{remote,local}-macs\u0027 behavior.","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"}],"ovsdbapp/schema/hardware_vtep/commands.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":70,"context_line":"    def run_idl(self, txn):"},{"line_number":71,"context_line":"        config \u003d get_global_record(self.api)"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            pswitch \u003d self.api.lookup(self.table_name, self.pswitch)"},{"line_number":74,"context_line":"            config.delvalue(\u0027switches\u0027, pswitch)"},{"line_number":75,"context_line":"        except idlutils.RowNotFound as e:"},{"line_number":76,"context_line":"            if self.if_exists:"}],"source_content_type":"text/x-python","patch_set":3,"id":"885a2924_a4a617bd","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":19},"updated":"2022-03-04 09:12:32.000000000","message":"You are deleting the pswitch from \"Config\" table. But you should also delete the pswitch register:\n\n pswitch.delete()","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":70,"context_line":"    def run_idl(self, txn):"},{"line_number":71,"context_line":"        config \u003d get_global_record(self.api)"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            pswitch \u003d self.api.lookup(self.table_name, self.pswitch)"},{"line_number":74,"context_line":"            config.delvalue(\u0027switches\u0027, pswitch)"},{"line_number":75,"context_line":"        except idlutils.RowNotFound as e:"},{"line_number":76,"context_line":"            if self.if_exists:"}],"source_content_type":"text/x-python","patch_set":3,"id":"f6ef3a63_9ac5c369","line":73,"range":{"start_line":73,"start_character":12,"end_line":73,"end_character":19},"in_reply_to":"885a2924_a4a617bd","updated":"2022-03-25 15:38:50.000000000","message":"This was resolved.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def run_idl(self, txn):"},{"line_number":127,"context_line":"        pswitch \u003d self.api.lookup(\u0027Physical_Switch\u0027, self.pswitch)"},{"line_number":128,"context_line":"        port \u003d next((p for p in pswitch.ports"},{"line_number":129,"context_line":"                     if idlutils.row_match(p, self.conditions)), None)"},{"line_number":130,"context_line":"        if not port:"},{"line_number":131,"context_line":"            if self.if_exists:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9b77a8ed_8a6ea738","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":12},"updated":"2022-03-04 09:12:32.000000000","message":"Same comment as before, you need to delete the port register:\n  port.delete()","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def run_idl(self, txn):"},{"line_number":127,"context_line":"        pswitch \u003d self.api.lookup(\u0027Physical_Switch\u0027, self.pswitch)"},{"line_number":128,"context_line":"        port \u003d next((p for p in pswitch.ports"},{"line_number":129,"context_line":"                     if idlutils.row_match(p, self.conditions)), None)"},{"line_number":130,"context_line":"        if not port:"},{"line_number":131,"context_line":"            if self.if_exists:"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a9de6ac_cf0dfad3","line":128,"range":{"start_line":128,"start_character":8,"end_line":128,"end_character":12},"in_reply_to":"9b77a8ed_8a6ea738","updated":"2022-03-25 15:38:50.000000000","message":"This was resolved.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":284,"context_line":"        switch \u003d self.api.lookup(\u0027Logical_Switch\u0027, self.switch)"},{"line_number":285,"context_line":"        self.result \u003d []"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        for table_name in self.table_names:"},{"line_number":288,"context_line":"            self.result.append([rowview.RowView(mac)"},{"line_number":289,"context_line":"                                for mac in idlutils.rows_by_value("},{"line_number":290,"context_line":"                                    self.api.idl, table_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"eefc329d_b83a64d1","line":287,"range":{"start_line":287,"start_character":26,"end_line":287,"end_character":42},"updated":"2022-03-04 09:12:32.000000000","message":"+1 very nice!","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":284,"context_line":"        switch \u003d self.api.lookup(\u0027Logical_Switch\u0027, self.switch)"},{"line_number":285,"context_line":"        self.result \u003d []"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        for table_name in self.table_names:"},{"line_number":288,"context_line":"            self.result.append([rowview.RowView(mac)"},{"line_number":289,"context_line":"                                for mac in idlutils.rows_by_value("},{"line_number":290,"context_line":"                                    self.api.idl, table_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"8b082ee8_2a456ea4","line":287,"range":{"start_line":287,"start_character":26,"end_line":287,"end_character":42},"in_reply_to":"eefc329d_b83a64d1","updated":"2022-03-25 15:38:50.000000000","message":"+1","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":true,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        for table_name in self.table_names:"},{"line_number":285,"context_line":"            self.result.append([rowview.RowView(mac)"},{"line_number":286,"context_line":"                                for mac in idlutils.rows_by_value("},{"line_number":287,"context_line":"                                    self.api.idl, table_name,"},{"line_number":288,"context_line":"                                    \u0027logical_switch\u0027, switch)])"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"302e0ab1_d26084ec","line":286,"updated":"2022-03-25 15:38:50.000000000","message":"Is the intention to have the list_macs command return a list of lists? Or should this be self.result.extend(...)? It looks like the API def for list_{local,remote}_macs just specifies \"RowView list result\". If it is supposed to be a list of lists, we should document that and some defined order of the results.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        for table_name in self.table_names:"},{"line_number":285,"context_line":"            self.result.append([rowview.RowView(mac)"},{"line_number":286,"context_line":"                                for mac in idlutils.rows_by_value("},{"line_number":287,"context_line":"                                    self.api.idl, table_name,"},{"line_number":288,"context_line":"                                    \u0027logical_switch\u0027, switch)])"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"a00fed68_65471fa1","line":286,"in_reply_to":"302e0ab1_d26084ec","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"62afe52c6e273284ebe2ea2cc68f69ddef36ecaa","unresolved":true,"context_lines":[{"line_number":19,"context_line":"    message \u003d \"Table \u0027Global\u0027 is empty\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"def get_global_record(api):"},{"line_number":23,"context_line":"    # there should be only one record in \u0027Global\u0027 table"},{"line_number":24,"context_line":"    try:"},{"line_number":25,"context_line":"        return next((r for r in api.tables[\u0027Global\u0027].rows.values()))"}],"source_content_type":"text/x-python","patch_set":7,"id":"d0383e0a_527aa128","line":22,"updated":"2022-07-20 14:04:17.000000000","message":"nit: I would use db_list_rows","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"62afe52c6e273284ebe2ea2cc68f69ddef36ecaa","unresolved":true,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    def run_idl(self, txn):"},{"line_number":46,"context_line":"        config \u003d get_global_record(self.api)"},{"line_number":47,"context_line":"        pswitch \u003d idlutils.row_by_value(self.api.idl, self.table_name, \u0027name\u0027,"},{"line_number":48,"context_line":"                                        self.pswitch, None)"},{"line_number":49,"context_line":"        if pswitch:"},{"line_number":50,"context_line":"            if self.may_exist:"},{"line_number":51,"context_line":"                self.result \u003d rowview.RowView(pswitch)"}],"source_content_type":"text/x-python","patch_set":7,"id":"6be36f1b_482e0012","line":48,"range":{"start_line":47,"start_character":8,"end_line":48,"end_character":59},"updated":"2022-07-20 14:04:17.000000000","message":"why not lookup() with a default value (that won\u0027t raise an exception)?","commit_id":"06d25c29800dabc66d6727ef1161bebec7d21ad1"}],"ovsdbapp/tests/functional/schema/hardware_vtep/test_impl_idl.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":77,"context_line":"    def test_del_ps_by_name(self):"},{"line_number":78,"context_line":"        name \u003d utils.get_rand_device_name()"},{"line_number":79,"context_line":"        self._add_ps(name)"},{"line_number":80,"context_line":"        self.api.del_ps(name).execute(check_error\u003dTrue)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_del_ps_no_exist(self):"},{"line_number":83,"context_line":"        name \u003d utils.get_rand_device_name()"}],"source_content_type":"text/x-python","patch_set":3,"id":"1879870f_7749f4ba","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":55},"updated":"2022-03-04 09:12:32.000000000","message":"Please, after the deletion, use the list/get commands to retrieve the PS again.\n\nAlso check the PS is removed from \"Global.switches\"","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    def test_del_ps_by_name(self):"},{"line_number":78,"context_line":"        name \u003d utils.get_rand_device_name()"},{"line_number":79,"context_line":"        self._add_ps(name)"},{"line_number":80,"context_line":"        self.api.del_ps(name).execute(check_error\u003dTrue)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_del_ps_no_exist(self):"},{"line_number":83,"context_line":"        name \u003d utils.get_rand_device_name()"}],"source_content_type":"text/x-python","patch_set":3,"id":"c4a15541_c612260e","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":55},"in_reply_to":"1879870f_7749f4ba","updated":"2022-03-25 15:38:50.000000000","message":"This has been resolved.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":141,"context_line":"    def test_del_port(self):"},{"line_number":142,"context_line":"        port \u003d self._add_port()"},{"line_number":143,"context_line":"        self.api.del_port(self.ps.name, port.name).execute(check_error\u003dTrue)"},{"line_number":144,"context_line":"        self.assertNotIn(port.uuid, self.table.rows)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_del_port_by_name(self):"},{"line_number":147,"context_line":"        name \u003d utils.get_rand_device_name()"}],"source_content_type":"text/x-python","patch_set":3,"id":"e7f10d6d_b0931a0f","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":1},"updated":"2022-03-04 09:12:32.000000000","message":"Same comment here: retrieve the port using the list/get commands.\n\nAlso check the port is first added to \"Physical_Switch.ports\" and then removed.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    def test_del_port(self):"},{"line_number":142,"context_line":"        port \u003d self._add_port()"},{"line_number":143,"context_line":"        self.api.del_port(self.ps.name, port.name).execute(check_error\u003dTrue)"},{"line_number":144,"context_line":"        self.assertNotIn(port.uuid, self.table.rows)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def test_del_port_by_name(self):"},{"line_number":147,"context_line":"        name \u003d utils.get_rand_device_name()"}],"source_content_type":"text/x-python","patch_set":3,"id":"70abd363_4e5566e0","line":144,"range":{"start_line":144,"start_character":0,"end_line":144,"end_character":1},"in_reply_to":"e7f10d6d_b0931a0f","updated":"2022-03-25 15:38:50.000000000","message":"This has been resolved.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":350,"context_line":"    def test_clear_local_macs(self):"},{"line_number":351,"context_line":"        ucast_table \u003d self.api.tables[\u0027Ucast_Macs_Local\u0027]"},{"line_number":352,"context_line":"        mcast_table \u003d self.api.tables[\u0027Mcast_Macs_Local\u0027]"},{"line_number":353,"context_line":"        self.api.clear_local_macs(self.ls.name).execute(check_error\u003dTrue)"},{"line_number":354,"context_line":"        for table in [ucast_table, mcast_table]:"},{"line_number":355,"context_line":"            self.assertEqual(len(table.rows), 0)"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bc2c81e0_67002498","line":353,"range":{"start_line":353,"start_character":8,"end_line":353,"end_character":73},"updated":"2022-03-04 09:12:32.000000000","message":"Can you check, before deleting the MACs and asserting L355, that we have registers in those tables?","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":350,"context_line":"    def test_clear_local_macs(self):"},{"line_number":351,"context_line":"        ucast_table \u003d self.api.tables[\u0027Ucast_Macs_Local\u0027]"},{"line_number":352,"context_line":"        mcast_table \u003d self.api.tables[\u0027Mcast_Macs_Local\u0027]"},{"line_number":353,"context_line":"        self.api.clear_local_macs(self.ls.name).execute(check_error\u003dTrue)"},{"line_number":354,"context_line":"        for table in [ucast_table, mcast_table]:"},{"line_number":355,"context_line":"            self.assertEqual(len(table.rows), 0)"},{"line_number":356,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b269668e_33ddac86","line":353,"range":{"start_line":353,"start_character":8,"end_line":353,"end_character":73},"in_reply_to":"bc2c81e0_67002498","updated":"2022-03-25 15:38:50.000000000","message":"This is resolved.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":357,"context_line":"    def test_clear_remote_macs(self):"},{"line_number":358,"context_line":"        ucast_table \u003d self.api.tables[\u0027Ucast_Macs_Remote\u0027]"},{"line_number":359,"context_line":"        mcast_table \u003d self.api.tables[\u0027Mcast_Macs_Remote\u0027]"},{"line_number":360,"context_line":"        self.api.clear_remote_macs(self.ls.name).execute(check_error\u003dTrue)"},{"line_number":361,"context_line":"        for table in [ucast_table, mcast_table]:"},{"line_number":362,"context_line":"            self.assertEqual(len(table.rows), 0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"82f83414_34b2e4c3","line":360,"range":{"start_line":360,"start_character":7,"end_line":360,"end_character":74},"updated":"2022-03-04 09:12:32.000000000","message":"ditto","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":false,"context_lines":[{"line_number":357,"context_line":"    def test_clear_remote_macs(self):"},{"line_number":358,"context_line":"        ucast_table \u003d self.api.tables[\u0027Ucast_Macs_Remote\u0027]"},{"line_number":359,"context_line":"        mcast_table \u003d self.api.tables[\u0027Mcast_Macs_Remote\u0027]"},{"line_number":360,"context_line":"        self.api.clear_remote_macs(self.ls.name).execute(check_error\u003dTrue)"},{"line_number":361,"context_line":"        for table in [ucast_table, mcast_table]:"},{"line_number":362,"context_line":"            self.assertEqual(len(table.rows), 0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"6540d95a_1bfe77ea","line":360,"range":{"start_line":360,"start_character":7,"end_line":360,"end_character":74},"in_reply_to":"82f83414_34b2e4c3","updated":"2022-03-25 15:38:50.000000000","message":"This is resolved.","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":true,"context_lines":[{"line_number":327,"context_line":"            self.api, utils.get_rand_device_name())).obj"},{"line_number":328,"context_line":"        self.mac \u003d \u00270a:00:d0:af:20:c0\u0027"},{"line_number":329,"context_line":"        self.ip \u003d \u0027192.168.0.1\u0027"},{"line_number":330,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-ucast-local\u0027,"},{"line_number":331,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":332,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-mcast-local\u0027,"},{"line_number":333,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":334,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-ucast-remote\u0027,"},{"line_number":335,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":336,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-mcast-remote\u0027,"},{"line_number":337,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":338,"context_line":"        for args in ["},{"line_number":339,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-ucast-local\u0027, self.ls.name, self.mac],"},{"line_number":340,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-mcast-local\u0027, self.ls.name, self.mac, self.ip],"},{"line_number":341,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-ucast-remote\u0027, self.ls.name, self.mac],"},{"line_number":342,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-mcast-remote\u0027, self.ls.name, self.mac, self.ip]"},{"line_number":343,"context_line":"        ]:"},{"line_number":344,"context_line":"            self.addCleanup(self.ovsvenv.call, args)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_list_local_macs(self):"},{"line_number":347,"context_line":"        local_macs \u003d self.api.list_local_macs("}],"source_content_type":"text/x-python","patch_set":5,"id":"8a320a2d_a3ea46cf","line":344,"range":{"start_line":330,"start_character":8,"end_line":344,"end_character":52},"updated":"2022-03-25 15:38:50.000000000","message":"Just curious, are these methods that would be useful to add to the ovsdbapp api at some point?","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"610b5b77b8a571ef970393aaa67000c59ba49f0b","unresolved":true,"context_lines":[{"line_number":327,"context_line":"            self.api, utils.get_rand_device_name())).obj"},{"line_number":328,"context_line":"        self.mac \u003d \u00270a:00:d0:af:20:c0\u0027"},{"line_number":329,"context_line":"        self.ip \u003d \u0027192.168.0.1\u0027"},{"line_number":330,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-ucast-local\u0027,"},{"line_number":331,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":332,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-mcast-local\u0027,"},{"line_number":333,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":334,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-ucast-remote\u0027,"},{"line_number":335,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":336,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-mcast-remote\u0027,"},{"line_number":337,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":338,"context_line":"        for args in ["},{"line_number":339,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-ucast-local\u0027, self.ls.name, self.mac],"},{"line_number":340,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-mcast-local\u0027, self.ls.name, self.mac, self.ip],"},{"line_number":341,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-ucast-remote\u0027, self.ls.name, self.mac],"},{"line_number":342,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-mcast-remote\u0027, self.ls.name, self.mac, self.ip]"},{"line_number":343,"context_line":"        ]:"},{"line_number":344,"context_line":"            self.addCleanup(self.ovsvenv.call, args)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_list_local_macs(self):"},{"line_number":347,"context_line":"        local_macs \u003d self.api.list_local_macs("}],"source_content_type":"text/x-python","patch_set":5,"id":"c9184a7c_673473df","line":344,"range":{"start_line":330,"start_character":8,"end_line":344,"end_character":52},"in_reply_to":"8a320a2d_a3ea46cf","updated":"2022-03-28 09:16:49.000000000","message":"Perhaps, though I didn\u0027t use them via \u0027vtep-ctl\u0027, so I haven\u0027t implemented them here.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":327,"context_line":"            self.api, utils.get_rand_device_name())).obj"},{"line_number":328,"context_line":"        self.mac \u003d \u00270a:00:d0:af:20:c0\u0027"},{"line_number":329,"context_line":"        self.ip \u003d \u0027192.168.0.1\u0027"},{"line_number":330,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-ucast-local\u0027,"},{"line_number":331,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":332,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-mcast-local\u0027,"},{"line_number":333,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":334,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-ucast-remote\u0027,"},{"line_number":335,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":336,"context_line":"        self.ovsvenv.call([\u0027vtep-ctl\u0027, \u0027add-mcast-remote\u0027,"},{"line_number":337,"context_line":"                           self.ls.name, self.mac, self.ip])"},{"line_number":338,"context_line":"        for args in ["},{"line_number":339,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-ucast-local\u0027, self.ls.name, self.mac],"},{"line_number":340,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-mcast-local\u0027, self.ls.name, self.mac, self.ip],"},{"line_number":341,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-ucast-remote\u0027, self.ls.name, self.mac],"},{"line_number":342,"context_line":"            [\u0027vtep-ctl\u0027, \u0027del-mcast-remote\u0027, self.ls.name, self.mac, self.ip]"},{"line_number":343,"context_line":"        ]:"},{"line_number":344,"context_line":"            self.addCleanup(self.ovsvenv.call, args)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_list_local_macs(self):"},{"line_number":347,"context_line":"        local_macs \u003d self.api.list_local_macs("}],"source_content_type":"text/x-python","patch_set":5,"id":"544856c3_a2319495","line":344,"range":{"start_line":330,"start_character":8,"end_line":344,"end_character":52},"in_reply_to":"c9184a7c_673473df","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        ]:"},{"line_number":344,"context_line":"            self.addCleanup(self.ovsvenv.call, args)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_list_local_macs(self):"},{"line_number":347,"context_line":"        local_macs \u003d self.api.list_local_macs("},{"line_number":348,"context_line":"            self.ls.name).execute(check_error\u003dTrue)"},{"line_number":349,"context_line":"        for macs in local_macs:"}],"source_content_type":"text/x-python","patch_set":5,"id":"acf156c2_031a0ce1","line":346,"updated":"2022-03-25 15:38:50.000000000","message":"This and the following tests look to me like they are treating the result of list_*_macs() as the list of lists that it is (which answers my previous question about that), but the api def doesn\u0027t mention that that is the result type. If we want to keep the unicast/multicast results separate, it seems like we should update the api docs and either a) document the order of the lists of results or b) use something like a {\u0027ucast\u0027: [...], \u0027mcast\u0027: [...]}.\n\nI\u0027ve never used the vtep stuff, so I\u0027m not sure what the most useful format of the results would be. Just a little concerned about it being \"whatever the order of table_names in the Command definition\" is without being documented.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":343,"context_line":"        ]:"},{"line_number":344,"context_line":"            self.addCleanup(self.ovsvenv.call, args)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_list_local_macs(self):"},{"line_number":347,"context_line":"        local_macs \u003d self.api.list_local_macs("},{"line_number":348,"context_line":"            self.ls.name).execute(check_error\u003dTrue)"},{"line_number":349,"context_line":"        for macs in local_macs:"}],"source_content_type":"text/x-python","patch_set":5,"id":"6aa4d4ac_50af6152","line":346,"in_reply_to":"5a887c07_d8faeac0","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"610b5b77b8a571ef970393aaa67000c59ba49f0b","unresolved":true,"context_lines":[{"line_number":343,"context_line":"        ]:"},{"line_number":344,"context_line":"            self.addCleanup(self.ovsvenv.call, args)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_list_local_macs(self):"},{"line_number":347,"context_line":"        local_macs \u003d self.api.list_local_macs("},{"line_number":348,"context_line":"            self.ls.name).execute(check_error\u003dTrue)"},{"line_number":349,"context_line":"        for macs in local_macs:"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a887c07_d8faeac0","line":346,"in_reply_to":"acf156c2_031a0ce1","updated":"2022-03-28 09:16:49.000000000","message":"Ok, I have documented the order of lists in hardware_vtep/api.py","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"}],"ovsdbapp/venv.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027local\u0027, \u0027share\u0027, \u0027openvswitch\u0027),"},{"line_number":33,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027share\u0027, \u0027openvswitch\u0027))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    OVS_SCHEMA \u003d \u0027vswitch.ovsschema\u0027"},{"line_number":36,"context_line":"    VTEP_SCHEMA \u003d \u0027vtep.ovsschema\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, venv, ovsdir\u003dNone, vtepdir\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"99891e96_67760043","line":35,"updated":"2022-03-25 15:38:50.000000000","message":"Should this change just be a separate subclass like we have for OVN?","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"a5fbee08bd821f4f1921cb10cfd0882f0fb86b0d","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027local\u0027, \u0027share\u0027, \u0027openvswitch\u0027),"},{"line_number":33,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027share\u0027, \u0027openvswitch\u0027))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    OVS_SCHEMA \u003d \u0027vswitch.ovsschema\u0027"},{"line_number":36,"context_line":"    VTEP_SCHEMA \u003d \u0027vtep.ovsschema\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, venv, ovsdir\u003dNone, vtepdir\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"bd7c2b57_df6e6f3c","line":35,"in_reply_to":"57770ccb_9addc3db","updated":"2022-03-29 20:29:17.000000000","message":"As an example, both ubuntu and red hat distros have a separate package for openvswitch-vtep.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"610b5b77b8a571ef970393aaa67000c59ba49f0b","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027local\u0027, \u0027share\u0027, \u0027openvswitch\u0027),"},{"line_number":33,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027share\u0027, \u0027openvswitch\u0027))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    OVS_SCHEMA \u003d \u0027vswitch.ovsschema\u0027"},{"line_number":36,"context_line":"    VTEP_SCHEMA \u003d \u0027vtep.ovsschema\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, venv, ovsdir\u003dNone, vtepdir\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"57770ccb_9addc3db","line":35,"in_reply_to":"99891e96_67760043","updated":"2022-03-28 09:16:49.000000000","message":"I have added vtep setup here, because as far as I know vtep is always a part of ovs.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027local\u0027, \u0027share\u0027, \u0027openvswitch\u0027),"},{"line_number":33,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027share\u0027, \u0027openvswitch\u0027))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    OVS_SCHEMA \u003d \u0027vswitch.ovsschema\u0027"},{"line_number":36,"context_line":"    VTEP_SCHEMA \u003d \u0027vtep.ovsschema\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, venv, ovsdir\u003dNone, vtepdir\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"69b42fa7_b90bf0a4","line":35,"in_reply_to":"a481edb3_a955e074","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"28a72379b30ca88bd88cf6a5b784335a48b8e110","unresolved":true,"context_lines":[{"line_number":32,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027local\u0027, \u0027share\u0027, \u0027openvswitch\u0027),"},{"line_number":33,"context_line":"        os.path.join(os.path.sep, \u0027usr\u0027, \u0027share\u0027, \u0027openvswitch\u0027))"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    OVS_SCHEMA \u003d \u0027vswitch.ovsschema\u0027"},{"line_number":36,"context_line":"    VTEP_SCHEMA \u003d \u0027vtep.ovsschema\u0027"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __init__(self, venv, ovsdir\u003dNone, vtepdir\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"a481edb3_a955e074","line":35,"in_reply_to":"bd7c2b57_df6e6f3c","updated":"2022-03-30 12:55:14.000000000","message":"Ok, I moved this change to separate class.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":true,"context_lines":[{"line_number":113,"context_line":"        self.init_processes()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def setup_dbs(self):"},{"line_number":116,"context_line":"        for db_filename, schema in zip([\u0027conf.db\u0027, \u0027vtep.db\u0027],"},{"line_number":117,"context_line":"                                       [self.ovs_schema, self.vtep_schema]):"},{"line_number":118,"context_line":"            self.create_db(db_filename, schema)"},{"line_number":119,"context_line":"            self.ovsdb_server_dbs.append(db_filename)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1afc1a73_7fad6ac7","line":116,"updated":"2022-03-25 15:38:50.000000000","message":"For example, re: a separate subclass: this seems to assume that vtep is something we want to set up, regardless of whether we want it/have passed in vtepdir.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.init_processes()"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    def setup_dbs(self):"},{"line_number":116,"context_line":"        for db_filename, schema in zip([\u0027conf.db\u0027, \u0027vtep.db\u0027],"},{"line_number":117,"context_line":"                                       [self.ovs_schema, self.vtep_schema]):"},{"line_number":118,"context_line":"            self.create_db(db_filename, schema)"},{"line_number":119,"context_line":"            self.ovsdb_server_dbs.append(db_filename)"}],"source_content_type":"text/x-python","patch_set":5,"id":"4874e9cd_69d4dd71","line":116,"in_reply_to":"1afc1a73_7fad6ac7","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"6405fc41d188c5393d5ec94aea7441acb41529f1","unresolved":true,"context_lines":[{"line_number":132,"context_line":"                   self.dummy_arg, self.ovs_connection])"},{"line_number":133,"context_line":"        # there are no \u0027init\u0027 method in vtep-ctl,"},{"line_number":134,"context_line":"        # but record in \u0027Global\u0027 table is needed"},{"line_number":135,"context_line":"        self.call([\u0027vtep-ctl\u0027, \u0027show\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def deactivate(self):"},{"line_number":138,"context_line":"        self.kill_processes()"}],"source_content_type":"text/x-python","patch_set":5,"id":"aed6e7c4_5af4728c","line":135,"updated":"2022-03-25 15:38:50.000000000","message":"This also presumes that we have vtep set up.","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":132,"context_line":"                   self.dummy_arg, self.ovs_connection])"},{"line_number":133,"context_line":"        # there are no \u0027init\u0027 method in vtep-ctl,"},{"line_number":134,"context_line":"        # but record in \u0027Global\u0027 table is needed"},{"line_number":135,"context_line":"        self.call([\u0027vtep-ctl\u0027, \u0027show\u0027])"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def deactivate(self):"},{"line_number":138,"context_line":"        self.kill_processes()"}],"source_content_type":"text/x-python","patch_set":5,"id":"b8143f39_c111ee3f","line":135,"in_reply_to":"aed6e7c4_5af4728c","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"9b699eea902f5216a6baec63479af7f1e22edb35"}],"releasenotes/notes/ovn-support-hw-vtep-ca8b3ee7a74df3fd.yaml":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d6a141bacf2dffb5173084d92ad9eae8af6a660","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Added support for the \"hardware_vtep\" schema. The ``HwVtepApiIdlImpl`` class provides"},{"line_number":5,"context_line":"    interaction with \"hw_vtep.db\", adds support to add, delete and list registers rows of"},{"line_number":6,"context_line":"    \"Physical_Switch\", \"Physical_Port\" and \"Logical_Switch\" tables. Also added support for"},{"line_number":7,"context_line":"    some methods for MAC bindings."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"1e8272ab_369b1da9","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":16},"updated":"2022-03-04 09:12:32.000000000","message":"nit: it would be better if we describe those methods\n\n\"Also added support for listing and clearing the remote and local multicast and unicast MAC bindings.\"","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"},{"author":{"_account_id":33871,"name":"Anton Vazhnetsov","display_name":"Anton Vazhnetsov","email":"dragen15051@gmail.com","username":"0x5b"},"change_message_id":"f84a8392b23f589a1a564ada0462a1115a4de5b4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Added support for the \"hardware_vtep\" schema. The ``HwVtepApiIdlImpl`` class provides"},{"line_number":5,"context_line":"    interaction with \"hw_vtep.db\", adds support to add, delete and list registers rows of"},{"line_number":6,"context_line":"    \"Physical_Switch\", \"Physical_Port\" and \"Logical_Switch\" tables. Also added support for"},{"line_number":7,"context_line":"    some methods for MAC bindings."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"78883f17_d0907402","line":7,"range":{"start_line":7,"start_character":4,"end_line":7,"end_character":16},"in_reply_to":"1e8272ab_369b1da9","updated":"2022-07-13 09:50:17.000000000","message":"Done","commit_id":"48f8398a4cd262182ff5e0ceaeb2b23ec0adb73d"}]}
