)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":35024},"change_message_id":"333ff1de333e6631f8fb7f51137ef30f9e203454","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexey Terekhin \u003cat4945@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-06-28 10:31:05 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for neutron-netns-cleanup-cron.py script."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I40a9b42204db4455f656e2711dda8ca136b201cb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"91f6f551_42e81441","line":7,"updated":"2022-06-28 17:49:31.000000000","message":"Is there a bug that describes what\u0027s broken? I work on neutron as well and am curious if there\u0027s something broken over in that code.","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":35024},"change_message_id":"01d01d7a817d1532a831cb87846fd2ccb7013969","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexey Terekhin \u003cat4945@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-06-28 10:31:05 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for neutron-netns-cleanup-cron.py script."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I40a9b42204db4455f656e2711dda8ca136b201cb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"b1ba65f2_14e349fa","line":7,"in_reply_to":"72ad2601_e12fca0f","updated":"2022-06-29 16:48:21.000000000","message":"So my follow-up question is should that be fixed over in the neutron code base?","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":16164,"name":"Alexey","display_name":"Alexey Terekhin","username":"aterekhin","status":"devops"},"change_message_id":"f6877c32de40daecf5495614dfe3e9b18f68dabb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexey Terekhin \u003cat4945@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-06-28 10:31:05 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for neutron-netns-cleanup-cron.py script."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I40a9b42204db4455f656e2711dda8ca136b201cb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"8ffac40a_52302058","line":7,"in_reply_to":"91f6f551_42e81441","updated":"2022-06-29 17:06:27.000000000","message":"Previous ver of the code couldn\u0027t delete dhcp namespaces because its PID files aren\u0027t shared with host machine and they are inside dhcp pod only where dnsmasq works and python cleanup script works in another pod. New ver of the script uses root rights and works without access to pid file.","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"0fefb99c67eeec7d67345dbbf725f5d23c2e47fa","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexey Terekhin \u003cat4945@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-06-28 10:31:05 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for neutron-netns-cleanup-cron.py script."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I40a9b42204db4455f656e2711dda8ca136b201cb"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"72ad2601_e12fca0f","line":7,"in_reply_to":"91f6f551_42e81441","updated":"2022-06-29 15:50:28.000000000","message":"yes, it appeared that the previous implementation of the script didn\u0027t delete stuck namespaces properly.","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35024},"change_message_id":"4bedc375372c1d31783e362dca60e14a959f5b2b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"484f3d93_cf40bc2a","updated":"2022-06-28 18:58:36.000000000","message":"Looks good based on what I can see in logs, and looks like it won\u0027t add any duplicate lines to files now.","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":35024},"change_message_id":"f3f56a99069b43dde148d908a744ea7b2d443ff0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"bc4b0882_04b2f6f7","updated":"2022-06-28 21:34:44.000000000","message":"Oops, I think i crossed my second review up with another patch.","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":35024},"change_message_id":"0a56ab1f97bf6c9ac036ad4a69d852149ed2dcbe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"defe6baa_56114802","updated":"2022-06-28 19:00:25.000000000","message":"recheck\n\nCurious why the xena job failed","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"}],"neutron/templates/bin/_neutron-netns-cleanup-cron.py.tpl":[{"author":{"_account_id":35024},"change_message_id":"333ff1de333e6631f8fb7f51137ef30f9e203454","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        \u0027wait\u0027: os.getenv(\u0027NEUTRON_CLEANUP_TIMEOUT\u0027, \u00271800\u0027)}"},{"line_number":37,"context_line":"    return opts"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def ldestroy_namespace(conf, namespace, force\u003dFalse):"},{"line_number":40,"context_line":"    try:"},{"line_number":41,"context_line":"        ip \u003d ip_lib.IPWrapper(namespace\u003dnamespace)"},{"line_number":42,"context_line":"        if ip.netns.exists(namespace):"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"5c1a230a_60591cea","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":45},"updated":"2022-06-28 17:49:31.000000000","message":"\u0027force\u0027 is never used here","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":16164,"name":"Alexey","display_name":"Alexey Terekhin","username":"aterekhin","status":"devops"},"change_message_id":"f6877c32de40daecf5495614dfe3e9b18f68dabb","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027wait\u0027: os.getenv(\u0027NEUTRON_CLEANUP_TIMEOUT\u0027, \u00271800\u0027)}"},{"line_number":37,"context_line":"    return opts"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def ldestroy_namespace(conf, namespace, force\u003dFalse):"},{"line_number":40,"context_line":"    try:"},{"line_number":41,"context_line":"        ip \u003d ip_lib.IPWrapper(namespace\u003dnamespace)"},{"line_number":42,"context_line":"        if ip.netns.exists(namespace):"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"1d8e65cb_d7b53848","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":45},"in_reply_to":"5c1a230a_60591cea","updated":"2022-06-29 17:06:27.000000000","message":"Done","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"4bda5bdd58f4363036b7915bc0cb42ef4fe2fe9c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        \u0027wait\u0027: os.getenv(\u0027NEUTRON_CLEANUP_TIMEOUT\u0027, \u00271800\u0027)}"},{"line_number":37,"context_line":"    return opts"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"def ldestroy_namespace(conf, namespace, force\u003dFalse):"},{"line_number":40,"context_line":"    try:"},{"line_number":41,"context_line":"        ip \u003d ip_lib.IPWrapper(namespace\u003dnamespace)"},{"line_number":42,"context_line":"        if ip.netns.exists(namespace):"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"645786b3_f10d12d1","line":39,"range":{"start_line":39,"start_character":40,"end_line":39,"end_character":45},"in_reply_to":"5c1a230a_60591cea","updated":"2022-06-29 15:48:16.000000000","message":"Done","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"c7e75b367eb0517fa7c7d4d8f18f1c38e268d71d","unresolved":true,"context_lines":[{"line_number":48,"context_line":"                unplug_device(device)"},{"line_number":49,"context_line":"        ip.garbage_collect_namespace()"},{"line_number":50,"context_line":"    except Exception as e:"},{"line_number":51,"context_line":"        sys.stderr.write(\"Error X unable to destroy namespace: {} : {}\\n\".format(namespace, e))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def net_list(neutron_get):"},{"line_number":54,"context_line":"    hosts \u003d dict()"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"daf5a301_874aba1e","line":51,"range":{"start_line":51,"start_character":32,"end_line":51,"end_character":33},"updated":"2022-06-28 21:44:32.000000000","message":"remove X (I added it during testing to understand that code has changed :) )","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"4bda5bdd58f4363036b7915bc0cb42ef4fe2fe9c","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                unplug_device(device)"},{"line_number":49,"context_line":"        ip.garbage_collect_namespace()"},{"line_number":50,"context_line":"    except Exception as e:"},{"line_number":51,"context_line":"        sys.stderr.write(\"Error X unable to destroy namespace: {} : {}\\n\".format(namespace, e))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def net_list(neutron_get):"},{"line_number":54,"context_line":"    hosts \u003d dict()"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"11af24be_8389302e","line":51,"range":{"start_line":51,"start_character":32,"end_line":51,"end_character":33},"in_reply_to":"daf5a301_874aba1e","updated":"2022-06-29 15:48:16.000000000","message":"Done","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":16164,"name":"Alexey","display_name":"Alexey Terekhin","username":"aterekhin","status":"devops"},"change_message_id":"f6877c32de40daecf5495614dfe3e9b18f68dabb","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                unplug_device(device)"},{"line_number":49,"context_line":"        ip.garbage_collect_namespace()"},{"line_number":50,"context_line":"    except Exception as e:"},{"line_number":51,"context_line":"        sys.stderr.write(\"Error X unable to destroy namespace: {} : {}\\n\".format(namespace, e))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"def net_list(neutron_get):"},{"line_number":54,"context_line":"    hosts \u003d dict()"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"11d0e5ec_51b4c7a7","line":51,"range":{"start_line":51,"start_character":32,"end_line":51,"end_character":33},"in_reply_to":"daf5a301_874aba1e","updated":"2022-06-29 17:06:27.000000000","message":"Done","commit_id":"f1722fd51f6fcfed5897a39e9cf533b2d9f83bf4"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"da765bc6eadbc3ceb883ef25c8177c6d1d4b298e","unresolved":true,"context_lines":[{"line_number":102,"context_line":"    for ns in not_dhcp_ns:"},{"line_number":103,"context_line":"        if eligible_for_deletion(conf, ns, conf.force):"},{"line_number":104,"context_line":"            ldestroy_namespace(conf, ns)"},{"line_number":105,"context_line":"            if debug:"},{"line_number":106,"context_line":"                sys.stderr.write(\"DEBUG: {} host {} deleted {} because no IP addr\\n\""},{"line_number":107,"context_line":"                                 .format(sys.argv[0], hostname, ns))"},{"line_number":108,"context_line":"                time.sleep(log_write_timeout)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":2,"id":"f4317b30_5e16d854","line":108,"range":{"start_line":105,"start_character":0,"end_line":108,"end_character":45},"updated":"2022-06-29 14:42:05.000000000","message":"we can create a function that could do these 4 lines\n\nfunc printerr(*argv):\n                if debug:\n                sys.stderr.write(*argv)\n                time.sleep(log_write_timeout)\n\nand use it as \nprinterr(\"DEBUG: {} host {} deleted {} because no IP addr\\n\"\n                                 .format(sys.argv[0], hostname, ns))","commit_id":"9e01640f31a857d8ac948b6dc307a191022732a3"},{"author":{"_account_id":21040,"name":"Alexey","email":"aodinokov@mirantis.com","username":"aodinokov"},"change_message_id":"4bda5bdd58f4363036b7915bc0cb42ef4fe2fe9c","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    for ns in not_dhcp_ns:"},{"line_number":103,"context_line":"        if eligible_for_deletion(conf, ns, conf.force):"},{"line_number":104,"context_line":"            ldestroy_namespace(conf, ns)"},{"line_number":105,"context_line":"            if debug:"},{"line_number":106,"context_line":"                sys.stderr.write(\"DEBUG: {} host {} deleted {} because no IP addr\\n\""},{"line_number":107,"context_line":"                                 .format(sys.argv[0], hostname, ns))"},{"line_number":108,"context_line":"                time.sleep(log_write_timeout)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":2,"id":"399d1fdf_454a7181","line":108,"range":{"start_line":105,"start_character":0,"end_line":108,"end_character":45},"in_reply_to":"f4317b30_5e16d854","updated":"2022-06-29 15:48:16.000000000","message":"Done","commit_id":"9e01640f31a857d8ac948b6dc307a191022732a3"},{"author":{"_account_id":16164,"name":"Alexey","display_name":"Alexey Terekhin","username":"aterekhin","status":"devops"},"change_message_id":"f6877c32de40daecf5495614dfe3e9b18f68dabb","unresolved":false,"context_lines":[{"line_number":102,"context_line":"    for ns in not_dhcp_ns:"},{"line_number":103,"context_line":"        if eligible_for_deletion(conf, ns, conf.force):"},{"line_number":104,"context_line":"            ldestroy_namespace(conf, ns)"},{"line_number":105,"context_line":"            if debug:"},{"line_number":106,"context_line":"                sys.stderr.write(\"DEBUG: {} host {} deleted {} because no IP addr\\n\""},{"line_number":107,"context_line":"                                 .format(sys.argv[0], hostname, ns))"},{"line_number":108,"context_line":"                time.sleep(log_write_timeout)"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"if __name__ \u003d\u003d \"__main__\":"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":2,"id":"9a8a719b_ac568530","line":108,"range":{"start_line":105,"start_character":0,"end_line":108,"end_character":45},"in_reply_to":"f4317b30_5e16d854","updated":"2022-06-29 17:06:27.000000000","message":"I don\u0027t have time to test the changes, the customer needs it asap","commit_id":"9e01640f31a857d8ac948b6dc307a191022732a3"}]}
