)]}'
{"nova/privsep/linux_net.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1f355e0147476fbc062a95cfb1bd29556df51299","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"def ipv4_forwarding_check():"},{"line_number":252,"context_line":"    stdout, stderr \u003d processutils.execute(\u0027sysctl\u0027, \u0027-n\u0027,"},{"line_number":253,"context_line":"                                          \u0027net.ipv4.ip_forward\u0027)"},{"line_number":254,"context_line":"    return stdout.strip() is \u00271\u0027"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_e1be12fe","line":253,"range":{"start_line":252,"start_character":4,"end_line":253,"end_character":64},"updated":"2019-02-07 14:32:12.000000000","message":"We used to have unit test coverage for this, but now it\u0027s gone.","commit_id":"d928de52fe2fe43d9eae796bf60273551a61e2f3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"c5740723e8a6fdced44bd494fcfa94320e2503a0","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"def ipv4_forwarding_check():"},{"line_number":252,"context_line":"    stdout, stderr \u003d processutils.execute(\u0027sysctl\u0027, \u0027-n\u0027,"},{"line_number":253,"context_line":"                                          \u0027net.ipv4.ip_forward\u0027)"},{"line_number":254,"context_line":"    return stdout.strip() is \u00271\u0027"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_e5a61e54","line":253,"range":{"start_line":252,"start_character":4,"end_line":253,"end_character":64},"in_reply_to":"9fdfeff1_e1be12fe","updated":"2019-03-07 23:40:18.000000000","message":"Done","commit_id":"d928de52fe2fe43d9eae796bf60273551a61e2f3"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1f355e0147476fbc062a95cfb1bd29556df51299","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":258,"context_line":"def _enable_ipv4_forwarding_inner():"},{"line_number":259,"context_line":"    processutils.execute(\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv4.ip_forward\u003d1\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_a136cab3","line":259,"range":{"start_line":259,"start_character":4,"end_line":259,"end_character":65},"updated":"2019-02-07 14:32:12.000000000","message":"and afaict we never had UT coverage for this, which should probably be remedied (fup would be okay).","commit_id":"d928de52fe2fe43d9eae796bf60273551a61e2f3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"c5740723e8a6fdced44bd494fcfa94320e2503a0","unresolved":false,"context_lines":[{"line_number":256,"context_line":""},{"line_number":257,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":258,"context_line":"def _enable_ipv4_forwarding_inner():"},{"line_number":259,"context_line":"    processutils.execute(\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv4.ip_forward\u003d1\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5fc1f717_85639a1a","line":259,"range":{"start_line":259,"start_character":4,"end_line":259,"end_character":65},"in_reply_to":"9fdfeff1_a136cab3","updated":"2019-03-07 23:40:18.000000000","message":"Done","commit_id":"d928de52fe2fe43d9eae796bf60273551a61e2f3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"da09bcb56e54833d31146dfe15eba3ad6b63d36d","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        _enable_ipv4_forwarding_inner()"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"def ipv4_forwarding_check():"},{"line_number":256,"context_line":"    stdout, stderr \u003d processutils.execute(\u0027sysctl\u0027, \u0027-n\u0027,"},{"line_number":257,"context_line":"                                          \u0027net.ipv4.ip_forward\u0027)"},{"line_number":258,"context_line":"    return stdout.strip() is \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_a52b4492","line":255,"updated":"2019-03-07 13:53:59.000000000","message":"nit: i generally prefer to read this info using file ip\ne.g. with open(\u0027/proc/sys/net/ipv4/ip_forward\u0027, \u0027r\u0027) file:\n         return file.readline.strip() \u003d\u003d \u00271\u0027","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"dd4f18d6fddf07b988bf8aa94edd1960e570ad8a","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        _enable_ipv4_forwarding_inner()"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"def ipv4_forwarding_check():"},{"line_number":256,"context_line":"    stdout, stderr \u003d processutils.execute(\u0027sysctl\u0027, \u0027-n\u0027,"},{"line_number":257,"context_line":"                                          \u0027net.ipv4.ip_forward\u0027)"},{"line_number":258,"context_line":"    return stdout.strip() is \u00271\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_3736a105","line":255,"in_reply_to":"5fc1f717_a52b4492","updated":"2019-03-07 22:53:48.000000000","message":"I can do that, but then this isn\u0027t a strict port of the previous code...","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"81d47a73069d06d17bb397bfeeb9f2cef08bb3b1","unresolved":false,"context_lines":[{"line_number":253,"context_line":""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"def ipv4_forwarding_check():"},{"line_number":256,"context_line":"    with open(\u0027/proc/sys/net/ipv4/ip_forward\u0027, \u0027r\u0027) as f:"},{"line_number":257,"context_line":"        return f.readline().strip() \u003d\u003d \u00271\u0027"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_0df688d8","line":256,"range":{"start_line":256,"start_character":14,"end_line":256,"end_character":57},"updated":"2019-03-25 23:55:01.000000000","message":"I guess this is the change Sean asked you to make? Definitely should have been in a separate patch. But since Sean is so smart and this has been batted around so much...\n\nAlso there\u0027s no unit test for the guts of this method. But since unit testing open() sucks and this has been batted around so much...","commit_id":"8a8f503bd02183f6403889fbbfa8addbc64c3259"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5c13938b8a73c82059cca5a6fb2c102d5d798af5","unresolved":false,"context_lines":[{"line_number":252,"context_line":"        _enable_ipv4_forwarding_inner()"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"def ipv4_forwarding_check():"},{"line_number":256,"context_line":"    with open(\u0027/proc/sys/net/ipv4/ip_forward\u0027, \u0027r\u0027) as f:"},{"line_number":257,"context_line":"        return f.readline().strip() \u003d\u003d \u00271\u0027"},{"line_number":258,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_c0252c5e","line":255,"range":{"start_line":255,"start_character":4,"end_line":255,"end_character":25},"updated":"2019-04-01 20:06:20.000000000","message":"note to self: still looking for UT for this..","commit_id":"7df0572c21e1aa13e1b4c42d5a20b9f92c1a1af5"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5c13938b8a73c82059cca5a6fb2c102d5d798af5","unresolved":false,"context_lines":[{"line_number":258,"context_line":""},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":261,"context_line":"def _enable_ipv4_forwarding_inner():"},{"line_number":262,"context_line":"    processutils.execute(\u0027sysctl\u0027, \u0027-w\u0027, \u0027net.ipv4.ip_forward\u003d1\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"5fc1f717_e02aa82a","line":261,"range":{"start_line":261,"start_character":4,"end_line":261,"end_character":33},"updated":"2019-04-01 20:06:20.000000000","message":"..and this","commit_id":"7df0572c21e1aa13e1b4c42d5a20b9f92c1a1af5"}],"nova/tests/unit/network/test_linux_net.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":930,"context_line":"            \"    inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0\\n\""},{"line_number":931,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":932,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":933,"context_line":"        expected \u003d ["},{"line_number":934,"context_line":"            (\u0027sysctl\u0027, \u0027-n\u0027, \u0027net.ipv4.ip_forward\u0027),"},{"line_number":935,"context_line":"        ]"},{"line_number":936,"context_line":"        self._test_initialize_gateway("},{"line_number":937,"context_line":"            existing, expected,"},{"line_number":938,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_8b8f32cb","side":"PARENT","line":935,"range":{"start_line":933,"start_character":7,"end_line":935,"end_character":9},"updated":"2019-03-07 18:18:07.000000000","message":"oh you remvoed this","commit_id":"6ae643261f872ca3ee4b904d47aca4bddcd03897"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":955,"context_line":"            \"dynamic eth0\\n\""},{"line_number":956,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":957,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":958,"context_line":"        expected \u003d ["},{"line_number":959,"context_line":"            (\u0027sysctl\u0027, \u0027-n\u0027, \u0027net.ipv4.ip_forward\u0027),"},{"line_number":960,"context_line":"        ]"},{"line_number":961,"context_line":"        self._test_initialize_gateway("},{"line_number":962,"context_line":"            existing, expected,"},{"line_number":963,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_8be1729d","side":"PARENT","line":960,"range":{"start_line":958,"start_character":8,"end_line":960,"end_character":9},"updated":"2019-03-07 18:18:07.000000000","message":"same","commit_id":"6ae643261f872ca3ee4b904d47aca4bddcd03897"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":981,"context_line":"            \"    inet 192.168.0.1/24 brd 192.168.0.255 scope global eth0\\n\""},{"line_number":982,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":983,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":984,"context_line":"        expected \u003d ["},{"line_number":985,"context_line":"            (\u0027sysctl\u0027, \u0027-n\u0027, \u0027net.ipv4.ip_forward\u0027),"},{"line_number":986,"context_line":"        ]"},{"line_number":987,"context_line":"        self._test_initialize_gateway("},{"line_number":988,"context_line":"            existing, expected, routes\u003droutes,"},{"line_number":989,"context_line":"            deleted_routes\u003d[mock.call(\u0027eth0\u0027, \u0027default\u0027),"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_ab030e42","side":"PARENT","line":986,"range":{"start_line":984,"start_character":7,"end_line":986,"end_character":9},"updated":"2019-03-07 18:18:07.000000000","message":"this does not cause an error","commit_id":"6ae643261f872ca3ee4b904d47aca4bddcd03897"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":985,"context_line":"            (\u0027sysctl\u0027, \u0027-n\u0027, \u0027net.ipv4.ip_forward\u0027),"},{"line_number":986,"context_line":"        ]"},{"line_number":987,"context_line":"        self._test_initialize_gateway("},{"line_number":988,"context_line":"            existing, expected, routes\u003droutes,"},{"line_number":989,"context_line":"            deleted_routes\u003d[mock.call(\u0027eth0\u0027, \u0027default\u0027),"},{"line_number":990,"context_line":"                            mock.call(\u0027eth0\u0027, \u0027192.168.100.0/24\u0027)],"},{"line_number":991,"context_line":"            added_routes\u003d[mock.call([\u0027default\u0027, \u0027via\u0027, \u0027192.168.0.1\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_0b7262e6","side":"PARENT","line":988,"range":{"start_line":988,"start_character":22,"end_line":988,"end_character":30},"updated":"2019-03-07 18:18:07.000000000","message":"because you removed it here","commit_id":"6ae643261f872ca3ee4b904d47aca4bddcd03897"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":1026,"context_line":"            \"    mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000\\n\""},{"line_number":1027,"context_line":"            \"    link/ether de:ad:be:ef:be:ef brd ff:ff:ff:ff:ff:ff\\n\""},{"line_number":1028,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":1029,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":1030,"context_line":"        expected \u003d ["},{"line_number":1031,"context_line":"            (\u0027sysctl\u0027, \u0027-n\u0027, \u0027net.ipv4.ip_forward\u0027),"},{"line_number":1032,"context_line":"        ]"},{"line_number":1033,"context_line":"        self._test_initialize_gateway("},{"line_number":1034,"context_line":"            existing, expected,"},{"line_number":1035,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_eb459671","side":"PARENT","line":1032,"range":{"start_line":1029,"start_character":6,"end_line":1032,"end_character":9},"updated":"2019-03-07 18:18:07.000000000","message":"same you removed this","commit_id":"6ae643261f872ca3ee4b904d47aca4bddcd03897"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":923,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":924,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":925,"context_line":"        self._test_initialize_gateway("},{"line_number":926,"context_line":"            existing, expected,"},{"line_number":927,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"},{"line_number":928,"context_line":"            address_commands\u003d["},{"line_number":929,"context_line":"                mock.call(\u0027eth0\u0027, \u0027del\u0027, [\u0027192.168.0.1/24\u0027, \u0027brd\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_0bbd8264","line":926,"range":{"start_line":926,"start_character":22,"end_line":926,"end_character":30},"updated":"2019-03-07 18:18:07.000000000","message":"without removing this","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"dd4f18d6fddf07b988bf8aa94edd1960e570ad8a","unresolved":false,"context_lines":[{"line_number":923,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":924,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":925,"context_line":"        self._test_initialize_gateway("},{"line_number":926,"context_line":"            existing, expected,"},{"line_number":927,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"},{"line_number":928,"context_line":"            address_commands\u003d["},{"line_number":929,"context_line":"                mock.call(\u0027eth0\u0027, \u0027del\u0027, [\u0027192.168.0.1/24\u0027, \u0027brd\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_128ff323","line":926,"range":{"start_line":926,"start_character":22,"end_line":926,"end_character":30},"in_reply_to":"5fc1f717_0bbd8264","updated":"2019-03-07 22:53:48.000000000","message":"Done","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":948,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":949,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":950,"context_line":"        self._test_initialize_gateway("},{"line_number":951,"context_line":"            existing, expected,"},{"line_number":952,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"},{"line_number":953,"context_line":"            address_commands\u003d["},{"line_number":954,"context_line":"                mock.call(\u0027eth0\u0027, \u0027del\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_4bf5ca56","line":951,"range":{"start_line":951,"start_character":22,"end_line":951,"end_character":30},"updated":"2019-03-07 18:18:07.000000000","message":"so this is not defined.","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"dd4f18d6fddf07b988bf8aa94edd1960e570ad8a","unresolved":false,"context_lines":[{"line_number":948,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":949,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":950,"context_line":"        self._test_initialize_gateway("},{"line_number":951,"context_line":"            existing, expected,"},{"line_number":952,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"},{"line_number":953,"context_line":"            address_commands\u003d["},{"line_number":954,"context_line":"                mock.call(\u0027eth0\u0027, \u0027del\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_32946f37","line":951,"range":{"start_line":951,"start_character":22,"end_line":951,"end_character":30},"in_reply_to":"5fc1f717_4bf5ca56","updated":"2019-03-07 22:53:48.000000000","message":"Done","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bfb6808a6546088d97f1bb42f47930fbf0a8bdb2","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":1018,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":1019,"context_line":"        self._test_initialize_gateway("},{"line_number":1020,"context_line":"            existing, expected,"},{"line_number":1021,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"},{"line_number":1022,"context_line":"            address_commands\u003d["},{"line_number":1023,"context_line":"                mock.call(\u0027eth0\u0027, \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_8b565229","line":1020,"range":{"start_line":1020,"start_character":22,"end_line":1020,"end_character":30},"updated":"2019-03-07 18:18:07.000000000","message":"but not this","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"dd4f18d6fddf07b988bf8aa94edd1960e570ad8a","unresolved":false,"context_lines":[{"line_number":1017,"context_line":"            \"    inet6 dead::beef:dead:beef:dead/64 scope link\\n\""},{"line_number":1018,"context_line":"            \"    valid_lft forever preferred_lft forever\\n\")"},{"line_number":1019,"context_line":"        self._test_initialize_gateway("},{"line_number":1020,"context_line":"            existing, expected,"},{"line_number":1021,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)],"},{"line_number":1022,"context_line":"            address_commands\u003d["},{"line_number":1023,"context_line":"                mock.call(\u0027eth0\u0027, \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5fc1f717_92a2039a","line":1020,"range":{"start_line":1020,"start_character":22,"end_line":1020,"end_character":30},"in_reply_to":"5fc1f717_8b565229","updated":"2019-03-07 22:53:48.000000000","message":"Done","commit_id":"fd929991fec72f1b772ce8387543ef6d91d70298"}],"nova/tests/unit/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"81d47a73069d06d17bb397bfeeb9f2cef08bb3b1","unresolved":false,"context_lines":[{"line_number":1146,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net._enable_ipv4_forwarding_inner\u0027)"},{"line_number":1147,"context_line":"    def test_spawn_vlanmanager(self, mock_forwarding_enable,"},{"line_number":1148,"context_line":"                               mock_forwarding_check,"},{"line_number":1149,"context_line":"                               mock_address_command_horrid,"},{"line_number":1150,"context_line":"                               mock_change_ip, mock_set_macaddr,"},{"line_number":1151,"context_line":"                               mock_set_enabled, mock_set_mtu, mock_add_bridge,"},{"line_number":1152,"context_line":"                               mock_create_vifs):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5fc1f717_8d3358ab","line":1149,"range":{"start_line":1149,"start_character":52,"end_line":1149,"end_character":58},"updated":"2019-03-25 23:55:01.000000000","message":":P","commit_id":"8a8f503bd02183f6403889fbbfa8addbc64c3259"}]}
