)]}'
{"nova/network/linux_net.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e8c93daea007aea49066a8e4b224b2d33cd185b2","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"            return int(f.read())"},{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":""},{"line_number":1200,"context_line":"def _ip_bridge_cmd(action, params, device):"},{"line_number":1201,"context_line":"    \"\"\"Build commands to add/del IPs to bridges/devices.\"\"\""},{"line_number":1202,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":1203,"context_line":"    cmd.extend(params)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_9aba3edc","side":"PARENT","line":1200,"range":{"start_line":1200,"start_character":5,"end_line":1200,"end_character":18},"updated":"2019-03-06 15:55:29.000000000","message":"What in the..","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"a5dd8d723a3313562f303ac45b3b94dfc7092372","unresolved":false,"context_lines":[{"line_number":1197,"context_line":"            return int(f.read())"},{"line_number":1198,"context_line":""},{"line_number":1199,"context_line":""},{"line_number":1200,"context_line":"def _ip_bridge_cmd(action, params, device):"},{"line_number":1201,"context_line":"    \"\"\"Build commands to add/del IPs to bridges/devices.\"\"\""},{"line_number":1202,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":1203,"context_line":"    cmd.extend(params)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_09303856","side":"PARENT","line":1200,"range":{"start_line":1200,"start_character":5,"end_line":1200,"end_character":18},"in_reply_to":"5fc1f717_9aba3edc","updated":"2019-03-07 11:51:17.000000000","message":"Sorry, I do not what action this comment is calling for?","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"}],"nova/privsep/linux_net.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e8c93daea007aea49066a8e4b224b2d33cd185b2","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":156,"context_line":"def address_command_horrid(device, action, params):"},{"line_number":157,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":158,"context_line":"    cmd.extend(params)"},{"line_number":159,"context_line":"    cmd.extend([\u0027dev\u0027, device])"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_1ad72ef0","line":156,"updated":"2019-03-06 15:55:29.000000000","message":"Why is this any more horrid than many of the other things here? Unless this is for shock value to push a change later, I\u0027m not sure that the _horrid bit is really necessary or useful here.","commit_id":"ced9c58503ed539787deee4d540b201445d03419"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"a5dd8d723a3313562f303ac45b3b94dfc7092372","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":156,"context_line":"def address_command_horrid(device, action, params):"},{"line_number":157,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":158,"context_line":"    cmd.extend(params)"},{"line_number":159,"context_line":"    cmd.extend([\u0027dev\u0027, device])"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_69b1bc8f","line":156,"in_reply_to":"5fc1f717_1794e036","updated":"2019-03-07 11:51:17.000000000","message":"After talking with Dan on IRC I have renamed these to something less... controversial.","commit_id":"ced9c58503ed539787deee4d540b201445d03419"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bff1561bf956198b2ace8fdda4388879aee037c7","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":156,"context_line":"def address_command_horrid(device, action, params):"},{"line_number":157,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":158,"context_line":"    cmd.extend(params)"},{"line_number":159,"context_line":"    cmd.extend([\u0027dev\u0027, device])"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_1d32c8f2","line":156,"in_reply_to":"5fc1f717_1ad72ef0","updated":"2019-03-06 16:11:22.000000000","message":"It\u0027s bad of how it\u0027s used, rather than what it does (though it also doesn\u0027t map to a single command but rather multiple subcommands of the \u0027ip addr\u0027 utility (well, \u0027addr\u0027 command of the \u0027ip\u0027 utility)). [1] is crazy town. As for whether the \u0027horrid\u0027 bit is necessary, we really should figure out if/why we even do [1] so I guess this name does serve a purpose? Also, mikal.\n\n[1] https://review.openstack.org/#/c/624592/8/nova/network/linux_net.py@800","commit_id":"ced9c58503ed539787deee4d540b201445d03419"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9104cda73c4b93c56480fd9d42cba982d61e751c","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":156,"context_line":"def address_command_horrid(device, action, params):"},{"line_number":157,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":158,"context_line":"    cmd.extend(params)"},{"line_number":159,"context_line":"    cmd.extend([\u0027dev\u0027, device])"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_9dba38dc","line":156,"in_reply_to":"5fc1f717_1d32c8f2","updated":"2019-03-06 16:22:38.000000000","message":"Yeah, I guess I\u0027d rather not name it like this, even though I \u003c3 mikal and his mikalness :)","commit_id":"ced9c58503ed539787deee4d540b201445d03419"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"0dddfd4c2270a923cf809a152896fd13cd8f8850","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"@nova.privsep.sys_admin_pctxt.entrypoint"},{"line_number":156,"context_line":"def address_command_horrid(device, action, params):"},{"line_number":157,"context_line":"    cmd \u003d [\u0027ip\u0027, \u0027addr\u0027, action]"},{"line_number":158,"context_line":"    cmd.extend(params)"},{"line_number":159,"context_line":"    cmd.extend([\u0027dev\u0027, device])"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_1794e036","line":156,"in_reply_to":"5fc1f717_9dba38dc","updated":"2019-03-06 20:52:59.000000000","message":"This is horrid because it takes arguments as a blob and just blindly executes them, which nothing else in privsep for nova does (we take things we substitute in like device names, not entire command lines). Untangling that was too much work to include in the privsep series, so these methods were named in an attempt to make it very clear that you shouldn\u0027t add more calls to them and that they need to go away.\n\nIts not a joke. Its a literal warning that this thing is horrid.\n\nThis patch has been up for nearly three months, so I am surprised that this issue is being mentioned for the first time now.","commit_id":"ced9c58503ed539787deee4d540b201445d03419"}],"nova/tests/functional/api_sample_tests/api_sample_base.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.set_device_enabled\u0027, fake_noop)"},{"line_number":129,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.set_device_macaddr\u0027, fake_noop)"},{"line_number":130,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.routes_show\u0027, fake_noop)"},{"line_number":131,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.lookup_ip\u0027, fake_noop)"},{"line_number":132,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.address_command_horrid\u0027,"},{"line_number":133,"context_line":"                      fake_noop)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_3fbf73fc","line":131,"range":{"start_line":131,"start_character":8,"end_line":131,"end_character":68},"updated":"2019-01-22 02:47:32.000000000","message":"It should be modified in the parent patch https://review.openstack.org/#/c/624591/ .","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.set_device_enabled\u0027, fake_noop)"},{"line_number":129,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.set_device_macaddr\u0027, fake_noop)"},{"line_number":130,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.routes_show\u0027, fake_noop)"},{"line_number":131,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.lookup_ip\u0027, fake_noop)"},{"line_number":132,"context_line":"        self.stub_out(\u0027nova.privsep.linux_net.address_command_horrid\u0027,"},{"line_number":133,"context_line":"                      fake_noop)"},{"line_number":134,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_c7d6c2f2","line":131,"range":{"start_line":131,"start_character":8,"end_line":131,"end_character":68},"in_reply_to":"9fdfeff1_3fbf73fc","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"}],"nova/tests/unit/network/test_linux_net.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":594,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":595,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027,"},{"line_number":596,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":597,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027fake\u0027, \u0027\u0027))"},{"line_number":598,"context_line":"    def test_linux_bridge_driver_plug(self, mock_lookup_ip, mock_routes_show,"},{"line_number":599,"context_line":"                                      mock_enabled, mock_add_bridge,"},{"line_number":600,"context_line":"                                      mock_add_rule):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_bf404309","line":597,"range":{"start_line":597,"start_character":4,"end_line":597,"end_character":78},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":594,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":595,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027,"},{"line_number":596,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":597,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027fake\u0027, \u0027\u0027))"},{"line_number":598,"context_line":"    def test_linux_bridge_driver_plug(self, mock_lookup_ip, mock_routes_show,"},{"line_number":599,"context_line":"                                      mock_enabled, mock_add_bridge,"},{"line_number":600,"context_line":"                                      mock_add_rule):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_07cdaa5c","line":597,"range":{"start_line":597,"start_character":4,"end_line":597,"end_character":78},"in_reply_to":"9fdfeff1_bf404309","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":880,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.route_delete\u0027)"},{"line_number":881,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.route_add_horrid\u0027)"},{"line_number":882,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":883,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":884,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":885,"context_line":"                return_value\u003d(\u0027fake\u0027, \u0027\u0027))"},{"line_number":886,"context_line":"    def _test_initialize_gateway(self, existing, expected,"},{"line_number":887,"context_line":"                                 mock_lookup_ip, mock_change_ip,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_df450719","line":884,"range":{"start_line":883,"start_character":4,"end_line":884,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":880,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.route_delete\u0027)"},{"line_number":881,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.route_add_horrid\u0027)"},{"line_number":882,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":883,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":884,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":885,"context_line":"                return_value\u003d(\u0027fake\u0027, \u0027\u0027))"},{"line_number":886,"context_line":"    def _test_initialize_gateway(self, existing, expected,"},{"line_number":887,"context_line":"                                 mock_lookup_ip, mock_change_ip,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_67058e7a","line":884,"range":{"start_line":883,"start_character":4,"end_line":884,"end_character":51},"in_reply_to":"9fdfeff1_df450719","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"            mock.patch(\u0027nova.privsep.linux_net.set_device_macaddr\u0027),"},{"line_number":1173,"context_line":"            mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027,"},{"line_number":1174,"context_line":"                       return_value\u003d(\u0027fake\u0027, \u0027\u0027)),"},{"line_number":1175,"context_line":"            mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":1176,"context_line":"                       return_value\u003d(\u0027fake\u0027, \u0027\u0027)),"},{"line_number":1177,"context_line":"            mock.patch.object(linux_net, \u0027_execute\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027)),"},{"line_number":1178,"context_line":"            mock.patch.object(netifaces, \u0027ifaddresses\u0027)"},{"line_number":1179,"context_line":"        ) as (device_exists, device_enabled, set_device_macaddr, routes_show,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_9f477f1e","line":1176,"range":{"start_line":1175,"start_character":0,"end_line":1176,"end_character":50},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":1172,"context_line":"            mock.patch(\u0027nova.privsep.linux_net.set_device_macaddr\u0027),"},{"line_number":1173,"context_line":"            mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027,"},{"line_number":1174,"context_line":"                       return_value\u003d(\u0027fake\u0027, \u0027\u0027)),"},{"line_number":1175,"context_line":"            mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":1176,"context_line":"                       return_value\u003d(\u0027fake\u0027, \u0027\u0027)),"},{"line_number":1177,"context_line":"            mock.patch.object(linux_net, \u0027_execute\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027)),"},{"line_number":1178,"context_line":"            mock.patch.object(netifaces, \u0027ifaddresses\u0027)"},{"line_number":1179,"context_line":"        ) as (device_exists, device_enabled, set_device_macaddr, routes_show,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_4704127c","line":1176,"range":{"start_line":1175,"start_character":0,"end_line":1176,"end_character":50},"in_reply_to":"9fdfeff1_9f477f1e","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8b9fb1407826547c97612b0d0a9f94628adca853","unresolved":false,"context_lines":[{"line_number":901,"context_line":""},{"line_number":902,"context_line":"        mock_execute.side_effect \u003d fake_execute"},{"line_number":903,"context_line":"        mock_routes.return_value \u003d (routes, \u0027\u0027)"},{"line_number":904,"context_line":"        mock_lookup_ip.return_value \u003d (existing, \u0027\u0027)"},{"line_number":905,"context_line":""},{"line_number":906,"context_line":"        network \u003d {\u0027dhcp_server\u0027: \u0027192.168.1.1\u0027,"},{"line_number":907,"context_line":"                   \u0027cidr\u0027: \u0027192.168.1.0/24\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_5bb10be1","line":904,"range":{"start_line":904,"start_character":8,"end_line":904,"end_character":52},"updated":"2019-02-07 12:59:24.000000000","message":"It should be in https://review.openstack.org/#/c/624591/ .","commit_id":"603c4cccc12dfad345d5552dc6ad5a206240a640"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"a5dd8d723a3313562f303ac45b3b94dfc7092372","unresolved":false,"context_lines":[{"line_number":901,"context_line":""},{"line_number":902,"context_line":"        mock_execute.side_effect \u003d fake_execute"},{"line_number":903,"context_line":"        mock_routes.return_value \u003d (routes, \u0027\u0027)"},{"line_number":904,"context_line":"        mock_lookup_ip.return_value \u003d (existing, \u0027\u0027)"},{"line_number":905,"context_line":""},{"line_number":906,"context_line":"        network \u003d {\u0027dhcp_server\u0027: \u0027192.168.1.1\u0027,"},{"line_number":907,"context_line":"                   \u0027cidr\u0027: \u0027192.168.1.0/24\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_89cd085f","line":904,"range":{"start_line":904,"start_character":8,"end_line":904,"end_character":52},"in_reply_to":"9fdfeff1_5bb10be1","updated":"2019-03-07 11:51:17.000000000","message":"Sorry. :(","commit_id":"603c4cccc12dfad345d5552dc6ad5a206240a640"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8b9fb1407826547c97612b0d0a9f94628adca853","unresolved":false,"context_lines":[{"line_number":910,"context_line":"        self.driver.initialize_gateway_device(\u0027eth0\u0027, network)"},{"line_number":911,"context_line":"        self.assertEqual(expected, executes)"},{"line_number":912,"context_line":"        self.assertTrue(mock_execute.called)"},{"line_number":913,"context_line":"        self.assertTrue(mock_lookup_ip.called)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        if routes_show_called:"},{"line_number":916,"context_line":"            mock_routes.assert_called_once_with(\u0027eth0\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_7bb40fd2","line":913,"range":{"start_line":913,"start_character":8,"end_line":913,"end_character":46},"updated":"2019-02-07 12:59:24.000000000","message":"ditto","commit_id":"603c4cccc12dfad345d5552dc6ad5a206240a640"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"a5dd8d723a3313562f303ac45b3b94dfc7092372","unresolved":false,"context_lines":[{"line_number":910,"context_line":"        self.driver.initialize_gateway_device(\u0027eth0\u0027, network)"},{"line_number":911,"context_line":"        self.assertEqual(expected, executes)"},{"line_number":912,"context_line":"        self.assertTrue(mock_execute.called)"},{"line_number":913,"context_line":"        self.assertTrue(mock_lookup_ip.called)"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"        if routes_show_called:"},{"line_number":916,"context_line":"            mock_routes.assert_called_once_with(\u0027eth0\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_29dad416","line":913,"range":{"start_line":913,"start_character":8,"end_line":913,"end_character":46},"in_reply_to":"9fdfeff1_7bb40fd2","updated":"2019-03-07 11:51:17.000000000","message":"Sorry. :(","commit_id":"603c4cccc12dfad345d5552dc6ad5a206240a640"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8b9fb1407826547c97612b0d0a9f94628adca853","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"            ifaddresses.assert_called_once_with(\u0027eth0\u0027)"},{"line_number":1156,"context_line":"            device_enabled.assert_called_once_with(\u0027eth0\u0027)"},{"line_number":1157,"context_line":"            set_device_macaddr.assert_called_once_with(\u0027bridge\u0027, fake_mac)"},{"line_number":1158,"context_line":"            lookup_ip.assert_called_once_with(\u0027eth0\u0027)"},{"line_number":1159,"context_line":""},{"line_number":1160,"context_line":"    def test_ensure_bridge_brclt_addif_exception(self):"},{"line_number":1161,"context_line":"        def fake_execute(*cmd, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_3bc6874b","line":1158,"range":{"start_line":1158,"start_character":12,"end_line":1158,"end_character":53},"updated":"2019-02-07 12:59:24.000000000","message":"ditto","commit_id":"603c4cccc12dfad345d5552dc6ad5a206240a640"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"a5dd8d723a3313562f303ac45b3b94dfc7092372","unresolved":false,"context_lines":[{"line_number":1155,"context_line":"            ifaddresses.assert_called_once_with(\u0027eth0\u0027)"},{"line_number":1156,"context_line":"            device_enabled.assert_called_once_with(\u0027eth0\u0027)"},{"line_number":1157,"context_line":"            set_device_macaddr.assert_called_once_with(\u0027bridge\u0027, fake_mac)"},{"line_number":1158,"context_line":"            lookup_ip.assert_called_once_with(\u0027eth0\u0027)"},{"line_number":1159,"context_line":""},{"line_number":1160,"context_line":"    def test_ensure_bridge_brclt_addif_exception(self):"},{"line_number":1161,"context_line":"        def fake_execute(*cmd, **kwargs):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5fc1f717_49d720ef","line":1158,"range":{"start_line":1158,"start_character":12,"end_line":1158,"end_character":53},"in_reply_to":"9fdfeff1_3bc6874b","updated":"2019-03-07 11:51:17.000000000","message":"Sorry. :(","commit_id":"603c4cccc12dfad345d5552dc6ad5a206240a640"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e8c93daea007aea49066a8e4b224b2d33cd185b2","unresolved":false,"context_lines":[{"line_number":953,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.1.1/24\u0027,"},{"line_number":954,"context_line":"             \u0027brd\u0027, \u0027192.168.1.255\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":955,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.0.1/24\u0027,"},{"line_number":956,"context_line":"             \u0027brd\u0027, \u0027192.168.0.255\u0027, \u0027scope\u0027, \u0027global\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":957,"context_line":"        ]"},{"line_number":958,"context_line":"        self._test_initialize_gateway("},{"line_number":959,"context_line":"            existing, expected,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_dabc46bd","side":"PARENT","line":956,"updated":"2019-03-06 15:55:29.000000000","message":"I\u0027m missing where assertions like these are made in the new code. New line 924 is the check, but .. is anything actually passing that command list?","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"9104cda73c4b93c56480fd9d42cba982d61e751c","unresolved":false,"context_lines":[{"line_number":953,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.1.1/24\u0027,"},{"line_number":954,"context_line":"             \u0027brd\u0027, \u0027192.168.1.255\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":955,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.0.1/24\u0027,"},{"line_number":956,"context_line":"             \u0027brd\u0027, \u0027192.168.0.255\u0027, \u0027scope\u0027, \u0027global\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":957,"context_line":"        ]"},{"line_number":958,"context_line":"        self._test_initialize_gateway("},{"line_number":959,"context_line":"            existing, expected,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_fdefbce6","side":"PARENT","line":956,"in_reply_to":"5fc1f717_ba4b7a85","updated":"2019-03-06 16:22:38.000000000","message":"linux_net is not all nova-network, AFAIK. I agree this one probably is, but...\n\nEither way, if we\u0027re dropping these tests, why are we adding the horrid_commands assertion without passing anything into it?","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bff1561bf956198b2ace8fdda4388879aee037c7","unresolved":false,"context_lines":[{"line_number":953,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.1.1/24\u0027,"},{"line_number":954,"context_line":"             \u0027brd\u0027, \u0027192.168.1.255\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":955,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.0.1/24\u0027,"},{"line_number":956,"context_line":"             \u0027brd\u0027, \u0027192.168.0.255\u0027, \u0027scope\u0027, \u0027global\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":957,"context_line":"        ]"},{"line_number":958,"context_line":"        self._test_initialize_gateway("},{"line_number":959,"context_line":"            existing, expected,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_ba4b7a85","side":"PARENT","line":956,"in_reply_to":"5fc1f717_dabc46bd","updated":"2019-03-06 16:11:22.000000000","message":"They\u0027re not. I\u0027ve discussed this with efried on another patch [1]. As noted there, there were \"reasons\" that testing the privsep stuff was difficult, but I don\u0027t recall what. However, I didn\u0027t think it was that important since all this stuff is basically dead code (it\u0027s nova-net) and the only reason we\u0027re even doing this is to kill rootwrap.\n\n[1] https://review.openstack.org/#/c/635431/5","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"a5dd8d723a3313562f303ac45b3b94dfc7092372","unresolved":false,"context_lines":[{"line_number":953,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.1.1/24\u0027,"},{"line_number":954,"context_line":"             \u0027brd\u0027, \u0027192.168.1.255\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":955,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.0.1/24\u0027,"},{"line_number":956,"context_line":"             \u0027brd\u0027, \u0027192.168.0.255\u0027, \u0027scope\u0027, \u0027global\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":957,"context_line":"        ]"},{"line_number":958,"context_line":"        self._test_initialize_gateway("},{"line_number":959,"context_line":"            existing, expected,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_e9628c16","side":"PARENT","line":956,"in_reply_to":"5fc1f717_e5bcfa6a","updated":"2019-03-07 11:51:17.000000000","message":"No, this is just me messing up. I put the plumbing in and then dropped the ball. You\u0027re welcome.","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3fbaf2533dd6834b8535f0824e9c4fab1363d5b5","unresolved":false,"context_lines":[{"line_number":953,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.1.1/24\u0027,"},{"line_number":954,"context_line":"             \u0027brd\u0027, \u0027192.168.1.255\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":955,"context_line":"            (\u0027ip\u0027, \u0027addr\u0027, \u0027add\u0027, \u0027192.168.0.1/24\u0027,"},{"line_number":956,"context_line":"             \u0027brd\u0027, \u0027192.168.0.255\u0027, \u0027scope\u0027, \u0027global\u0027, \u0027dev\u0027, \u0027eth0\u0027),"},{"line_number":957,"context_line":"        ]"},{"line_number":958,"context_line":"        self._test_initialize_gateway("},{"line_number":959,"context_line":"            existing, expected,"}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_e5bcfa6a","side":"PARENT","line":956,"in_reply_to":"5fc1f717_fdefbce6","updated":"2019-03-06 22:53:03.000000000","message":"so looking at the codesearch results this is only used\nin the l3net dirive here\nhttps://github.com/openstack/nova/blob/eaa29f71ef01f5da2edfa79886a302f8a5f352ae/nova/network/l3.py#L108\n\n\nso this partcalar code is nova-net only.\n\nthat said we do test privesep code in os-vif without any real issues \n\nhttps://github.com/openstack/os-vif/blob/master/vif_plug_ovs/tests/unit/test_linux_net.py\n\ni would point to the linux bridge driver\nbut apparently when the same route setting code was imported as a seed codebase for os-vif no tests were included for that\n\nhttps://github.com/openstack/os-vif/blob/master/vif_plug_linux_bridge/tests/unit/test_linux_net.py","commit_id":"99ad674c26fdacfff72d84624ee060cf0e33304b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e8c93daea007aea49066a8e4b224b2d33cd185b2","unresolved":false,"context_lines":[{"line_number":974,"context_line":"                                     \u0027192.168.0.254\u0027,"},{"line_number":975,"context_line":"                                     \u0027dev\u0027, \u0027eth0\u0027, \u0027proto\u0027, \u0027static\u0027])],"},{"line_number":976,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)]"},{"line_number":977,"context_line":"       )"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    def test_initialize_gateway_no_move_right_ip(self):"},{"line_number":980,"context_line":"        existing \u003d (\"2: eth0: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e \""}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_3a7d4a1c","line":977,"updated":"2019-03-06 15:55:29.000000000","message":"I think this is just whitespace damage, and not in a good way.","commit_id":"ced9c58503ed539787deee4d540b201445d03419"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bff1561bf956198b2ace8fdda4388879aee037c7","unresolved":false,"context_lines":[{"line_number":974,"context_line":"                                     \u0027192.168.0.254\u0027,"},{"line_number":975,"context_line":"                                     \u0027dev\u0027, \u0027eth0\u0027, \u0027proto\u0027, \u0027static\u0027])],"},{"line_number":976,"context_line":"            changed_interfaces\u003d[mock.call(\u0027eth0\u0027, \u00272001:db8::/64\u0027)]"},{"line_number":977,"context_line":"       )"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"    def test_initialize_gateway_no_move_right_ip(self):"},{"line_number":980,"context_line":"        existing \u003d (\"2: eth0: \u003cBROADCAST,MULTICAST,UP,LOWER_UP\u003e \""}],"source_content_type":"text/x-python","patch_set":8,"id":"5fc1f717_7a451270","line":977,"in_reply_to":"5fc1f717_3a7d4a1c","updated":"2019-03-06 16:11:22.000000000","message":"Oof, good spot","commit_id":"ced9c58503ed539787deee4d540b201445d03419"}],"nova/tests/unit/network/test_manager.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":939,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.add_bridge\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":940,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":941,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":942,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":945,"context_line":"    def test_vpn_allocate_fixed_ip(self, mock_change_ip, mock_address_command,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_5f5117d8","line":942,"range":{"start_line":942,"start_character":4,"end_line":942,"end_character":74},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":939,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.add_bridge\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":940,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":941,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":942,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":945,"context_line":"    def test_vpn_allocate_fixed_ip(self, mock_change_ip, mock_address_command,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_e7f89e7d","line":942,"range":{"start_line":942,"start_character":4,"end_line":942,"end_character":74},"in_reply_to":"9fdfeff1_5f5117d8","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":941,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":942,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":945,"context_line":"    def test_vpn_allocate_fixed_ip(self, mock_change_ip, mock_address_command,"},{"line_number":946,"context_line":"                                   mock_lookup_ip, mock_routes_show,"},{"line_number":947,"context_line":"                                   mock_enabled, mock_add_bridge):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_ff5fabe2","line":944,"range":{"start_line":944,"start_character":4,"end_line":944,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":941,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":942,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":945,"context_line":"    def test_vpn_allocate_fixed_ip(self, mock_change_ip, mock_address_command,"},{"line_number":946,"context_line":"                                   mock_lookup_ip, mock_routes_show,"},{"line_number":947,"context_line":"                                   mock_enabled, mock_add_bridge):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_07f60a91","line":944,"range":{"start_line":944,"start_character":4,"end_line":944,"end_character":51},"in_reply_to":"9fdfeff1_ff5fabe2","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":980,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.add_bridge\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":981,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":982,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":983,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":984,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":985,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":986,"context_line":"    def test_allocate_fixed_ip(self, mock_change_ip, mock_address_command,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_1f65cfb5","line":983,"range":{"start_line":983,"start_character":4,"end_line":983,"end_character":74},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":982,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":983,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":984,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":985,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":986,"context_line":"    def test_allocate_fixed_ip(self, mock_change_ip, mock_address_command,"},{"line_number":987,"context_line":"                               mock_lookup_ip, mock_routes_show, mock_enabled,"},{"line_number":988,"context_line":"                               mock_add_bridge):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_bf5923ff","line":985,"range":{"start_line":985,"start_character":4,"end_line":985,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":1706,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":1707,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027,"},{"line_number":1708,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":1709,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":1710,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":1711,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":1712,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":1713,"context_line":"    def test_add_fixed_ip_instance_without_vpn_requested_networks("}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_df5e67e5","line":1710,"range":{"start_line":1709,"start_character":4,"end_line":1710,"end_character":41},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":1706,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":1707,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027,"},{"line_number":1708,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":1709,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":1710,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":1711,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":1712,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":1713,"context_line":"    def test_add_fixed_ip_instance_without_vpn_requested_networks("}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_672a6ee8","line":1710,"range":{"start_line":1709,"start_character":4,"end_line":1710,"end_character":41},"in_reply_to":"9fdfeff1_df5e67e5","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":1709,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":1710,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":1711,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":1712,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":1713,"context_line":"    def test_add_fixed_ip_instance_without_vpn_requested_networks("},{"line_number":1714,"context_line":"            self, mock_change_ip, mock_address_command, mock_lookup_ip,"},{"line_number":1715,"context_line":"            mock_routes_show, mock_enabled, mock_add_bridge):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_7f73bb81","line":1712,"range":{"start_line":1712,"start_character":4,"end_line":1712,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":1709,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027,"},{"line_number":1710,"context_line":"                return_value\u003d(\u0027fake\u0027, 0))"},{"line_number":1711,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":1712,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":1713,"context_line":"    def test_add_fixed_ip_instance_without_vpn_requested_networks("},{"line_number":1714,"context_line":"            self, mock_change_ip, mock_address_command, mock_lookup_ip,"},{"line_number":1715,"context_line":"            mock_routes_show, mock_enabled, mock_add_bridge):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_872f5af5","line":1712,"range":{"start_line":1712,"start_character":4,"end_line":1712,"end_character":51},"in_reply_to":"9fdfeff1_7f73bb81","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":2865,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.bind_ip\u0027)"},{"line_number":2866,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.unbind_ip\u0027)"},{"line_number":2867,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2868,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2869,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2870,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2871,"context_line":"    def test_allocate_for_instance(self, mock_change_ip, mock_address_command,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_9f70df74","line":2868,"range":{"start_line":2868,"start_character":4,"end_line":2868,"end_character":74},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":2865,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.bind_ip\u0027)"},{"line_number":2866,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.unbind_ip\u0027)"},{"line_number":2867,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2868,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2869,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2870,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2871,"context_line":"    def test_allocate_for_instance(self, mock_change_ip, mock_address_command,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_4739723f","line":2868,"range":{"start_line":2868,"start_character":4,"end_line":2868,"end_character":74},"in_reply_to":"9fdfeff1_9f70df74","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":2867,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2868,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2869,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2870,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2871,"context_line":"    def test_allocate_for_instance(self, mock_change_ip, mock_address_command,"},{"line_number":2872,"context_line":"                                   mock_lookup_ip, mock_routes_show,"},{"line_number":2873,"context_line":"                                   mock_unbind, mock_bind, mock_set_macaddr,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_5f6a7780","line":2870,"range":{"start_line":2870,"start_character":4,"end_line":2870,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":2867,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2868,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2869,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2870,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2871,"context_line":"    def test_allocate_for_instance(self, mock_change_ip, mock_address_command,"},{"line_number":2872,"context_line":"                                   mock_lookup_ip, mock_routes_show,"},{"line_number":2873,"context_line":"                                   mock_unbind, mock_bind, mock_set_macaddr,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_c74482ba","line":2870,"range":{"start_line":2870,"start_character":4,"end_line":2870,"end_character":51},"in_reply_to":"9fdfeff1_5f6a7780","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":2941,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":2942,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_macaddr\u0027)"},{"line_number":2943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2945,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2946,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2947,"context_line":"    def test_allocate_for_instance_with_mac(self, mock_change_ip,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_ff048bc8","line":2944,"range":{"start_line":2944,"start_character":4,"end_line":2944,"end_character":74},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":2941,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":2942,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_macaddr\u0027)"},{"line_number":2943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2945,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2946,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2947,"context_line":"    def test_allocate_for_instance_with_mac(self, mock_change_ip,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_4712d2b3","line":2944,"range":{"start_line":2944,"start_character":4,"end_line":2944,"end_character":74},"in_reply_to":"9fdfeff1_ff048bc8","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":2943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2945,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2946,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2947,"context_line":"    def test_allocate_for_instance_with_mac(self, mock_change_ip,"},{"line_number":2948,"context_line":"                                            mock_address_command,"},{"line_number":2949,"context_line":"                                            mock_lookup_ip, mock_routes_show,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_1f0aafd1","line":2946,"range":{"start_line":2946,"start_character":4,"end_line":2946,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":2943,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.routes_show\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2944,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.lookup_ip\u0027, return_value\u003d(\u0027\u0027, \u0027\u0027))"},{"line_number":2945,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":2946,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":2947,"context_line":"    def test_allocate_for_instance_with_mac(self, mock_change_ip,"},{"line_number":2948,"context_line":"                                            mock_address_command,"},{"line_number":2949,"context_line":"                                            mock_lookup_ip, mock_routes_show,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_e7265e17","line":2946,"range":{"start_line":2946,"start_character":4,"end_line":2946,"end_character":51},"in_reply_to":"9fdfeff1_1f0aafd1","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"}],"nova/tests/unit/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"e17354306807637428bf803941d009d02d52a25e","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":1141,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_macaddr\u0027)"},{"line_number":1142,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":1143,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":1144,"context_line":"    def test_spawn_vlanmanager(self, mock_change_ip,"},{"line_number":1145,"context_line":"                               mock_address_command_horrid,"},{"line_number":1146,"context_line":"                               mock_set_macaddr, mock_set_enabled,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_7ff89bc3","line":1143,"range":{"start_line":1143,"start_character":4,"end_line":1143,"end_character":51},"updated":"2019-01-22 02:47:32.000000000","message":"ditto","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"03501f53c70b2e6e6049d6c33e2aa5c5defececc","unresolved":false,"context_lines":[{"line_number":1140,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_enabled\u0027)"},{"line_number":1141,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.set_device_macaddr\u0027)"},{"line_number":1142,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.address_command_horrid\u0027)"},{"line_number":1143,"context_line":"    @mock.patch(\u0027nova.privsep.linux_net.change_ip\u0027)"},{"line_number":1144,"context_line":"    def test_spawn_vlanmanager(self, mock_change_ip,"},{"line_number":1145,"context_line":"                               mock_address_command_horrid,"},{"line_number":1146,"context_line":"                               mock_set_macaddr, mock_set_enabled,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5fc1f717_478732d9","line":1143,"range":{"start_line":1143,"start_character":4,"end_line":1143,"end_character":51},"in_reply_to":"9fdfeff1_7ff89bc3","updated":"2019-03-05 22:34:54.000000000","message":"Done","commit_id":"4c0fb2cf237496f8de41cbbc24bff9278067c7c3"}]}
