)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b1687b7c191d7914cdd709ce86105a51e875c2c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"03d61a42_870d510b","updated":"2022-01-05 20:28:47.000000000","message":"Ivan - you should file bugs for issues as this was just a backport, and master might be broken. Someone else will have to look into it as I no longer work on this project.","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"}],"ovn_octavia_provider/helper.py":[{"author":{"_account_id":34394,"name":"Ivan Zhang","email":"sail4dream@gmail.com","username":"zhangi"},"change_message_id":"f739745a36d26c4ba9dd22f0a26ff226e4ccc9fb","unresolved":true,"context_lines":[{"line_number":2265,"context_line":"            member_ip \u003d \u0027[%s]\u0027 % member_ip"},{"line_number":2266,"context_line":"        mappings[member_ip] \u003d member_src"},{"line_number":2267,"context_line":"        lbs \u003d self.ovn_nbdb_api.db_find_rows("},{"line_number":2268,"context_line":"            \u0027Load_Balancer\u0027, ((\u0027ip_port_mappings\u0027, \u0027\u003d\u0027, mappings),"},{"line_number":2269,"context_line":"                              (\u0027protocol\u0027, \u0027\u003d\u0027, row.protocol))).execute()"},{"line_number":2270,"context_line":"        return lbs[0] if lbs else None"},{"line_number":2271,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"c84c376e_f2b0b2bc","line":2268,"updated":"2021-12-30 10:40:03.000000000","message":"the conditions should not be nested in a tuple, rather they should be put as separate positional arguments.","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"},{"author":{"_account_id":34394,"name":"Ivan Zhang","email":"sail4dream@gmail.com","username":"zhangi"},"change_message_id":"f739745a36d26c4ba9dd22f0a26ff226e4ccc9fb","unresolved":true,"context_lines":[{"line_number":2266,"context_line":"        mappings[member_ip] \u003d member_src"},{"line_number":2267,"context_line":"        lbs \u003d self.ovn_nbdb_api.db_find_rows("},{"line_number":2268,"context_line":"            \u0027Load_Balancer\u0027, ((\u0027ip_port_mappings\u0027, \u0027\u003d\u0027, mappings),"},{"line_number":2269,"context_line":"                              (\u0027protocol\u0027, \u0027\u003d\u0027, row.protocol))).execute()"},{"line_number":2270,"context_line":"        return lbs[0] if lbs else None"},{"line_number":2271,"context_line":""},{"line_number":2272,"context_line":"    def hm_update_event_handler(self, row):"}],"source_content_type":"text/x-python","patch_set":1,"id":"211a4a50_336c9cf8","line":2269,"updated":"2021-12-30 10:40:03.000000000","message":"row.protocol is a list, but in the implementation of DbFindCommand, idlutils.row_match will use get_column_value to get the value of \u0027protocol\u0027 field on the Load_Balancer, which will be returned as a string, the type mismatch caused a ValueError(\"Column type and condition operand do not match\") in the condition_match function","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"},{"author":{"_account_id":34394,"name":"Ivan Zhang","email":"sail4dream@gmail.com","username":"zhangi"},"change_message_id":"f739745a36d26c4ba9dd22f0a26ff226e4ccc9fb","unresolved":true,"context_lines":[{"line_number":2324,"context_line":""},{"line_number":2325,"context_line":"        pool \u003d self._octavia_driver_lib.get_pool(pool_id)"},{"line_number":2326,"context_line":"        if pool:"},{"line_number":2327,"context_line":"            pool_status \u003d pool.operating_status"},{"line_number":2328,"context_line":""},{"line_number":2329,"context_line":"        lb \u003d self._octavia_driver_lib.get_loadbalancer(ovn_lb.name)"},{"line_number":2330,"context_line":"        if lb:"}],"source_content_type":"text/x-python","patch_set":1,"id":"8cd77863_ebac37ea","line":2327,"updated":"2021-12-30 10:40:03.000000000","message":"operating_status is not a valid field of pool model in current implementation of octavia_lib","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"},{"author":{"_account_id":34394,"name":"Ivan Zhang","email":"sail4dream@gmail.com","username":"zhangi"},"change_message_id":"f739745a36d26c4ba9dd22f0a26ff226e4ccc9fb","unresolved":true,"context_lines":[{"line_number":2328,"context_line":""},{"line_number":2329,"context_line":"        lb \u003d self._octavia_driver_lib.get_loadbalancer(ovn_lb.name)"},{"line_number":2330,"context_line":"        if lb:"},{"line_number":2331,"context_line":"            lb_status \u003d lb.operating_status"},{"line_number":2332,"context_line":""},{"line_number":2333,"context_line":"        for k, v in ovn_lb.external_ids.items():"},{"line_number":2334,"context_line":"            if ovn_const.LB_EXT_IDS_POOL_PREFIX not in k:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bdf0e137_d5bb17ed","line":2331,"updated":"2021-12-30 10:40:03.000000000","message":"operating_status is not a valid field of loadbalancer model in current implementation of octavia_lib","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"},{"author":{"_account_id":34394,"name":"Ivan Zhang","email":"sail4dream@gmail.com","username":"zhangi"},"change_message_id":"f739745a36d26c4ba9dd22f0a26ff226e4ccc9fb","unresolved":true,"context_lines":[{"line_number":2343,"context_line":"                if mem_id !\u003d member_id:"},{"line_number":2344,"context_line":"                    member \u003d self._octavia_driver_lib.get_member(mem_id)"},{"line_number":2345,"context_line":"                    # If the statuses are different it is degraded"},{"line_number":2346,"context_line":"                    if member and member.operating_status !\u003d member_status:"},{"line_number":2347,"context_line":"                        operating_status \u003d constants.DEGRADED"},{"line_number":2348,"context_line":"                        break"},{"line_number":2349,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"e440877f_20aa0112","line":2346,"updated":"2021-12-30 10:40:03.000000000","message":"operating_status is not a valid field of member model in current implementation of octavia_lib","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"},{"author":{"_account_id":34394,"name":"Ivan Zhang","email":"sail4dream@gmail.com","username":"zhangi"},"change_message_id":"f739745a36d26c4ba9dd22f0a26ff226e4ccc9fb","unresolved":true,"context_lines":[{"line_number":2382,"context_line":"                    continue"},{"line_number":2383,"context_line":"                # match"},{"line_number":2384,"context_line":"                pool_id \u003d k.split(\u0027_\u0027)[1]"},{"line_number":2385,"context_line":"                member_id \u003d v.split(\u0027_\u0027)[1]"},{"line_number":2386,"context_line":"                break"},{"line_number":2387,"context_line":""},{"line_number":2388,"context_line":"            # found it in inner loop"}],"source_content_type":"text/x-python","patch_set":1,"id":"535661c9_71e88dd7","line":2385,"updated":"2021-12-30 10:40:03.000000000","message":"member_id here is always the first member parsed from v, regardless of the ip and port matching","commit_id":"59e09f053e89eee7859e1d384ca95561a45adcdd"}]}
