)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"bc271ba93b2acf241762665897057d3b60056422","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4d6a6f57_825c1afe","updated":"2021-11-15 21:28:18.000000000","message":"Some good feedback, but I think it would be good to get this in. It would be awesome if you could follow up with any updates, but something is better than nothing. ;)","commit_id":"b7c262dd11802ff03b1f0c82508267b32303d695"},{"author":{"_account_id":9642,"name":"Guillaume Espanel","email":"guillaume.espanel@gmail.com","username":"quatre"},"change_message_id":"f8e856ec8dbf6e1f4c8a16319d8171e619891619","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"16b291b2_aa5c3358","updated":"2021-11-16 14:46:12.000000000","message":"Thanks for the reviews, I added more info about the tool in a subsequent patch :)","commit_id":"b7c262dd11802ff03b1f0c82508267b32303d695"}],"contrib/neutron/br-int-flows-analyze.py":[{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a7d58f4252a6766a5ac21ef2b260a0c24c361cb4","unresolved":true,"context_lines":[{"line_number":25,"context_line":"import pyparsing as pp"},{"line_number":26,"context_line":"import sympy as sm"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# 😱"},{"line_number":29,"context_line":"# Sorry, this parser is bugged and very poorly written, but it seems to work"},{"line_number":30,"context_line":"# well enough for our use-case."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def mask_to_range(n, mask, width\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9b6af65f_526b0314","line":30,"range":{"start_line":28,"start_character":0,"end_line":30,"end_character":31},"updated":"2021-11-15 13:01:13.000000000","message":"Please write what is your usecase, what works now and what we can\u0027t expect :-)","commit_id":"b7c262dd11802ff03b1f0c82508267b32303d695"},{"author":{"_account_id":9642,"name":"Guillaume Espanel","email":"guillaume.espanel@gmail.com","username":"quatre"},"change_message_id":"f8e856ec8dbf6e1f4c8a16319d8171e619891619","unresolved":false,"context_lines":[{"line_number":25,"context_line":"import pyparsing as pp"},{"line_number":26,"context_line":"import sympy as sm"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"# 😱"},{"line_number":29,"context_line":"# Sorry, this parser is bugged and very poorly written, but it seems to work"},{"line_number":30,"context_line":"# well enough for our use-case."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"def mask_to_range(n, mask, width\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"38d8fd2a_9a0562b2","line":30,"range":{"start_line":28,"start_character":0,"end_line":30,"end_character":31},"in_reply_to":"9b6af65f_526b0314","updated":"2021-11-16 14:46:12.000000000","message":"Done","commit_id":"b7c262dd11802ff03b1f0c82508267b32303d695"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a7d58f4252a6766a5ac21ef2b260a0c24c361cb4","unresolved":true,"context_lines":[{"line_number":569,"context_line":"def parse_args():"},{"line_number":570,"context_line":"    parser \u003d argparse.ArgumentParser(description\u003d\"Get VM flow rules.\")"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    data_source \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":573,"context_line":"    data_source.add_argument(\u0027--vm-uuid\u0027, type\u003dstr)"},{"line_number":574,"context_line":"    data_source.add_argument(\u0027--flow-file\u0027, type\u003dargparse.FileType(\u0027r\u0027))"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    direction \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":577,"context_line":"    direction.add_argument(\u0027--egress\u0027, action\u003d\u0027store_const\u0027, dest\u003d\u0027direction\u0027,"},{"line_number":578,"context_line":"                           const\u003d\u0027egress\u0027)"},{"line_number":579,"context_line":"    direction.add_argument(\u0027--ingress\u0027, action\u003d\u0027store_const\u0027, dest\u003d\u0027direction\u0027,"},{"line_number":580,"context_line":"                           const\u003d\u0027ingress\u0027)"},{"line_number":581,"context_line":"    direction.add_argument(\u0027--field\u0027, nargs\u003d\u0027+\u0027, help\u003d\u0027Fields value\u0027,"},{"line_number":582,"context_line":"                           type\u003dlambda x: [x.strip() for x in x.split(\u0027\u003d\u0027)])"},{"line_number":583,"context_line":"    parser.add_argument(\u0027--interface\u0027, required\u003dFalse,"},{"line_number":584,"context_line":"                        help\u003d\"Interface to filter on\")"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    return parser.parse_args()"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"08573eea_c10f6bbe","line":584,"range":{"start_line":572,"start_character":0,"end_line":584,"end_character":54},"updated":"2021-11-15 13:01:13.000000000","message":"Some detailed help would be useful, with example i.e.: what is a field? It was ~10 mins (ok it was Friday afternoon) to find out from code and tests, and next time it will be again without help :-)","commit_id":"b7c262dd11802ff03b1f0c82508267b32303d695"},{"author":{"_account_id":9642,"name":"Guillaume Espanel","email":"guillaume.espanel@gmail.com","username":"quatre"},"change_message_id":"f8e856ec8dbf6e1f4c8a16319d8171e619891619","unresolved":false,"context_lines":[{"line_number":569,"context_line":"def parse_args():"},{"line_number":570,"context_line":"    parser \u003d argparse.ArgumentParser(description\u003d\"Get VM flow rules.\")"},{"line_number":571,"context_line":""},{"line_number":572,"context_line":"    data_source \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":573,"context_line":"    data_source.add_argument(\u0027--vm-uuid\u0027, type\u003dstr)"},{"line_number":574,"context_line":"    data_source.add_argument(\u0027--flow-file\u0027, type\u003dargparse.FileType(\u0027r\u0027))"},{"line_number":575,"context_line":""},{"line_number":576,"context_line":"    direction \u003d parser.add_mutually_exclusive_group(required\u003dTrue)"},{"line_number":577,"context_line":"    direction.add_argument(\u0027--egress\u0027, action\u003d\u0027store_const\u0027, dest\u003d\u0027direction\u0027,"},{"line_number":578,"context_line":"                           const\u003d\u0027egress\u0027)"},{"line_number":579,"context_line":"    direction.add_argument(\u0027--ingress\u0027, action\u003d\u0027store_const\u0027, dest\u003d\u0027direction\u0027,"},{"line_number":580,"context_line":"                           const\u003d\u0027ingress\u0027)"},{"line_number":581,"context_line":"    direction.add_argument(\u0027--field\u0027, nargs\u003d\u0027+\u0027, help\u003d\u0027Fields value\u0027,"},{"line_number":582,"context_line":"                           type\u003dlambda x: [x.strip() for x in x.split(\u0027\u003d\u0027)])"},{"line_number":583,"context_line":"    parser.add_argument(\u0027--interface\u0027, required\u003dFalse,"},{"line_number":584,"context_line":"                        help\u003d\"Interface to filter on\")"},{"line_number":585,"context_line":""},{"line_number":586,"context_line":"    return parser.parse_args()"},{"line_number":587,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fdf0bdb7_6cd40256","line":584,"range":{"start_line":572,"start_character":0,"end_line":584,"end_character":54},"in_reply_to":"08573eea_c10f6bbe","updated":"2021-11-16 14:46:12.000000000","message":"Done","commit_id":"b7c262dd11802ff03b1f0c82508267b32303d695"}]}
