)]}'
{"neutron/db/agentschedulers_db.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"38c294bcaf2352cd669e014ca0e6b6fcdd0aec1f","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                NetworkDhcpAgentBinding.network_id \u003d\u003d network_ids[0])"},{"line_number":341,"context_line":"        elif network_ids:"},{"line_number":342,"context_line":"            query \u003d query.filter("},{"line_number":343,"context_line":"                NetworkDhcpAgentBinding.network_id in network_ids)"},{"line_number":344,"context_line":"        if admin_state_up is not None:"},{"line_number":345,"context_line":"            query \u003d query.filter(agents_db.Agent.admin_state_up \u003d\u003d"},{"line_number":346,"context_line":"                                 admin_state_up)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_9ce0cd2a","side":"PARENT","line":343,"updated":"2016-06-01 18:18:20.000000000","message":"This is too funny. This would have been a syntax error in a static language...","commit_id":"ddfe09c5ddb7eebf0ca62e38cf593f7482910c21"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c03b12053b514d40d8a3b7c5ab47cd109a83bb92","unresolved":false,"context_lines":[{"line_number":340,"context_line":"                NetworkDhcpAgentBinding.network_id \u003d\u003d network_ids[0])"},{"line_number":341,"context_line":"        elif network_ids:"},{"line_number":342,"context_line":"            query \u003d query.filter("},{"line_number":343,"context_line":"                NetworkDhcpAgentBinding.network_id in network_ids)"},{"line_number":344,"context_line":"        if admin_state_up is not None:"},{"line_number":345,"context_line":"            query \u003d query.filter(agents_db.Agent.admin_state_up \u003d\u003d"},{"line_number":346,"context_line":"                                 admin_state_up)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_8d009935","side":"PARENT","line":343,"in_reply_to":"9abb7d3a_9ce0cd2a","updated":"2016-06-01 19:05:26.000000000","message":"yes indeed!","commit_id":"ddfe09c5ddb7eebf0ca62e38cf593f7482910c21"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"38c294bcaf2352cd669e014ca0e6b6fcdd0aec1f","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def get_dhcp_agents_hosting_networks("},{"line_number":331,"context_line":"            self, context, network_ids, active\u003dNone, admin_state_up\u003dNone):"},{"line_number":332,"context_line":"        network_ids \u003d network_ids or []"},{"line_number":333,"context_line":"        query \u003d context.session.query(NetworkDhcpAgentBinding)"},{"line_number":334,"context_line":"        query \u003d query.options(orm.contains_eager("},{"line_number":335,"context_line":"                              NetworkDhcpAgentBinding.dhcp_agent))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_1cecdd28","line":332,"updated":"2016-06-01 18:18:20.000000000","message":"Why did you omit the fast-exit path in the case of no network IDs?","commit_id":"b0e2f8458e0dc48c8fff88dc4e6a430455be753d"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"ead3e5f4fe73a88ed0b6493b4d38f1027d3dab59","unresolved":false,"context_lines":[{"line_number":329,"context_line":""},{"line_number":330,"context_line":"    def get_dhcp_agents_hosting_networks("},{"line_number":331,"context_line":"            self, context, network_ids, active\u003dNone, admin_state_up\u003dNone):"},{"line_number":332,"context_line":"        network_ids \u003d network_ids or []"},{"line_number":333,"context_line":"        query \u003d context.session.query(NetworkDhcpAgentBinding)"},{"line_number":334,"context_line":"        query \u003d query.options(orm.contains_eager("},{"line_number":335,"context_line":"                              NetworkDhcpAgentBinding.dhcp_agent))"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_2d9ecdb8","line":332,"in_reply_to":"9abb7d3a_1cecdd28","updated":"2016-06-01 18:56:38.000000000","message":"that is a very good question, my mind totally replaced the return statement with an assignment of network_ids because pattern recognition filled in the blanks.  erroneously in this case. good catch.","commit_id":"b0e2f8458e0dc48c8fff88dc4e6a430455be753d"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"f8acd57feb0624d711065a113b4a732ef02063a6","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        query \u003d query.join(NetworkDhcpAgentBinding.dhcp_agent)"},{"line_number":338,"context_line":"        if network_ids:"},{"line_number":339,"context_line":"            query \u003d query.filter("},{"line_number":340,"context_line":"                NetworkDhcpAgentBinding.network_id.in_(network_ids))"},{"line_number":341,"context_line":"        if admin_state_up is not None:"},{"line_number":342,"context_line":"            query \u003d query.filter(agents_db.Agent.admin_state_up \u003d\u003d"},{"line_number":343,"context_line":"                                 admin_state_up)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_b28fb573","line":340,"updated":"2016-06-01 20:17:52.000000000","message":"Does it make sense to keep the conditional for the common case that len(network_ids) \u003d\u003d 1? Or is SQLAlchemy smart enough to figure out that network_ids is of length 1 and optimize the in_ statement away? I wouldn\u0027t want this bug fix to have a negative performance side effect.","commit_id":"6290af9cf97d4ee323ba988733e026a27695e9fa"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"4c4ed61ca098bb6dacdef2704a98695d99e1d9e1","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        query \u003d query.join(NetworkDhcpAgentBinding.dhcp_agent)"},{"line_number":338,"context_line":"        if network_ids:"},{"line_number":339,"context_line":"            query \u003d query.filter("},{"line_number":340,"context_line":"                NetworkDhcpAgentBinding.network_id.in_(network_ids))"},{"line_number":341,"context_line":"        if admin_state_up is not None:"},{"line_number":342,"context_line":"            query \u003d query.filter(agents_db.Agent.admin_state_up \u003d\u003d"},{"line_number":343,"context_line":"                                 admin_state_up)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_1050390a","line":340,"in_reply_to":"9abb7d3a_15702ba3","updated":"2016-06-01 20:53:58.000000000","message":"\u003e it looks like mysql under the hood will optimize the call to be \u003d instead of in for only one item in the list.\n\nFantastic, thank you. I also learned something :)","commit_id":"6290af9cf97d4ee323ba988733e026a27695e9fa"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"61a8414aeddd38c7a744d81c8eeaef8ba0c93d0f","unresolved":false,"context_lines":[{"line_number":337,"context_line":"        query \u003d query.join(NetworkDhcpAgentBinding.dhcp_agent)"},{"line_number":338,"context_line":"        if network_ids:"},{"line_number":339,"context_line":"            query \u003d query.filter("},{"line_number":340,"context_line":"                NetworkDhcpAgentBinding.network_id.in_(network_ids))"},{"line_number":341,"context_line":"        if admin_state_up is not None:"},{"line_number":342,"context_line":"            query \u003d query.filter(agents_db.Agent.admin_state_up \u003d\u003d"},{"line_number":343,"context_line":"                                 admin_state_up)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9abb7d3a_15702ba3","line":340,"in_reply_to":"9abb7d3a_b28fb573","updated":"2016-06-01 20:52:05.000000000","message":"so after doing some googling, and with the help of dasm, it looks like mysql under the hood will optimize the call to be \u003d instead of in for only one item in the list.  It does not look like SQLAlchemy will do that though.\n\nIf you know of an edge case that this is not true, like another engine, let me know, otherwise I think this is fine.","commit_id":"6290af9cf97d4ee323ba988733e026a27695e9fa"}],"neutron/tests/unit/scheduler/test_dhcp_agent_scheduler.py":[{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"38c294bcaf2352cd669e014ca0e6b6fcdd0aec1f","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        agents \u003d self._create_and_set_agents_down([\u0027host-a\u0027, \u0027host-b\u0027], 1)"},{"line_number":473,"context_line":"        agents +\u003d self._create_and_set_agents_down([\u0027host-c\u0027, \u0027host-d\u0027], 1,"},{"line_number":474,"context_line":"                                                   admin_state_up\u003dFalse)"},{"line_number":475,"context_line":"        networks \u003d kwargs.pop(\u0027networks\u0027, [self.network_id])"},{"line_number":476,"context_line":"        for network in networks:"},{"line_number":477,"context_line":"            self._test_schedule_bind_network(agents, network)"},{"line_number":478,"context_line":"        agents \u003d self.get_dhcp_agents_hosting_networks(self.ctx,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_a73dbec5","line":475,"updated":"2016-06-01 18:18:20.000000000","message":"Ugly but gets the job done :)","commit_id":"b0e2f8458e0dc48c8fff88dc4e6a430455be753d"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"c03b12053b514d40d8a3b7c5ab47cd109a83bb92","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        agents \u003d self._create_and_set_agents_down([\u0027host-a\u0027, \u0027host-b\u0027], 1)"},{"line_number":473,"context_line":"        agents +\u003d self._create_and_set_agents_down([\u0027host-c\u0027, \u0027host-d\u0027], 1,"},{"line_number":474,"context_line":"                                                   admin_state_up\u003dFalse)"},{"line_number":475,"context_line":"        networks \u003d kwargs.pop(\u0027networks\u0027, [self.network_id])"},{"line_number":476,"context_line":"        for network in networks:"},{"line_number":477,"context_line":"            self._test_schedule_bind_network(agents, network)"},{"line_number":478,"context_line":"        agents \u003d self.get_dhcp_agents_hosting_networks(self.ctx,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9abb7d3a_cd1aa1c5","line":475,"in_reply_to":"9abb7d3a_a73dbec5","updated":"2016-06-01 19:05:26.000000000","message":"one man\u0027s ugliness is another man\u0027s beautiful garbage! i liked the line efficiency of it :)","commit_id":"b0e2f8458e0dc48c8fff88dc4e6a430455be753d"}]}
