)]}'
{"devstack/files/hooks/qemu.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b33b84efd220e70ea2c10602a8e8b345e088ed61","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_104e66c0","line":48,"updated":"2019-06-14 08:24:35.000000000","message":"I think python2 is still the default /usr/bin/python in all distributions, so this uses python2. I agree that we must fix this, but it can be done in a follow-up.","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"54702ab615aa6276b8fbfc5e33e6b377b781f535","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_70e4820d","line":48,"range":{"start_line":48,"start_character":32,"end_line":48,"end_character":44},"updated":"2019-06-14 07:59:42.000000000","message":"check_output return str in python2, bytes in python3, this is not compatible. Since we are using bionic in the gate, I guess by default we are using ?python3?","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"ff228231e25ec32bba366c83b3f978980acf793e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_c489f374","line":48,"in_reply_to":"9fb8cfa7_104e66c0","updated":"2019-06-14 08:45:48.000000000","message":"If memory serves, bionic doesn\u0027t ship with python2, there is no python command, but python3. I guess it\u0027s because we installed both in the devstack node (there are entries in bindep)","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"edd4b57bfc5b0eb3e740f453a2b4cd66799af69f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_c4301359","line":48,"in_reply_to":"9fb8cfa7_64b4c7f2","updated":"2019-06-14 09:16:12.000000000","message":"This file requires python 2 currently, this patch doesn\u0027t change it.","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"a031836a4ad184aacf5fa3e039403169aada6ae0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_84ebfb75","line":48,"in_reply_to":"9fb8cfa7_c4301359","updated":"2019-06-14 09:29:35.000000000","message":"follow up works for me, wait for ci passing\n\nanother issue: maybe we need to separate this in to another hook or tune the condition for enabling this hook, currently it\u0027s tied to log rotate.","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"c21127beee9968df30a85c2c0355d558c4f51fb0","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_64b4c7f2","line":48,"in_reply_to":"9fb8cfa7_c489f374","updated":"2019-06-14 09:04:19.000000000","message":"that\u0027s correct, in Bionic default version is Python 3.6\nI\u0027m not sure we want to delay dealing with this","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b33b84efd220e70ea2c10602a8e8b345e088ed61","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d subprocess.check_output(\"ip link show type macvtap\","},{"line_number":49,"context_line":"                                             shell\u003dTrue).split(\"\\n\")"},{"line_number":50,"context_line":"        for iface_line in interfaces:"},{"line_number":51,"context_line":"            if \u0027macvtap\u0027 in iface_line:"},{"line_number":52,"context_line":"                iface_string \u003d iface_line.split(\u0027@\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_30492ab6","line":49,"updated":"2019-06-14 08:24:35.000000000","message":"nit: shell\u003dTrue is not needed","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b33b84efd220e70ea2c10602a8e8b345e088ed61","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                ifaces \u003d iface_string[0].split(\u0027 \u0027)"},{"line_number":54,"context_line":"                ip_cmd \u003d (\"ip link set dev %s multicast on \""},{"line_number":55,"context_line":"                          \"allmulticast on\") % ifaces[1]"},{"line_number":56,"context_line":"                subprocess.call(ip_cmd, shell\u003dTrue)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    if action !\u003d \"release\":"},{"line_number":59,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_d0c9ae25","line":56,"updated":"2019-06-14 08:24:35.000000000","message":"nor here","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"8c15a386108c0a49db9d4ad751a3ea21609f8eec","unresolved":false,"context_lines":[{"line_number":53,"context_line":"                ifaces \u003d iface_string[0].split(\u0027 \u0027)"},{"line_number":54,"context_line":"                ip_cmd \u003d (\"ip link set dev %s multicast on \""},{"line_number":55,"context_line":"                          \"allmulticast on\") % ifaces[1]"},{"line_number":56,"context_line":"                subprocess.call(ip_cmd, shell\u003dTrue)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    if action !\u003d \"release\":"},{"line_number":59,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_5ceb8b76","line":56,"in_reply_to":"9fb8cfa7_d0c9ae25","updated":"2019-06-14 21:11:28.000000000","message":"as a single command, I thought it was because the kernel tries to exec it in one go.","commit_id":"d7c451a0e2f8126bbf63e4c7ceb8e1489187da15"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"f06d0a0b78009eab9f42183d60fd4635c80f0bb8","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    action \u003d sys.argv[2]"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    if action \u003d\u003d \"started\":"},{"line_number":48,"context_line":"        interfaces \u003d str("},{"line_number":49,"context_line":"            subprocess.check_output("},{"line_number":50,"context_line":"                [\u0027ip\u0027, \u0027link\u0027, \u0027show\u0027, \u0027type\u0027, \u0027macvtap\u0027]"},{"line_number":51,"context_line":"            )).split(\"\\n\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fb8cfa7_87ee86eb","line":48,"range":{"start_line":48,"start_character":21,"end_line":48,"end_character":24},"updated":"2019-06-17 01:05:19.000000000","message":"It\u0027s not working for python3, I think we need decode here, could be followed up.","commit_id":"c59dc1386f3d9a5bec3457aee8417c1deb6513e7"}]}
