)]}'
{"nova/network/linux_net.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d2b17d15a9faca901ae6f55085f6a767188dfbaf","unresolved":false,"context_lines":[{"line_number":1520,"context_line":"            else:"},{"line_number":1521,"context_line":"                # Not eligible for retry"},{"line_number":1522,"context_line":"                if check_exit_code:"},{"line_number":1523,"context_line":"                    LOG.warning(\u0027Rule edit for %s failed and we do not know \u0027"},{"line_number":1524,"context_line":"                                \u0027how to retry.\u0027,"},{"line_number":1525,"context_line":"                                table)"},{"line_number":1526,"context_line":"                    raise"},{"line_number":1527,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_9a10d651","line":1524,"range":{"start_line":1523,"start_character":61,"end_line":1524,"end_character":48},"updated":"2019-02-20 21:35:00.000000000","message":"How about\n\n ... failed. Not eligible for retry.\n\ninstead if we might want to distinguish this from line 1511 warning? I was a little confused since this message(we do not know how to retry).","commit_id":"1d7c9edc5e3b101273043641d146719e243b53cf"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"fe7907d7aaa2ed9076f702f4013429770532ea3d","unresolved":false,"context_lines":[{"line_number":1520,"context_line":"            else:"},{"line_number":1521,"context_line":"                # Not eligible for retry"},{"line_number":1522,"context_line":"                if check_exit_code:"},{"line_number":1523,"context_line":"                    LOG.warning(\u0027Rule edit for %s failed and we do not know \u0027"},{"line_number":1524,"context_line":"                                \u0027how to retry.\u0027,"},{"line_number":1525,"context_line":"                                table)"},{"line_number":1526,"context_line":"                    raise"},{"line_number":1527,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5fc1f717_08d1fffb","line":1524,"range":{"start_line":1523,"start_character":61,"end_line":1524,"end_character":48},"in_reply_to":"9fdfeff1_9a10d651","updated":"2019-03-08 00:11:47.000000000","message":"Done","commit_id":"1d7c9edc5e3b101273043641d146719e243b53cf"}],"nova/privsep/linux_net.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"797a9ee8ca1c5782f63ae71ba8636b1e49763c24","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":266,"context_line":"def modify_ebtables(table, rule, insert_rule\u003dTrue):"},{"line_number":267,"context_line":"    cmd \u003d [\u0027ebtables\u0027, \u0027--concurrent\u0027, \u0027-t\u0027, table]"},{"line_number":268,"context_line":"    if insert_rule:"},{"line_number":269,"context_line":"        cmd.append(\u0027-I\u0027)"},{"line_number":270,"context_line":"    else:"},{"line_number":271,"context_line":"        cmd.append(\u0027-D\u0027)"},{"line_number":272,"context_line":"    cmd.extend(rule)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    processutils.execute(*cmd, check_exit_code\u003d[0])"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_ad73b44d","line":274,"range":{"start_line":267,"start_character":0,"end_line":274,"end_character":51},"updated":"2019-03-26 18:19:43.000000000","message":"The guts of this aren\u0027t unit tested anymore.","commit_id":"81272eb8c86ceffca39a916ee4515e1dc8b63e09"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ab9f82358ae08203758bddbd715d3d70f1585c86","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":266,"context_line":"def modify_ebtables(table, rule, insert_rule\u003dTrue):"},{"line_number":267,"context_line":"    cmd \u003d [\u0027ebtables\u0027, \u0027--concurrent\u0027, \u0027-t\u0027, table]"},{"line_number":268,"context_line":"    if insert_rule:"},{"line_number":269,"context_line":"        cmd.append(\u0027-I\u0027)"},{"line_number":270,"context_line":"    else:"},{"line_number":271,"context_line":"        cmd.append(\u0027-D\u0027)"},{"line_number":272,"context_line":"    cmd.extend(rule)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    processutils.execute(*cmd, check_exit_code\u003d[0])"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_9ba4dba7","line":274,"range":{"start_line":267,"start_character":0,"end_line":274,"end_character":51},"in_reply_to":"5fc1f717_5b9c3369","updated":"2019-03-26 22:24:07.000000000","message":"I\u0027d prefer to see that one underneath this series so these patches can be clean and not drop coverage. I mentioned in https://review.openstack.org/#/c/635431/ that I don\u0027t really care how it\u0027s done - we can rebase so (the fixture part of) https://review.openstack.org/#/c/647849 is on the bottom, we can squash (the fixture part) into the bottom patch and then fix up the tests; whatever.","commit_id":"81272eb8c86ceffca39a916ee4515e1dc8b63e09"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bb0f69b27a1ff25daa578fa58dc1379e1e2f169f","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":266,"context_line":"def modify_ebtables(table, rule, insert_rule\u003dTrue):"},{"line_number":267,"context_line":"    cmd \u003d [\u0027ebtables\u0027, \u0027--concurrent\u0027, \u0027-t\u0027, table]"},{"line_number":268,"context_line":"    if insert_rule:"},{"line_number":269,"context_line":"        cmd.append(\u0027-I\u0027)"},{"line_number":270,"context_line":"    else:"},{"line_number":271,"context_line":"        cmd.append(\u0027-D\u0027)"},{"line_number":272,"context_line":"    cmd.extend(rule)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    processutils.execute(*cmd, check_exit_code\u003d[0])"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_5b9c3369","line":274,"range":{"start_line":267,"start_character":0,"end_line":274,"end_character":51},"in_reply_to":"5fc1f717_ad73b44d","updated":"2019-03-26 22:16:30.000000000","message":"@Eric,\n\nThat is a nice point.\nAnd you are submitting https://review.openstack.org/#/c/647849 as the unit tests and now we saw this code works well as we expected on the patch.\nDo we need to merge the unit test patch into this?\nOr is it fine to approve this first?","commit_id":"81272eb8c86ceffca39a916ee4515e1dc8b63e09"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"3f23b91d0d77f50d4c2b99d4edb61031d9f81739","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        cmd.append(\u0027-I\u0027)"},{"line_number":257,"context_line":"    else:"},{"line_number":258,"context_line":"        cmd.append(\u0027-D\u0027)"},{"line_number":259,"context_line":"    cmd.extend(rule)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    processutils.execute(*cmd, check_exit_code\u003d[0])"}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_7ac5af8d","line":259,"range":{"start_line":259,"start_character":0,"end_line":259,"end_character":20},"updated":"2019-07-29 17:24:10.000000000","message":"This seems pretty insecure, but I guess that\u0027s not related to this patch.","commit_id":"cc76d7cfb33b7a4bc84d148230208714a7b33770"}]}
