)]}'
{"neutron/agent/l2/extensions/fdb_population.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    \"\"\""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    # FDB udpates are triggered for ports with a certain device_owner only:"},{"line_number":55,"context_line":"    # - device owner \"compute\": updates the FDB with normal port instances,"},{"line_number":56,"context_line":"    #       required in order to enable communication between"},{"line_number":57,"context_line":"    #       SR-IOV direct port instances and normal port instance."},{"line_number":58,"context_line":"    # - device owner \"router_interface\": updates the FDB with OVS/LB ports,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_a17bfdf3","line":55,"range":{"start_line":55,"start_character":22,"end_line":55,"end_character":29},"updated":"2016-07-12 23:20:33.000000000","message":"compute:","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"9910a0c9ddd9bc76fd7da94f396a024c18876927","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    #       the message will be sent to the wire, causing the message"},{"line_number":65,"context_line":"    #       to get lost in case the sender uses direct port and is"},{"line_number":66,"context_line":"    #       located on the same hypervisor as the network node."},{"line_number":67,"context_line":"    PERMITTED_DEVICE_OWNERS \u003d {constants.DEVICE_OWNER_COMPUTE_PREFIX,"},{"line_number":68,"context_line":"                               constants.DEVICE_OWNER_ROUTER_INTF,"},{"line_number":69,"context_line":"                               constants.DEVICE_OWNER_DHCP}"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_1acd3331","line":67,"range":{"start_line":67,"start_character":31,"end_line":67,"end_character":68},"updated":"2016-07-12 14:02:32.000000000","message":"This really changes \u0027compute\u0027 to \u0027compute:\u0027 but there is no problem as far as I checked.","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"}],"neutron/debug/debug_agent.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"e226b2c0e36247c1183b958196324cbd1e990041","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DEVICE_OWNER_NETWORK_PROBE \u003d constants.DEVICE_OWNER_NETWORK_PREFIX + \u0027probe\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"DEVICE_OWNER_COMPUTE_PROBE \u003d constants.DEVICE_OWNER_COMPUTE_PREFIX + \u0027probe\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class NeutronDebugAgent(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_fdbf7ccd","line":32,"range":{"start_line":30,"start_character":0,"end_line":32,"end_character":76},"updated":"2016-07-12 15:33:08.000000000","message":"It\u0027s probably worth pushing these probe device owner constants into neutron_lib.constants so later on we can replace their usage here.\n\nAre you willing to do that? If not I can.","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"DEVICE_OWNER_NETWORK_PROBE \u003d constants.DEVICE_OWNER_NETWORK_PREFIX + \u0027probe\u0027"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"DEVICE_OWNER_COMPUTE_PROBE \u003d constants.DEVICE_OWNER_COMPUTE_PREFIX + \u0027probe\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class NeutronDebugAgent(object):"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_e156a5cc","line":32,"range":{"start_line":30,"start_character":0,"end_line":32,"end_character":76},"in_reply_to":"1aa78d24_fdbf7ccd","updated":"2016-07-12 23:20:33.000000000","message":"We don\u0027t need everything in neutron-lib.  I\u0027m not sure why we need these particular constants in there.","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"}],"neutron/tests/functional/agent/l2/base.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":212,"context_line":"               \u0027physical_network\u0027: network.get(\u0027physical_network\u0027, \u0027physnet\u0027),"},{"line_number":213,"context_line":"               \u0027segmentation_id\u0027: network.get(\u0027segmentation_id\u0027, 1),"},{"line_number":214,"context_line":"               \u0027fixed_ips\u0027: port[\u0027fixed_ips\u0027],"},{"line_number":215,"context_line":"               \u0027device_owner\u0027: n_const.DEVICE_OWNER_COMPUTE_PREFIX,"},{"line_number":216,"context_line":"               \u0027port_security_enabled\u0027: True,"},{"line_number":217,"context_line":"               \u0027security_groups\u0027: [\u0027default\u0027],"},{"line_number":218,"context_line":"               \u0027admin_state_up\u0027: True}"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_21fc2db7","line":215,"range":{"start_line":215,"start_character":31,"end_line":215,"end_character":66},"updated":"2016-07-12 23:20:33.000000000","message":"This constant ends in a colon.  The original does not.","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"}],"neutron/tests/functional/db/test_ipam.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":129,"context_line":"                \u0027admin_state_up\u0027: True,"},{"line_number":130,"context_line":"                \u0027status\u0027: constants.PORT_STATUS_ACTIVE,"},{"line_number":131,"context_line":"                \u0027device_id\u0027: \u0027test_dev_id\u0027,"},{"line_number":132,"context_line":"                \u0027device_owner\u0027: constants.DEVICE_OWNER_COMPUTE_PREFIX,"},{"line_number":133,"context_line":"                \u0027fixed_ips\u0027: port_fixed_ips}"},{"line_number":134,"context_line":"        self.plugin.create_port(self.cxt, {\u0027port\u0027: port})"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_e1fce573","line":132,"range":{"start_line":132,"start_character":32,"end_line":132,"end_character":69},"updated":"2016-07-12 23:20:33.000000000","message":"ditto","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"}],"neutron/tests/unit/agent/l2/extensions/test_fdb_population.py":[{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"a4ae48590a87fb36f6e11bae6d976c2614adfe1a","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        fdb_extension \u003d self._get_fdb_extension(mock_execute, \u0027\u0027)"},{"line_number":130,"context_line":"        mock_execute.reset_mock()"},{"line_number":131,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":132,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":133,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":134,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":135,"context_line":"        updated_macs_for_device \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_b57c3773","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":67},"updated":"2016-07-11 12:32:04.000000000","message":"Was it intended to change from dev owner DHCP to FLOATING IP? I would\u0027ve expected this value to be constants.DEVICE_OWNER_DHCP.\n\nInterestingly the tests still pass :)","commit_id":"027608a3712eb08abf5df730cc01b7dd99a9ae1f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"473d9c19012fff76d618f8b9a1848e6c9a6021e9","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        fdb_extension \u003d self._get_fdb_extension(mock_execute, \u0027\u0027)"},{"line_number":130,"context_line":"        mock_execute.reset_mock()"},{"line_number":131,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":132,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":133,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":134,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":135,"context_line":"        updated_macs_for_device \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_dbc2c352","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":67},"in_reply_to":"1aa78d24_0556b3d1","updated":"2016-07-11 16:59:27.000000000","message":"Unless I\u0027m missing something, this TC is flawed and doesn\u0027t really test the device_owner. Would be nice if someone else could verify as well; just in case I missing something.\n\n\nThat said; not sure what the proper workflow is here. Perhaps you can create a defect for the \"bad unit test\", note the defect # here and we can just move on with your review?","commit_id":"027608a3712eb08abf5df730cc01b7dd99a9ae1f"},{"author":{"_account_id":21683,"name":"edan david","email":"edand@mellanox.com","username":"edand"},"change_message_id":"8fe8af70f7ddf2382e74ba1b20a76deaf3db3333","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        fdb_extension \u003d self._get_fdb_extension(mock_execute, \u0027\u0027)"},{"line_number":130,"context_line":"        mock_execute.reset_mock()"},{"line_number":131,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":132,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":133,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":134,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":135,"context_line":"        updated_macs_for_device \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_b9d6f1c0","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":67},"in_reply_to":"1aa78d24_b57c3773","updated":"2016-07-11 13:00:22.000000000","message":"this is an unpermitted device owner, this commit changes dhcp to a permitted device owner.","commit_id":"027608a3712eb08abf5df730cc01b7dd99a9ae1f"},{"author":{"_account_id":5367,"name":"boden","email":"bodenvmw@gmail.com","username":"boden"},"change_message_id":"a91ba32fdd628989443d319e762136f92b031fdb","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        fdb_extension \u003d self._get_fdb_extension(mock_execute, \u0027\u0027)"},{"line_number":130,"context_line":"        mock_execute.reset_mock()"},{"line_number":131,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":132,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":133,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":134,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":135,"context_line":"        updated_macs_for_device \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_0556b3d1","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":67},"in_reply_to":"1aa78d24_b9d6f1c0","updated":"2016-07-11 15:08:17.000000000","message":"It doesn\u0027t seem to matter what value is used here; the test passes. I guess I question the correctness of this test at this point, although I realize you are just updating constants.","commit_id":"027608a3712eb08abf5df730cc01b7dd99a9ae1f"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"067f944e2a323397c46ca04d00c583a57b9121d5","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        fdb_extension \u003d self._get_fdb_extension(mock_execute, \u0027\u0027)"},{"line_number":130,"context_line":"        mock_execute.reset_mock()"},{"line_number":131,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":132,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":133,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":134,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":135,"context_line":"        updated_macs_for_device \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_e1d9c0f4","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":67},"in_reply_to":"1aa78d24_dbc2c352","updated":"2016-07-12 02:42:54.000000000","message":"@edan: I\u0027m not sure what you intend but this patch says \"Replace device owners hard coded strings to neutron_lib constants\" so we shouldn\u0027t change the behavior without any suggestions.","commit_id":"027608a3712eb08abf5df730cc01b7dd99a9ae1f"},{"author":{"_account_id":21683,"name":"edan david","email":"edand@mellanox.com","username":"edand"},"change_message_id":"9c0b1acc6df28124c208af7d5ce3902da721c5ed","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        fdb_extension \u003d self._get_fdb_extension(mock_execute, \u0027\u0027)"},{"line_number":130,"context_line":"        mock_execute.reset_mock()"},{"line_number":131,"context_line":"        details \u003d copy.deepcopy(self.UPDATE_MSG)"},{"line_number":132,"context_line":"        details[\u0027device_owner\u0027] \u003d constants.DEVICE_OWNER_FLOATINGIP"},{"line_number":133,"context_line":"        fdb_extension.handle_port(context\u003dNone, details\u003ddetails)"},{"line_number":134,"context_line":"        self.assertFalse(mock_execute.called)"},{"line_number":135,"context_line":"        updated_macs_for_device \u003d ("}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_e21254b3","line":132,"range":{"start_line":132,"start_character":44,"end_line":132,"end_character":67},"in_reply_to":"1aa78d24_e1d9c0f4","updated":"2016-07-12 08:42:15.000000000","message":"I\u0027ve changed the dependencies, now this commit is dependant on I8c15f340b82424de44f5477ce36b67efe76dee59 and the behavior remains the same.","commit_id":"027608a3712eb08abf5df730cc01b7dd99a9ae1f"}],"neutron/tests/unit/db/test_ipam_non_pluggable_backend.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            \u0027network_id\u0027: \u0027fbb9b578-95eb-4b79-a116-78e5c4927176\u0027,"},{"line_number":68,"context_line":"            \u0027fixed_ips\u0027: n_const.ATTR_NOT_SPECIFIED,"},{"line_number":69,"context_line":"            \u0027mac_address\u0027: \u002712:34:56:78:44:ab\u0027,"},{"line_number":70,"context_line":"            \u0027device_owner\u0027: n_const.DEVICE_OWNER_COMPUTE_PREFIX}}"},{"line_number":71,"context_line":"        expected \u003d []"},{"line_number":72,"context_line":"        for subnet in subnets:"},{"line_number":73,"context_line":"            addr \u003d str(ipv6_utils.get_ipv6_addr_by_EUI64("}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_61f11595","line":70,"range":{"start_line":70,"start_character":28,"end_line":70,"end_character":63},"updated":"2016-07-12 23:20:33.000000000","message":"ditto","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":100,"context_line":"            \u0027network_id\u0027: \u0027fbb9b578-95eb-4b79-a116-78e5c4927176\u0027,"},{"line_number":101,"context_line":"            \u0027fixed_ips\u0027: n_const.ATTR_NOT_SPECIFIED,"},{"line_number":102,"context_line":"            \u0027mac_address\u0027: \u002712:34:56:78:44:ab\u0027,"},{"line_number":103,"context_line":"            \u0027device_owner\u0027: n_const.DEVICE_OWNER_COMPUTE_PREFIX}}"},{"line_number":104,"context_line":"        expected \u003d []"},{"line_number":105,"context_line":"        for subnet in subnets:"},{"line_number":106,"context_line":"            addr \u003d str(ipv6_utils.get_ipv6_addr_by_EUI64("}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_81308157","line":103,"range":{"start_line":103,"start_character":28,"end_line":103,"end_character":63},"updated":"2016-07-12 23:20:33.000000000","message":"ditto","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"}],"neutron/tests/unit/plugins/ml2/test_driver_context.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        network \u003d mock.MagicMock()"},{"line_number":54,"context_line":"        binding \u003d mock.Mock()"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        port \u003d {\u0027device_owner\u0027: constants.DEVICE_OWNER_COMPUTE_PREFIX,"},{"line_number":57,"context_line":"                portbindings.HOST_ID: \u0027host\u0027}"},{"line_number":58,"context_line":"        binding.host \u003d \u0027foohost\u0027"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_8117e1a1","line":56,"range":{"start_line":56,"start_character":32,"end_line":56,"end_character":69},"updated":"2016-07-12 23:20:33.000000000","message":"ditto","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"7f570996484785df62d31415ee621da25fc3ce6b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        network \u003d mock.MagicMock()"},{"line_number":93,"context_line":"        binding \u003d mock.Mock()"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        port \u003d {\u0027device_owner\u0027: constants.DEVICE_OWNER_COMPUTE_PREFIX,"},{"line_number":96,"context_line":"                \u0027status\u0027: \u0027status\u0027}"},{"line_number":97,"context_line":"        binding.status \u003d \u0027foostatus\u0027"},{"line_number":98,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_e10a2578","line":95,"range":{"start_line":95,"start_character":32,"end_line":95,"end_character":69},"updated":"2016-07-12 23:20:33.000000000","message":"ditto","commit_id":"151d94521fb91dfe849213c5f743f70721fdf9df"}]}
