)]}'
{"nova/rootwrap/compute.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"d2bbc32d476df64e32ef00a8a4c6e430353b0ae0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from nova.rootwrap.filters import CommandFilter, DnsmasqFilter, KillFilter"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"filters \u003d ["},{"line_number":22,"context_line":"    # nova/virt/disk/mount.py: \u0027kpartx\u0027, \u0027-a\u0027, device"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAD3%2F%2F8hI%3D","line":19,"updated":"2012-01-19 17:38:12.000000000","message":"Technically, this line violates our HACKING import convention. Would you mind fixing this while you\u0027re here?","commit_id":"2100fedfaab09fd95e8c66d83a95e4fd11b29c53"}],"nova/rootwrap/network.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"d2bbc32d476df64e32ef00a8a4c6e430353b0ae0","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from nova.rootwrap.filters import CommandFilter, DnsmasqFilter, KillFilter"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"filters \u003d ["},{"line_number":22,"context_line":"    # nova/network/linux_net.py: \u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, str(floating_ip)+\u0027/32\u0027i.."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAD3%2F%2F8hE%3D","line":19,"updated":"2012-01-19 17:38:12.000000000","message":"Same request regarding imports here.","commit_id":"2100fedfaab09fd95e8c66d83a95e4fd11b29c53"}],"nova/tests/test_nova_rootwrap.py":[{"author":{"_account_id":1132,"name":"Brian Waldon","email":"brian@waldon.cc","username":"bcwaldon"},"change_message_id":"d2bbc32d476df64e32ef00a8a4c6e430353b0ae0","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":15,"context_line":"#    under the License."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from nova.rootwrap.filters import CommandFilter, RegExpFilter, DnsmasqFilter"},{"line_number":18,"context_line":"from nova.rootwrap.wrapper import match_filter"},{"line_number":19,"context_line":"from nova import test"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAD3%2F%2F8hA%3D","side":"PARENT","line":17,"updated":"2012-01-19 17:38:12.000000000","message":"And all of these imports need some TLC.","commit_id":"885b9aa70da338307c37d8eba84b3bc1533058bb"},{"author":{"_account_id":1419,"name":"Mike Pittaro","email":"mikeyp@LaHondaResearch.org","username":"mikeyp-3"},"change_message_id":"5a9d2a0a45b7c83328eb1c537a591024a51498b2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            [\u0027FLAGFILE\u003dA\u0027, \u0027NETWORK_ID\u003d\"foo bar\"\u0027, \u0027/usr/bin/dnsmasq\u0027, \u0027foo\u0027])"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def test_kill_filter(self):"},{"line_number":64,"context_line":"        p \u003d subprocess.Popen([\"/bin/sleep\", \"5\"])"},{"line_number":65,"context_line":"        f \u003d filters.KillFilter(\"/bin/kill\", \"root\","},{"line_number":66,"context_line":"                               [\"-ALRM\"],"},{"line_number":67,"context_line":"                               [\"/bin/sleep\"])"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAD3%2F%2F8EI%3D","line":64,"updated":"2012-01-20 17:31:27.000000000","message":"I would make this longer than 5 seconds, to avoid potential race conditions.","commit_id":"0384c59d3928e2b568faa6ff03d3881968269a5c"}]}
