)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"76d7f25cad1f2a401c3153f847fe5477730482e3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     xiayu \u003c1013230155@qq.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-08 00:26:07 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Astara oslo.rootwrap"},{"line_number":8,"context_line":"Use oslo.rootwrap to replace the default root_helper sudo. Add"},{"line_number":9,"context_line":"network filer for ip, ovs-vsctl, ovs-ofctl command."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa69d971_89a6fc51","line":7,"range":{"start_line":7,"start_character":12,"end_line":7,"end_character":20},"updated":"2016-01-07 21:17:00.000000000","message":"can you separate the commit title from the body with a blank line?","commit_id":"f7116d20b3f88d6a88d65f92eac2d985f18a05d5"}],"etc/rootwrap.d/network.filters":[{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"76d7f25cad1f2a401c3153f847fe5477730482e3","unresolved":false,"context_lines":[{"line_number":2,"context_line":"# This file should be owned by (and only-writeable by) the root user"},{"line_number":3,"context_line":""},{"line_number":4,"context_line":"[Filters]"},{"line_number":5,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027link\u0027, ..  "},{"line_number":6,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027addr\u0027, .."},{"line_number":7,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027netns\u0027, .."},{"line_number":8,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027route\u0027, .."}],"source_content_type":"application/octet-stream","patch_set":2,"id":"fa69d971_69fb8848","line":5,"range":{"start_line":5,"start_character":49,"end_line":5,"end_character":51},"updated":"2016-01-07 21:17:00.000000000","message":"whitespace","commit_id":"f7116d20b3f88d6a88d65f92eac2d985f18a05d5"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"bfd6329d42dd6496177f78d4c6a416805a9559f5","unresolved":false,"context_lines":[{"line_number":6,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027addr\u0027, .."},{"line_number":7,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027netns\u0027, .."},{"line_number":8,"context_line":"# astara/common/linux/ip_lib.py: \u0027ip\u0027, \u0027route\u0027, .."},{"line_number":9,"context_line":"ip: CommandFilter, ip, root"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# astara/common/linux/interface.py: \u0027ovs-vsctl\u0027.."},{"line_number":12,"context_line":"ovs-vsctl: CommandFilter, ovs-vsctl, root"}],"source_content_type":"application/octet-stream","patch_set":6,"id":"da6ed579_556ddd02","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":17},"updated":"2016-01-12 19:57:56.000000000","message":"ip netns exec is an easy way to gain root that CommandFilter does not handle properly.  We need to use IpFilter because it is setup to handle this specific case [1].\n\n[1] https://git.openstack.org/cgit/openstack/oslo.rootwrap/tree/oslo_rootwrap/filters.py#n251","commit_id":"d3c3817110520bcfce6c54587bb488a2e4c8b54d"}]}
