)]}'
{"neutron/tests/unit/agent/l2/extensions/test_fdb_population.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8cf4bd834907995598ad060c4efc01cb777d3940","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        mock_execute.reset_mock()"},{"line_number":132,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":133,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_LOADBALANCER"},{"line_number":134,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":135,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":136,"context_line":"        updated_macs_for_device \u003d ("},{"line_number":137,"context_line":"            fdb_extension.fdb_tracker.device_to_macs.get(self.DEVICE))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_c283f555","line":134,"updated":"2019-06-03 14:40:40.000000000","message":"Isn\u0027t this call possibly doing this?\n\nFdbPopulationAgentExtension.handle_port()\n  self.fdb_tracker.update_port()\n    FdbTableTracker.update_port()\n      bridge_lib.FdbInterface.add()\n        cls._execute()\n          utils.execute()\n\nAnd in bridge_lib:\n\nfrom neutron.agent.linux import utils\n\nIt\u0027s not obvious if I\u0027m right though.","commit_id":"db119dfe6cf0ccba6edc3d82e17143bb3c78cc54"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"bdbaad3bb9b6543e7ce8c9e1887c538f80a18db5","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        mock_execute.reset_mock()"},{"line_number":132,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":133,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_LOADBALANCER"},{"line_number":134,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":135,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":136,"context_line":"        updated_macs_for_device \u003d ("},{"line_number":137,"context_line":"            fdb_extension.fdb_tracker.device_to_macs.get(self.DEVICE))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_62000936","line":134,"in_reply_to":"9fb8cfa7_4255c54f","updated":"2019-06-03 15:03:47.000000000","message":"it does exactly that in FdbInterface class, see https://github.com/openstack/neutron/blob/master/neutron/agent/linux/bridge_lib.py#L112","commit_id":"db119dfe6cf0ccba6edc3d82e17143bb3c78cc54"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"2461bb3456dd1dc5acc602092a67ca34f1561247","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        mock_execute.reset_mock()"},{"line_number":132,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":133,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_LOADBALANCER"},{"line_number":134,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":135,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":136,"context_line":"        updated_macs_for_device \u003d ("},{"line_number":137,"context_line":"            fdb_extension.fdb_tracker.device_to_macs.get(self.DEVICE))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_e2c2b9e9","line":134,"in_reply_to":"9fb8cfa7_62000936","updated":"2019-06-03 15:06:13.000000000","message":"I\u0027m a dummy, I was looking in a local repo that was at stable/queens, so of course I was wrong :(","commit_id":"db119dfe6cf0ccba6edc3d82e17143bb3c78cc54"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"63812a9a7600e8c85f71dd4c4c4266ac4b2f8a37","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        mock_execute.reset_mock()"},{"line_number":132,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":133,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_LOADBALANCER"},{"line_number":134,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":135,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":136,"context_line":"        updated_macs_for_device \u003d ("},{"line_number":137,"context_line":"            fdb_extension.fdb_tracker.device_to_macs.get(self.DEVICE))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_e28e392d","line":134,"in_reply_to":"9fb8cfa7_c283f555","updated":"2019-06-03 14:52:25.000000000","message":"In bridge_lib it is doing something like:\n\n    from neutron.agent.linux import ip_lib\n    ...\n    ip_wrapper \u003d ip_lib.IPWrapper(namespace)\n    return ip_wrapper.netns.execute(cmd, run_as_root\u003dTrue, **kwargs)\n\nAnd in ip_lib it is doing:\n\n    from neutron.agent.common import utils\n    ...\n    return utils.execute(cmd,...)\n\nSo in fact it calls neutron.agent.common.utils.execute instead of neutron.agent.linux.execute and this mock done before didn\u0027t work properly.","commit_id":"db119dfe6cf0ccba6edc3d82e17143bb3c78cc54"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"60d3e84d4a31fe2150d9ce45684381fbb7ab0f96","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        mock_execute.reset_mock()"},{"line_number":132,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":133,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_LOADBALANCER"},{"line_number":134,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":135,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":136,"context_line":"        updated_macs_for_device \u003d ("},{"line_number":137,"context_line":"            fdb_extension.fdb_tracker.device_to_macs.get(self.DEVICE))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fb8cfa7_4255c54f","line":134,"in_reply_to":"9fb8cfa7_e28e392d","updated":"2019-06-03 15:01:03.000000000","message":"Yes, it does that in the BridgeDevice() class, but not in FdbInterface() class, that isn\u0027t getting called?","commit_id":"db119dfe6cf0ccba6edc3d82e17143bb3c78cc54"}]}
