)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ba0e20761ede866a5dd2c5dcf1d4f3c8ff8cf0df","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"04fd3c98_36e27821","updated":"2023-05-23 19:47:18.000000000","message":"LGTM","commit_id":"c4dd87f9b119ccaef2d01ae35c9fa0ffbe5f23b2"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1ad5398c64dac081e93c02ca3d44b3a6ad59750a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"875dadaa_a0c6a686","updated":"2023-05-24 19:12:23.000000000","message":"recheck gate fixed","commit_id":"c4dd87f9b119ccaef2d01ae35c9fa0ffbe5f23b2"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"1072d490cc4ccc51f05a2b3d5f43c0b31cad55ca","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"740d378e_cc92b151","updated":"2023-05-23 07:32:15.000000000","message":"recheck timeout","commit_id":"c4dd87f9b119ccaef2d01ae35c9fa0ffbe5f23b2"}],"octavia/amphorae/backends/agent/api_server/plug.py":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"51f9597819320f97f9a44a737931625e0c691027","unresolved":true,"context_lines":[{"line_number":297,"context_line":"                dict(link[\u0027attrs\u0027]).get(consts.IFLA_IFNAME)"},{"line_number":298,"context_line":"                for link in netns.get_links()]"},{"line_number":299,"context_line":"            # find the first unused ethXXX"},{"line_number":300,"context_line":"            for idx in range(2, 65535):"},{"line_number":301,"context_line":"                iface_name \u003d f\"eth{idx}\""},{"line_number":302,"context_line":"                if iface_name not in existing_ifaces:"},{"line_number":303,"context_line":"                    return iface_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"4fd18ed7_78438fab","line":300,"range":{"start_line":300,"start_character":32,"end_line":300,"end_character":37},"updated":"2023-05-02 11:00:58.000000000","message":"How did you come up with this number? Is it realistic that there could be that many interfaces?","commit_id":"10bb635488c9478516e44026bbc7f64b3023933c"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"f4d3d680942d9c266c0ff8e6b8c5003601392cfa","unresolved":true,"context_lines":[{"line_number":297,"context_line":"                dict(link[\u0027attrs\u0027]).get(consts.IFLA_IFNAME)"},{"line_number":298,"context_line":"                for link in netns.get_links()]"},{"line_number":299,"context_line":"            # find the first unused ethXXX"},{"line_number":300,"context_line":"            for idx in range(2, 65535):"},{"line_number":301,"context_line":"                iface_name \u003d f\"eth{idx}\""},{"line_number":302,"context_line":"                if iface_name not in existing_ifaces:"},{"line_number":303,"context_line":"                    return iface_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"b5ebf969_0c487cd3","line":300,"range":{"start_line":300,"start_character":32,"end_line":300,"end_character":37},"in_reply_to":"08d65073_67f10f61","updated":"2023-05-02 11:58:48.000000000","message":"it\u0027s arbitrary, I think 256 would be enough, even lower values, but I also think that people might think that it is not enough (or maybe we could remove the upper limit)\nnot sure about using a constant here, it is only used once in the code (also a 2nd time in the tests)","commit_id":"10bb635488c9478516e44026bbc7f64b3023933c"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"f1ef3a941b0d3fd2f8f2edc8e3c9c00d7492aab3","unresolved":true,"context_lines":[{"line_number":297,"context_line":"                dict(link[\u0027attrs\u0027]).get(consts.IFLA_IFNAME)"},{"line_number":298,"context_line":"                for link in netns.get_links()]"},{"line_number":299,"context_line":"            # find the first unused ethXXX"},{"line_number":300,"context_line":"            for idx in range(2, 65535):"},{"line_number":301,"context_line":"                iface_name \u003d f\"eth{idx}\""},{"line_number":302,"context_line":"                if iface_name not in existing_ifaces:"},{"line_number":303,"context_line":"                    return iface_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"08d65073_67f10f61","line":300,"range":{"start_line":300,"start_character":32,"end_line":300,"end_character":37},"in_reply_to":"4fd18ed7_78438fab","updated":"2023-05-02 11:04:29.000000000","message":"Also, maybe make it a constant?","commit_id":"10bb635488c9478516e44026bbc7f64b3023933c"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"506a260a332d29744c9267e9a57368678f6305e5","unresolved":true,"context_lines":[{"line_number":297,"context_line":"                dict(link[\u0027attrs\u0027]).get(consts.IFLA_IFNAME)"},{"line_number":298,"context_line":"                for link in netns.get_links()]"},{"line_number":299,"context_line":"            # find the first unused ethXXX"},{"line_number":300,"context_line":"            for idx in range(2, 65535):"},{"line_number":301,"context_line":"                iface_name \u003d f\"eth{idx}\""},{"line_number":302,"context_line":"                if iface_name not in existing_ifaces:"},{"line_number":303,"context_line":"                    return iface_name"}],"source_content_type":"text/x-python","patch_set":2,"id":"085e17aa_9a5ba61c","line":300,"range":{"start_line":300,"start_character":32,"end_line":300,"end_character":37},"in_reply_to":"b5ebf969_0c487cd3","updated":"2023-05-16 09:05:33.000000000","message":"I\u0027m removing the upper limit","commit_id":"10bb635488c9478516e44026bbc7f64b3023933c"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"ba0e20761ede866a5dd2c5dcf1d4f3c8ff8cf0df","unresolved":true,"context_lines":[{"line_number":301,"context_line":"            for idx in itertools.count(start\u003d2):"},{"line_number":302,"context_line":"                iface_name \u003d f\"eth{idx}\""},{"line_number":303,"context_line":"                if iface_name not in existing_ifaces:"},{"line_number":304,"context_line":"                    break"},{"line_number":305,"context_line":"            return iface_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa42981_99c2f312","line":304,"updated":"2023-05-23 19:47:18.000000000","message":"nit: you could return here instead of break","commit_id":"c4dd87f9b119ccaef2d01ae35c9fa0ffbe5f23b2"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"8a1e3c6a4af7b430effa80f1feb436eff69cff18","unresolved":true,"context_lines":[{"line_number":301,"context_line":"            for idx in itertools.count(start\u003d2):"},{"line_number":302,"context_line":"                iface_name \u003d f\"eth{idx}\""},{"line_number":303,"context_line":"                if iface_name not in existing_ifaces:"},{"line_number":304,"context_line":"                    break"},{"line_number":305,"context_line":"            return iface_name"}],"source_content_type":"text/x-python","patch_set":4,"id":"4bda05ac_7639b976","line":304,"in_reply_to":"baa42981_99c2f312","updated":"2023-05-24 06:09:57.000000000","message":"yeah, pylint was a bit annoying with that, it wants consistent return statements (if you return an object in the loop, you have to return something - or None - after the loop too) and I didn\u0027t want to add an unreachable \"return None\" at the end of the function","commit_id":"c4dd87f9b119ccaef2d01ae35c9fa0ffbe5f23b2"}]}
