)]}'
{"ovn_octavia_provider/helper.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"07d95f5cbec1835894a07bcac8ee07a4c9c84a93","unresolved":true,"context_lines":[{"line_number":285,"context_line":"                    ovn_const.LB_EXT_IDS_LS_REFS_KEY,"},{"line_number":286,"context_line":"                    [])}"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _find_lb_in_table(self, lb, table):"},{"line_number":289,"context_line":"        lbs \u003d self.ovn_nbdb_api.db_list_rows(table).execute(check_error\u003dTrue)"},{"line_number":290,"context_line":"        return [item for item in lbs if lb in item.load_balancer]"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"d6512412_b42e5c50","line":288,"updated":"2021-07-20 17:28:40.000000000","message":"doing this as a command would basically be adding to impl_ovn_idl.py:\n\n FindLbInTableCommand(ovsdbapp.backend.ovs_idl.command.ReadOnlyCommand):\n     def __init__(self, table, lb):\n         self.table \u003d table\n         self.lb \u003d lb\n\n     def run_idl(self, txn):\n         return [item for item in self.api.tables[table].rows.values() if lb in item.load_balancer]\n\nand returning it from OvsdbNbOvnIdl.find_lb_in_table(...) and then calling .exceute() on it from here.","commit_id":"5d68eeeee82baf13d8149f6616a28d9ee7105f93"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"88c8f98261499eaa74aa692f86b44c99e2398e97","unresolved":true,"context_lines":[{"line_number":285,"context_line":"                    ovn_const.LB_EXT_IDS_LS_REFS_KEY,"},{"line_number":286,"context_line":"                    [])}"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"    def _find_lb_in_table(self, lb, table):"},{"line_number":289,"context_line":"        lbs \u003d self.ovn_nbdb_api.db_list_rows(table).execute(check_error\u003dTrue)"},{"line_number":290,"context_line":"        return [item for item in lbs if lb in item.load_balancer]"},{"line_number":291,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ddb9e14e_0e66a59f","line":288,"in_reply_to":"d6512412_b42e5c50","updated":"2021-07-20 19:58:54.000000000","message":"Ok, I\u0027ll give that a try.","commit_id":"5d68eeeee82baf13d8149f6616a28d9ee7105f93"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"07d95f5cbec1835894a07bcac8ee07a4c9c84a93","unresolved":true,"context_lines":[{"line_number":965,"context_line":"                                            if_exists\u003dTrue))"},{"line_number":966,"context_line":"        lr_ref \u003d ovn_lb.external_ids.get(ovn_const.LB_EXT_IDS_LR_REF_KEY, {})"},{"line_number":967,"context_line":"        if lr_ref:"},{"line_number":968,"context_line":"            lrs \u003d self.ovn_nbdb_api.db_list_rows("},{"line_number":969,"context_line":"                \u0027Logical_Router\u0027).execute(check_error\u003dTrue)"},{"line_number":970,"context_line":"            for lr in lrs:"},{"line_number":971,"context_line":"                if lr.name \u003d\u003d lr_ref:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9cd561b1_c449bad4","line":968,"updated":"2021-07-20 17:28:40.000000000","message":"This looks like it could be:\n\n try:\n     lr \u003d self.ovn_nbdb_api.lookup(\u0027Logical_Router\u0027, lr_ref)\n     commands.append(...)\n except idlutils.RowNotFound:\n     pass","commit_id":"5d68eeeee82baf13d8149f6616a28d9ee7105f93"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"88c8f98261499eaa74aa692f86b44c99e2398e97","unresolved":false,"context_lines":[{"line_number":965,"context_line":"                                            if_exists\u003dTrue))"},{"line_number":966,"context_line":"        lr_ref \u003d ovn_lb.external_ids.get(ovn_const.LB_EXT_IDS_LR_REF_KEY, {})"},{"line_number":967,"context_line":"        if lr_ref:"},{"line_number":968,"context_line":"            lrs \u003d self.ovn_nbdb_api.db_list_rows("},{"line_number":969,"context_line":"                \u0027Logical_Router\u0027).execute(check_error\u003dTrue)"},{"line_number":970,"context_line":"            for lr in lrs:"},{"line_number":971,"context_line":"                if lr.name \u003d\u003d lr_ref:"}],"source_content_type":"text/x-python","patch_set":1,"id":"214ffefd_4820ffdf","line":968,"in_reply_to":"9cd561b1_c449bad4","updated":"2021-07-20 19:58:54.000000000","message":"Done","commit_id":"5d68eeeee82baf13d8149f6616a28d9ee7105f93"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"f84528a3b528ceee0b8ed1eaf6ef56a10fad69b9","unresolved":true,"context_lines":[{"line_number":967,"context_line":"        if lr_ref:"},{"line_number":968,"context_line":"            lrs \u003d self.ovn_nbdb_api.db_list_rows("},{"line_number":969,"context_line":"                \u0027Logical_Router\u0027).execute(check_error\u003dTrue)"},{"line_number":970,"context_line":"            for lr in lrs:"},{"line_number":971,"context_line":"                if lr.name \u003d\u003d lr_ref:"},{"line_number":972,"context_line":"                    commands.append(self.ovn_nbdb_api.lr_lb_del("},{"line_number":973,"context_line":"                        lr.uuid, ovn_lb.uuid))"}],"source_content_type":"text/x-python","patch_set":1,"id":"0e8e0868_405f62cf","line":970,"updated":"2021-07-20 17:30:19.000000000","message":"So after talking to Terry it looks like this can just do a lookup() since it\u0027s searching for a specific logical router, instead if looking at all of them.","commit_id":"5d68eeeee82baf13d8149f6616a28d9ee7105f93"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"5c338926a9e454ad18fb10c6c396ac635ff9da1e","unresolved":true,"context_lines":[{"line_number":621,"context_line":"            return"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        # Function for matching networks with only gateway port in the router"},{"line_number":624,"context_line":"        def lr_gw_port_name_fn(lr):"},{"line_number":625,"context_line":"            return utils.ovn_lrouter_port_name("},{"line_number":626,"context_line":"                lr.external_ids.get(ovn_const.OVN_GW_PORT_EXT_ID_KEY))"},{"line_number":627,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"aa3ece10_900a0020","line":624,"range":{"start_line":624,"start_character":12,"end_line":624,"end_character":30},"updated":"2021-07-20 22:17:12.000000000","message":"I had to stare at this for a while. :)","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e381cea9faecb124c50a62fc0f3947c3c1e31746","unresolved":true,"context_lines":[{"line_number":621,"context_line":"            return"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        # Function for matching networks with only gateway port in the router"},{"line_number":624,"context_line":"        def lr_gw_port_name_fn(lr):"},{"line_number":625,"context_line":"            return utils.ovn_lrouter_port_name("},{"line_number":626,"context_line":"                lr.external_ids.get(ovn_const.OVN_GW_PORT_EXT_ID_KEY))"},{"line_number":627,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d0dd10e8_e89a88b5","line":624,"range":{"start_line":624,"start_character":12,"end_line":624,"end_character":30},"in_reply_to":"aa3ece10_900a0020","updated":"2021-07-20 22:27:40.000000000","message":"Yeah, I didn\u0027t know the best thing to do - could just move the logic into the idl code but didn\u0027t seem right.","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"5c338926a9e454ad18fb10c6c396ac635ff9da1e","unresolved":true,"context_lines":[{"line_number":964,"context_line":"        if lr_ref:"},{"line_number":965,"context_line":"            try:"},{"line_number":966,"context_line":"                lr \u003d self.ovn_nbdb_api.lookup(\u0027Logical_Router\u0027, lr_ref)"},{"line_number":967,"context_line":"                if lr:"},{"line_number":968,"context_line":"                    commands.append(self.ovn_nbdb_api.lr_lb_del("},{"line_number":969,"context_line":"                        lr.uuid, ovn_lb.uuid))"},{"line_number":970,"context_line":"            except idlutils.RowNotFound:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b4a1aa33_f952e486","line":967,"updated":"2021-07-20 22:17:12.000000000","message":"nit: the if is superflous since if lookup() doesn\u0027t find a row, it\u0027ll throw the exception caught below.","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e381cea9faecb124c50a62fc0f3947c3c1e31746","unresolved":false,"context_lines":[{"line_number":964,"context_line":"        if lr_ref:"},{"line_number":965,"context_line":"            try:"},{"line_number":966,"context_line":"                lr \u003d self.ovn_nbdb_api.lookup(\u0027Logical_Router\u0027, lr_ref)"},{"line_number":967,"context_line":"                if lr:"},{"line_number":968,"context_line":"                    commands.append(self.ovn_nbdb_api.lr_lb_del("},{"line_number":969,"context_line":"                        lr.uuid, ovn_lb.uuid))"},{"line_number":970,"context_line":"            except idlutils.RowNotFound:"}],"source_content_type":"text/x-python","patch_set":4,"id":"a43f40a9_39d76097","line":967,"in_reply_to":"b4a1aa33_f952e486","updated":"2021-07-20 22:27:40.000000000","message":"Done","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"}],"ovn_octavia_provider/ovsdb/impl_idl_ovn.py":[{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"f5e87be2c18bf059de343f5c943ea65fc5eaa02d","unresolved":true,"context_lines":[{"line_number":122,"context_line":"        self.table \u003d table"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def run_idl(self, txn):"},{"line_number":125,"context_line":"        return [item for item in self.api.tables[self.table].rows.values()"},{"line_number":126,"context_line":"                if self.lb in item.load_balancer]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ce153e73_39b6ec80","line":125,"updated":"2021-07-20 20:45:43.000000000","message":"I led you astray: this should be self.result \u003d ... as execute() returns that.","commit_id":"f813f55855a771a203dcc28cb9bd43a55fe0da0e"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e359885458767d411fa3890243274cd62c912990","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        self.table \u003d table"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def run_idl(self, txn):"},{"line_number":125,"context_line":"        return [item for item in self.api.tables[self.table].rows.values()"},{"line_number":126,"context_line":"                if self.lb in item.load_balancer]"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"437787a6_f1621923","line":125,"in_reply_to":"ce153e73_39b6ec80","updated":"2021-07-20 21:53:40.000000000","message":"Done","commit_id":"f813f55855a771a203dcc28cb9bd43a55fe0da0e"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"5c338926a9e454ad18fb10c6c396ac635ff9da1e","unresolved":true,"context_lines":[{"line_number":137,"context_line":"        self.table \u003d table"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def run_idl(self, txn):"},{"line_number":140,"context_line":"        self.result \u003d ["},{"line_number":141,"context_line":"            rowview.RowView(item) for item in"},{"line_number":142,"context_line":"            self.api.tables[self.table].rows.values()"},{"line_number":143,"context_line":"            if (self.name \u003d\u003d item.name or"}],"source_content_type":"text/x-python","patch_set":4,"id":"687e1d77_a01bbede","line":140,"updated":"2021-07-20 22:17:12.000000000","message":"If I\u0027m reading things right, the original code returned the *first* match, and this returns a list of all matches. If so, could do:\n\n return next(rowview.Rowview(itemt) for item in ...)\n\npossibly catching StopIteration and raising RowNotFound.","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"e381cea9faecb124c50a62fc0f3947c3c1e31746","unresolved":true,"context_lines":[{"line_number":137,"context_line":"        self.table \u003d table"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def run_idl(self, txn):"},{"line_number":140,"context_line":"        self.result \u003d ["},{"line_number":141,"context_line":"            rowview.RowView(item) for item in"},{"line_number":142,"context_line":"            self.api.tables[self.table].rows.values()"},{"line_number":143,"context_line":"            if (self.name \u003d\u003d item.name or"}],"source_content_type":"text/x-python","patch_set":4,"id":"189a8ceb_9f1a8347","line":140,"in_reply_to":"687e1d77_a01bbede","updated":"2021-07-20 22:27:40.000000000","message":"Right, this is broken, and my little row boat is taking on water :)","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"63ee7c2fac700a102f9f0b794b74439a4b46ee20","unresolved":true,"context_lines":[{"line_number":137,"context_line":"        self.table \u003d table"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def run_idl(self, txn):"},{"line_number":140,"context_line":"        self.result \u003d ["},{"line_number":141,"context_line":"            rowview.RowView(item) for item in"},{"line_number":142,"context_line":"            self.api.tables[self.table].rows.values()"},{"line_number":143,"context_line":"            if (self.name \u003d\u003d item.name or"}],"source_content_type":"text/x-python","patch_set":4,"id":"f1e130f5_9d14872b","line":140,"in_reply_to":"687e1d77_a01bbede","updated":"2021-07-20 22:24:51.000000000","message":"also,the original function was looking for the lrp.name matching in the lr.ports and I don\u0027t see anything looking at the ports.","commit_id":"f2f865f5ecbf0dbd1710450bde8e7c9f3eaec2a3"}]}
