)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"208cd0c4775ebcdf69d4c3636226b2e769389ab1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"787965fa_0bdb3e60","updated":"2023-06-15 21:57:27.000000000","message":"-1 just for the missing FT","commit_id":"e3e64dc8c4a0c981058a5d81240d9c7956bd9b5b"}],"ovn_bgp_agent/privileged/linux_net.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"aa54a3f8f4696506436df76c589ce103575cdfef","unresolved":true,"context_lines":[{"line_number":361,"context_line":"    if e.code \u003d\u003d errno.EINVAL:"},{"line_number":362,"context_line":"        raise InvalidArgument(device\u003ddevice)"},{"line_number":363,"context_line":"    if e.code \u003d\u003d errno.EEXIST:"},{"line_number":364,"context_line":"        raise InterfaceAlreadyExists(device\u003ddevice)"},{"line_number":365,"context_line":"    raise e"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"4b6bd382_8288498f","line":364,"updated":"2023-06-19 08:57:18.000000000","message":"Commented in a previous patch, but all these exceptions should be in the exception.py file. I don\u0027t see why we should keep separated.","commit_id":"1e954096664479f5e1eb7a4e4aef881b549cce20"}],"ovn_bgp_agent/utils/linux_net.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"208cd0c4775ebcdf69d4c3636226b2e769389ab1","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    wait\u003dtenacity.wait_exponential(multiplier\u003d0.02, max\u003d1),"},{"line_number":66,"context_line":"    stop\u003dtenacity.stop_after_delay(8),"},{"line_number":67,"context_line":"    reraise\u003dTrue)"},{"line_number":68,"context_line":"def get_interface_address(nic):"},{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        with pyroute2.IPRoute() as ipr:"},{"line_number":71,"context_line":"            idx \u003d ipr.link_lookup(ifname\u003dnic)[0]"}],"source_content_type":"text/x-python","patch_set":13,"id":"c1cc5b9a_43a554d4","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":25},"updated":"2023-06-15 21:57:27.000000000","message":"That deserves a FT test at least","commit_id":"e3e64dc8c4a0c981058a5d81240d9c7956bd9b5b"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"990076a1702395586242ee2472c7055b179c9ca0","unresolved":false,"context_lines":[{"line_number":65,"context_line":"    wait\u003dtenacity.wait_exponential(multiplier\u003d0.02, max\u003d1),"},{"line_number":66,"context_line":"    stop\u003dtenacity.stop_after_delay(8),"},{"line_number":67,"context_line":"    reraise\u003dTrue)"},{"line_number":68,"context_line":"def get_interface_address(nic):"},{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        with pyroute2.IPRoute() as ipr:"},{"line_number":71,"context_line":"            idx \u003d ipr.link_lookup(ifname\u003dnic)[0]"}],"source_content_type":"text/x-python","patch_set":13,"id":"48167170_c379dfb2","line":68,"range":{"start_line":68,"start_character":4,"end_line":68,"end_character":25},"in_reply_to":"c1cc5b9a_43a554d4","updated":"2023-06-16 05:14:08.000000000","message":"Done","commit_id":"e3e64dc8c4a0c981058a5d81240d9c7956bd9b5b"}]}
