)]}'
{"neutron/db/ipam_backend_mixin.py":[{"author":{"_account_id":11762,"name":"Han Zhou","email":"zhouhan@gmail.com","username":"hanzhou"},"change_message_id":"e158f488c46c890052d0e0d08ae88f728bf454b1","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fixed_ips_requested \u003d validators.is_attr_set(new_port.get(\u0027fixed_ips\u0027))"},{"line_number":618,"context_line":"        old_ips \u003d old_port.get(\u0027fixed_ips\u0027)"},{"line_number":619,"context_line":"        deferred_ip_allocation \u003d (host and not old_host"},{"line_number":620,"context_line":"                                  and not old_ips"},{"line_number":621,"context_line":"                                  and not fixed_ips_requested)"},{"line_number":622,"context_line":"        if not deferred_ip_allocation:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_7b863ddc","line":619,"range":{"start_line":619,"start_character":34,"end_line":619,"end_character":55},"updated":"2016-07-25 19:01:07.000000000","message":"I am confused by this condition. If neither new_host is specified, nor old_host exists, shall we defer the IP allocation?","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a6e0f937ab6fe4cfb0fcc4a380c1a026dfd7cbb8","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fixed_ips_requested \u003d validators.is_attr_set(new_port.get(\u0027fixed_ips\u0027))"},{"line_number":618,"context_line":"        old_ips \u003d old_port.get(\u0027fixed_ips\u0027)"},{"line_number":619,"context_line":"        deferred_ip_allocation \u003d (host and not old_host"},{"line_number":620,"context_line":"                                  and not old_ips"},{"line_number":621,"context_line":"                                  and not fixed_ips_requested)"},{"line_number":622,"context_line":"        if not deferred_ip_allocation:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_9a35e2dc","line":619,"range":{"start_line":619,"start_character":34,"end_line":619,"end_character":55},"in_reply_to":"dada55a8_7b863ddc","updated":"2016-07-25 22:27:59.000000000","message":"This is actually not related to this patch set. But, I can answer it for you.\n\nI guess this code could be misunderstood. What this condition is calculating is if it should allocate IPs this time around for a deferred IP allocation port. It only does that when a host is provided, no host was bound previously, there are no IPs on the port and no specific IPs are requested.","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":11762,"name":"Han Zhou","email":"zhouhan@gmail.com","username":"hanzhou"},"change_message_id":"6c7df89da22c4011fa55caf675dd142c672d40fb","unresolved":false,"context_lines":[{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        fixed_ips_requested \u003d validators.is_attr_set(new_port.get(\u0027fixed_ips\u0027))"},{"line_number":618,"context_line":"        old_ips \u003d old_port.get(\u0027fixed_ips\u0027)"},{"line_number":619,"context_line":"        deferred_ip_allocation \u003d (host and not old_host"},{"line_number":620,"context_line":"                                  and not old_ips"},{"line_number":621,"context_line":"                                  and not fixed_ips_requested)"},{"line_number":622,"context_line":"        if not deferred_ip_allocation:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_cee2f82e","line":619,"range":{"start_line":619,"start_character":34,"end_line":619,"end_character":55},"in_reply_to":"dada55a8_9a35e2dc","updated":"2016-07-26 00:52:25.000000000","message":"Now I understand. Thanks for your answer!","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"}],"neutron/tests/unit/extensions/test_segment.py":[{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"fad942d252dd7e148006f336daf89e7e33c44704","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        self._setup_host_mappings([(segments[0][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost2\u0027),"},{"line_number":1051,"context_line":"                                   (segments[1][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost\u0027)])"},{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"        # Create a bound port with no IP address (since there is no subnet)"},{"line_number":1054,"context_line":"        response \u003d self._create_port(self.fmt,"},{"line_number":1055,"context_line":"                                     net_id\u003dnetwork[\u0027network\u0027][\u0027id\u0027],"},{"line_number":1056,"context_line":"                                     tenant_id\u003dnetwork[\u0027network\u0027][\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_29c74e13","line":1053,"range":{"start_line":1053,"start_character":50,"end_line":1053,"end_character":74},"updated":"2016-07-26 01:44:10.000000000","message":"weren\u0027t subnets created with the network and segments?","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8d155101d1618446d56d8e2508324717cf9ed50e","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        self._setup_host_mappings([(segments[0][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost2\u0027),"},{"line_number":1051,"context_line":"                                   (segments[1][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost\u0027)])"},{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"        # Create a bound port with no IP address (since there is no subnet)"},{"line_number":1054,"context_line":"        response \u003d self._create_port(self.fmt,"},{"line_number":1055,"context_line":"                                     net_id\u003dnetwork[\u0027network\u0027][\u0027id\u0027],"},{"line_number":1056,"context_line":"                                     tenant_id\u003dnetwork[\u0027network\u0027][\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_afe2f99d","line":1053,"range":{"start_line":1053,"start_character":50,"end_line":1053,"end_character":74},"in_reply_to":"dada55a8_29c74e13","updated":"2016-07-26 15:45:45.000000000","message":"Doh! I remember thinking, even, that I need to update the comments. Obviously, I failed at that.","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"fad942d252dd7e148006f336daf89e7e33c44704","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        port_req \u003d self.new_update_request(\u0027ports\u0027, data, port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":1065,"context_line":"        response \u003d port_req.get_response(self.api)"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        # Since port is bound and there is a mapping to segment, it succeeds."},{"line_number":1068,"context_line":"        self.assertEqual(webob.exc.HTTPConflict.code, response.status_int)"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    def test_port_update_fails_if_host_on_good_segment(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_c972f210","line":1067,"range":{"start_line":1067,"start_character":8,"end_line":1067,"end_character":77},"updated":"2016-07-26 01:44:10.000000000","message":"i think this comment is wrong.  copy and paste :)","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8d155101d1618446d56d8e2508324717cf9ed50e","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        port_req \u003d self.new_update_request(\u0027ports\u0027, data, port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":1065,"context_line":"        response \u003d port_req.get_response(self.api)"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        # Since port is bound and there is a mapping to segment, it succeeds."},{"line_number":1068,"context_line":"        self.assertEqual(webob.exc.HTTPConflict.code, response.status_int)"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    def test_port_update_fails_if_host_on_good_segment(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_cfc12de6","line":1067,"range":{"start_line":1067,"start_character":8,"end_line":1067,"end_character":77},"in_reply_to":"dada55a8_7e171945","updated":"2016-07-26 15:45:45.000000000","message":"Done","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"9a54dbfa246ecd0634e2e39b7747033ad3d42f4b","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"        port_req \u003d self.new_update_request(\u0027ports\u0027, data, port[\u0027port\u0027][\u0027id\u0027])"},{"line_number":1065,"context_line":"        response \u003d port_req.get_response(self.api)"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        # Since port is bound and there is a mapping to segment, it succeeds."},{"line_number":1068,"context_line":"        self.assertEqual(webob.exc.HTTPConflict.code, response.status_int)"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    def test_port_update_fails_if_host_on_good_segment(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_7e171945","line":1067,"range":{"start_line":1067,"start_character":8,"end_line":1067,"end_character":77},"in_reply_to":"dada55a8_c972f210","updated":"2016-07-26 14:40:26.000000000","message":"Yeah, we might as well fix all these up since it can even be done in the online editor.  I\u0027ll ignore L1041 for now :)","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":6951,"name":"Brandon Logan","email":"brandon.logan@rackspace.com","username":"brandon-logan"},"change_message_id":"fad942d252dd7e148006f336daf89e7e33c44704","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"                                   (segments[1][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost1\u0027),"},{"line_number":1076,"context_line":"                                   (segments[1][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost\u0027)])"},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"        # Create a bound port with no IP address (since there is no subnet)"},{"line_number":1079,"context_line":"        response \u003d self._create_port(self.fmt,"},{"line_number":1080,"context_line":"                                     net_id\u003dnetwork[\u0027network\u0027][\u0027id\u0027],"},{"line_number":1081,"context_line":"                                     tenant_id\u003dnetwork[\u0027network\u0027][\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_29ee2e8b","line":1078,"range":{"start_line":1078,"start_character":50,"end_line":1078,"end_character":74},"updated":"2016-07-26 01:44:10.000000000","message":"same","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"8d155101d1618446d56d8e2508324717cf9ed50e","unresolved":false,"context_lines":[{"line_number":1075,"context_line":"                                   (segments[1][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost1\u0027),"},{"line_number":1076,"context_line":"                                   (segments[1][\u0027segment\u0027][\u0027id\u0027], \u0027fakehost\u0027)])"},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"        # Create a bound port with no IP address (since there is no subnet)"},{"line_number":1079,"context_line":"        response \u003d self._create_port(self.fmt,"},{"line_number":1080,"context_line":"                                     net_id\u003dnetwork[\u0027network\u0027][\u0027id\u0027],"},{"line_number":1081,"context_line":"                                     tenant_id\u003dnetwork[\u0027network\u0027][\u0027tenant_id\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"dada55a8_6fb1218f","line":1078,"range":{"start_line":1078,"start_character":50,"end_line":1078,"end_character":74},"in_reply_to":"dada55a8_29ee2e8b","updated":"2016-07-26 15:45:45.000000000","message":"Done","commit_id":"1a5f782a06e424acdbc7f22454475c2b19312960"}]}
