)]}'
{"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/extensions/qos.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"86e9c73c491d1dd9c31a797add348cdd90d061d2","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                                            network_id, delete\u003dTrue)"},{"line_number":163,"context_line":"                         for direction in constants.VALID_DIRECTIONS]:"},{"line_number":164,"context_line":"            # TODO(lucasagomes): qos_del() in ovsdbapp doesn\u0027t support"},{"line_number":165,"context_line":"            # if_exists\u003dTrue"},{"line_number":166,"context_line":"            try:"},{"line_number":167,"context_line":"                txn.add(self._driver._nb_idl.qos_del(**ovn_rule))"},{"line_number":168,"context_line":"            except idlutils.RowNotFound:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_c87fb512","line":165,"updated":"2020-05-01 12:23:43.000000000","message":"I\u0027m adding it at https://review.opendev.org/#/c/724826/","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"}],"neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"e3c03801370878e2cc32acacf69a61f175cb6fdf","unresolved":false,"context_lines":[{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def _delete_port(self, port_id, port_object\u003dNone):"},{"line_number":666,"context_line":"        try:"},{"line_number":667,"context_line":"            ovn_port \u003d self._nb_idl.lookup(\u0027Logical_Switch_Port\u0027, port_id)"},{"line_number":668,"context_line":"        except idlutils.RowNotFound:"},{"line_number":669,"context_line":"            # Port has already been deleted"},{"line_number":670,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_33520a14","line":667,"updated":"2020-05-01 13:01:54.000000000","message":"Just a comment, nothing else: we have, for example, \"LspGetCommand\" to retrieve this info. \"BaseGetRowCommand\" will return the port or the \"RowNotFound\" exception. But we can implement something like the \"if_exists\" in this class. If the flag is True, if the register does not exits, it will return None.","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"83b8cccc46c02c7eb5b23ef1c5c3649901b15f07","unresolved":false,"context_lines":[{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def _delete_port(self, port_id, port_object\u003dNone):"},{"line_number":666,"context_line":"        try:"},{"line_number":667,"context_line":"            ovn_port \u003d self._nb_idl.lookup(\u0027Logical_Switch_Port\u0027, port_id)"},{"line_number":668,"context_line":"        except idlutils.RowNotFound:"},{"line_number":669,"context_line":"            # Port has already been deleted"},{"line_number":670,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_b9e6afe7","line":667,"in_reply_to":"1f493fa4_33520a14","updated":"2020-05-06 10:17:06.000000000","message":"I like the idea! I think it would be valuable to have a default arg in this lookup() method for when rows are not found (like a get() in a dict). We need to send a patch for ovsdbapp for it","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"675bb901a19501628877d9ba6051d9480382b093","unresolved":false,"context_lines":[{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def _delete_port(self, port_id, port_object\u003dNone):"},{"line_number":666,"context_line":"        try:"},{"line_number":667,"context_line":"            ovn_port \u003d self._nb_idl.lookup(\u0027Logical_Switch_Port\u0027, port_id)"},{"line_number":668,"context_line":"        except idlutils.RowNotFound:"},{"line_number":669,"context_line":"            # Port has already been deleted"},{"line_number":670,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_5ca319b2","line":667,"in_reply_to":"1f493fa4_b93a2fe4","updated":"2020-05-06 10:57:50.000000000","message":"Oh it\u0027s already implemented!","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"b3e1bce3f4807ee10e04b607dbb95c91d0fe1cd1","unresolved":false,"context_lines":[{"line_number":664,"context_line":""},{"line_number":665,"context_line":"    def _delete_port(self, port_id, port_object\u003dNone):"},{"line_number":666,"context_line":"        try:"},{"line_number":667,"context_line":"            ovn_port \u003d self._nb_idl.lookup(\u0027Logical_Switch_Port\u0027, port_id)"},{"line_number":668,"context_line":"        except idlutils.RowNotFound:"},{"line_number":669,"context_line":"            # Port has already been deleted"},{"line_number":670,"context_line":"            return"}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_b93a2fe4","line":667,"in_reply_to":"1f493fa4_b9e6afe7","updated":"2020-05-06 10:31:15.000000000","message":"Good one ++","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"},{"author":{"_account_id":24791,"name":"Maciej Jozefczyk","email":"jeicam.pl@gmail.com","username":"maciej.jozefczyk"},"change_message_id":"b3e1bce3f4807ee10e04b607dbb95c91d0fe1cd1","unresolved":false,"context_lines":[{"line_number":681,"context_line":"            txn.add(self._nb_idl.delete_lswitch_port("},{"line_number":682,"context_line":"                port_id, network_id))"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"            if not self._nb_idl.is_port_groups_supported():"},{"line_number":685,"context_line":"                txn.add(self._nb_idl.delete_acl("},{"line_number":686,"context_line":"                    network_id, port_id, if_exists\u003dTrue))"},{"line_number":687,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_1929a39a","line":684,"range":{"start_line":684,"start_character":12,"end_line":684,"end_character":59},"updated":"2020-05-06 10:31:15.000000000","message":"Should we even consider this?\nWe moved to Port_Groups some time ago, can\u0027t we just drop this?","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"1f989e5ed527ea281e67cd7690580e61d5f3fab3","unresolved":false,"context_lines":[{"line_number":681,"context_line":"            txn.add(self._nb_idl.delete_lswitch_port("},{"line_number":682,"context_line":"                port_id, network_id))"},{"line_number":683,"context_line":""},{"line_number":684,"context_line":"            if not self._nb_idl.is_port_groups_supported():"},{"line_number":685,"context_line":"                txn.add(self._nb_idl.delete_acl("},{"line_number":686,"context_line":"                    network_id, port_id, if_exists\u003dTrue))"},{"line_number":687,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1f493fa4_fc114555","line":684,"range":{"start_line":684,"start_character":12,"end_line":684,"end_character":59},"in_reply_to":"1f493fa4_1929a39a","updated":"2020-05-06 10:35:35.000000000","message":"I believe we can drop but, maybe in a different patch ? Like we can fix the if_exists for this one and backport it cause maybe older branches with older OVN might still rely on Address_Sets.\n\nAfter that we can drop it on master.","commit_id":"a94e15f2f773af43a816633cc6c6cbc55318ea5e"}]}
