)]}'
{"quantum/agent/dhcp_agent.py":[{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":228,"context_line":"            new_host_routes[subnet.id] \u003d set()"},{"line_number":229,"context_line":"            for host_route in subnet.host_routes:"},{"line_number":230,"context_line":"                new_host_routes[subnet.id].add("},{"line_number":231,"context_line":"                    (host_route.destination, host_route.nexthop))"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        reload_routes \u003d False"},{"line_number":234,"context_line":"        for subnet_id in old_subnet_ids:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F9Sw%3D","line":231,"updated":"2013-03-19 15:45:26.000000000","message":"You can probably use a shorter syntax more consistent with the rest of the code:\n\nnew_host_routes[subnet_id] \u003d set((hr.destination,hr.nexthop) for hr in subnet.host_routes)","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":233,"context_line":"        reload_routes \u003d False"},{"line_number":234,"context_line":"        for subnet_id in old_subnet_ids:"},{"line_number":235,"context_line":"            old_host_routes \u003d self.cache.get_host_routes_by_subnet_id("},{"line_number":236,"context_line":"                subnet_id)"},{"line_number":237,"context_line":"            if subnet_id not in new_host_routes:"},{"line_number":238,"context_line":"                reload_routes \u003d True"},{"line_number":239,"context_line":"                break"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F9Rs%3D","line":236,"updated":"2013-03-19 15:45:26.000000000","message":"I think it should be possible to merge this loop and the loop at line 222.\n\nold_host_routes can be checked there, and if they\u0027re different from new_host_routes (or they do not exist), reload_routes should be true.\n\nPerhaps a change is needed to ensure the case in which host_routes are removed still ends up setting reload_routers to True","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":239,"context_line":"                break"},{"line_number":240,"context_line":"            if new_host_routes[subnet_id] !\u003d old_host_routes:"},{"line_number":241,"context_line":"                reload_routes \u003d True"},{"line_number":242,"context_line":"                break"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if (new_cidrs and old_cidrs \u003d\u003d new_cidrs) or reload_routes:"},{"line_number":245,"context_line":"            self.call_driver(\u0027reload_allocations\u0027, network)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F9SQ%3D","line":242,"updated":"2013-03-19 15:45:26.000000000","message":"Would a single if with an or condition work?","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":241,"context_line":"                reload_routes \u003d True"},{"line_number":242,"context_line":"                break"},{"line_number":243,"context_line":""},{"line_number":244,"context_line":"        if (new_cidrs and old_cidrs \u003d\u003d new_cidrs) or reload_routes:"},{"line_number":245,"context_line":"            self.call_driver(\u0027reload_allocations\u0027, network)"},{"line_number":246,"context_line":"            self.cache.put(network)"},{"line_number":247,"context_line":"        elif new_cidrs:"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F7%2BQ%3D","line":244,"updated":"2013-03-20 07:55:54.000000000","message":"Minor nit - is it not better to check the reload_routes first?","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"e08ebbbc0f7da9b3b77eff6b474b5fa5e4c8d657","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        for subnet in network.subnets:"},{"line_number":459,"context_line":"            self.subnet_lookup[subnet.id] \u003d network.id"},{"line_number":460,"context_line":"            # Ignore host routes on networks that do not"},{"line_number":461,"context_line":"            # have dhcp enabled or any routes"},{"line_number":462,"context_line":"            if (not subnet.enable_dhcp or"},{"line_number":463,"context_line":"                not getattr(subnet, \u0027host_routes\u0027, None)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2F%2Fs%3D","line":460,"updated":"2013-03-16 04:08:13.000000000","message":"This block looks duplication of L221-231. This should be a helper function","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a261508135644b7037520cef9d73f0519fd0cc95","unresolved":false,"context_lines":[{"line_number":457,"context_line":""},{"line_number":458,"context_line":"        for subnet in network.subnets:"},{"line_number":459,"context_line":"            self.subnet_lookup[subnet.id] \u003d network.id"},{"line_number":460,"context_line":"            # Ignore host routes on networks that do not"},{"line_number":461,"context_line":"            # have dhcp enabled or any routes"},{"line_number":462,"context_line":"            if (not subnet.enable_dhcp or"},{"line_number":463,"context_line":"                not getattr(subnet, \u0027host_routes\u0027, None)):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2F%2FQ%3D","line":460,"in_reply_to":"AAAAOH%2F%2F%2F%2Fs%3D","updated":"2013-03-16 04:21:09.000000000","message":"Yup I agree.","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"unresolved":false,"context_lines":[{"line_number":464,"context_line":"                continue"},{"line_number":465,"context_line":"            self.host_route_lookup[subnet.id] \u003d set()"},{"line_number":466,"context_line":"            for host_route in subnet.host_routes:"},{"line_number":467,"context_line":"                print host_route"},{"line_number":468,"context_line":"                self.host_route_lookup[subnet.id].add("},{"line_number":469,"context_line":"                    (host_route.destination, host_route.nexthop))"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F9RY%3D","line":467,"updated":"2013-03-19 15:45:26.000000000","message":"Don\u0027t forget to remove this :)","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"59dde946b28c50877d74d3ba720f608b271ea61e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        else:"},{"line_number":228,"context_line":"            self.disable_dhcp_helper(network.id)"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"    @lockutils.synchronized(\u0027mylock\u0027, \u0027dhcp-\u0027)"},{"line_number":231,"context_line":"    def network_create_end(self, context, payload):"},{"line_number":232,"context_line":"        \"\"\"Handle the network.create.end notification event.\"\"\""},{"line_number":233,"context_line":"        network_id \u003d payload[\u0027network\u0027][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOH%2F%2F5ZY%3D","line":230,"updated":"2013-03-21 19:35:44.000000000","message":"I would prefer seeing \u0027dhcp-agent\u0027 instead of \u0027mylock\u0027 for the name.","commit_id":"c2e14223e4c90d889185db7497662d17c16018a1"}],"quantum/tests/unit/test_dhcp_agent.py":[{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"e08ebbbc0f7da9b3b77eff6b474b5fa5e4c8d657","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            self.assertTrue(log.called)"},{"line_number":658,"context_line":"            self.assertTrue(self.dhcp.needs_resync)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    \"\"\""},{"line_number":661,"context_line":"    def test_subnet_update_end(self):"},{"line_number":662,"context_line":"        payload \u003d dict(subnet\u003ddict(network_id\u003dfake_network.id))"},{"line_number":663,"context_line":"        self.cache.get_network_by_id.return_value \u003d fake_network"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2F%2Fk%3D","line":660,"updated":"2013-03-16 04:08:13.000000000","message":"typo?","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"a261508135644b7037520cef9d73f0519fd0cc95","unresolved":false,"context_lines":[{"line_number":657,"context_line":"            self.assertTrue(log.called)"},{"line_number":658,"context_line":"            self.assertTrue(self.dhcp.needs_resync)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    \"\"\""},{"line_number":661,"context_line":"    def test_subnet_update_end(self):"},{"line_number":662,"context_line":"        payload \u003d dict(subnet\u003ddict(network_id\u003dfake_network.id))"},{"line_number":663,"context_line":"        self.cache.get_network_by_id.return_value \u003d fake_network"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2F%2FM%3D","line":660,"in_reply_to":"AAAAOH%2F%2F%2F%2Fk%3D","updated":"2013-03-16 04:21:09.000000000","message":"No, I need go to back and fix these these to account for the host route stuff that\u0027s why i\u0027ve marked this as a WIP.","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"},{"author":{"_account_id":2031,"name":"Nachi Ueno","email":"nati.ueno@gmail.com","username":"nati-ueno"},"change_message_id":"e08ebbbc0f7da9b3b77eff6b474b5fa5e4c8d657","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        self.call_driver.assert_called_once_with(\u0027restart\u0027,"},{"line_number":710,"context_line":"                                                 fake_network)"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    \"\"\""},{"line_number":713,"context_line":"    def test_port_update_end(self):"},{"line_number":714,"context_line":"        payload \u003d dict(port\u003dvars(fake_port2))"},{"line_number":715,"context_line":"        self.cache.get_network_by_id.return_value \u003d fake_network"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F%2F%2Fo%3D","line":712,"updated":"2013-03-16 04:08:13.000000000","message":"typo?","commit_id":"b2b77734727e9ad5ab5fd4755c54174ab0a06a30"}]}
