)]}'
{"neutron/db/ipam_non_pluggable_backend.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"32673daf624bcecbc238b261afd52f5f69a2dc72","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            av_set_size \u003d av_set.size"},{"line_number":82,"context_line":"            if av_set_size \u003d\u003d 0:"},{"line_number":83,"context_line":"                continue"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            # Compute a window size, select an index inside the window, then"},{"line_number":86,"context_line":"            # select the IP address at the selected index within the window"},{"line_number":87,"context_line":"            window \u003d min(av_set_size, 10)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_5e3541d8","side":"PARENT","line":84,"updated":"2016-06-10 20:02:04.000000000","message":"PUT THIS LINE BACK!  (If you get a chance ;)","commit_id":"746f91c7c7f76aab59f050e709b02c8ad3a35d62"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"f94dc51eff080558bd466a983be6e0ab5734b144","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            av_set_size \u003d av_set.size"},{"line_number":82,"context_line":"            if av_set_size \u003d\u003d 0:"},{"line_number":83,"context_line":"                continue"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"            # Compute a window size, select an index inside the window, then"},{"line_number":86,"context_line":"            # select the IP address at the selected index within the window"},{"line_number":87,"context_line":"            window \u003d min(av_set_size, 10)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_9e884924","side":"PARENT","line":84,"in_reply_to":"7aa08908_5e3541d8","updated":"2016-06-10 20:07:07.000000000","message":"will do","commit_id":"746f91c7c7f76aab59f050e709b02c8ad3a35d62"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"32673daf624bcecbc238b261afd52f5f69a2dc72","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                                                           p[\u0027fixed_ips\u0027],"},{"line_number":390,"context_line":"                                                           p[\u0027device_owner\u0027],"},{"line_number":391,"context_line":"                                                           subnets)"},{"line_number":392,"context_line":"            ips \u003d self._allocate_fixed_ips(context,"},{"line_number":393,"context_line":"                                           configured_ips,"},{"line_number":394,"context_line":"                                           p[\u0027mac_address\u0027],"},{"line_number":395,"context_line":"                                           prefer_next\u003dprefer_next)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_5ee8a110","line":392,"range":{"start_line":392,"start_character":23,"end_line":392,"end_character":42},"updated":"2016-06-10 20:02:04.000000000","message":"This is the -1.  This method doesn\u0027t take the prefer_next argument.","commit_id":"dcc4f9c36facae347be9f9e348685ba1145d88af"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"b8126c12e28c5d077f68c4d6b937b6b0b25174fb","unresolved":false,"context_lines":[{"line_number":389,"context_line":"                                                           p[\u0027fixed_ips\u0027],"},{"line_number":390,"context_line":"                                                           p[\u0027device_owner\u0027],"},{"line_number":391,"context_line":"                                                           subnets)"},{"line_number":392,"context_line":"            ips \u003d self._allocate_fixed_ips(context,"},{"line_number":393,"context_line":"                                           configured_ips,"},{"line_number":394,"context_line":"                                           p[\u0027mac_address\u0027],"},{"line_number":395,"context_line":"                                           prefer_next\u003dprefer_next)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_fe3a2d33","line":392,"range":{"start_line":392,"start_character":23,"end_line":392,"end_character":42},"in_reply_to":"7aa08908_5ee8a110","updated":"2016-06-10 20:08:34.000000000","message":"whoops. I forgot to carry it through that one, it should take it if a subnet is requested.","commit_id":"dcc4f9c36facae347be9f9e348685ba1145d88af"}],"neutron/ipam/drivers/neutrondb_ipam/driver.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"32673daf624bcecbc238b261afd52f5f69a2dc72","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                continue"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if prefer_next:"},{"line_number":224,"context_line":"                # use first available"},{"line_number":225,"context_line":"                window \u003d 1"},{"line_number":226,"context_line":"            else:"},{"line_number":227,"context_line":"                # Compute a value for the selection window"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_5e6381dc","line":224,"range":{"start_line":224,"start_character":16,"end_line":224,"end_character":37},"updated":"2016-06-10 20:02:04.000000000","message":"A little verbose.","commit_id":"dcc4f9c36facae347be9f9e348685ba1145d88af"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"f94dc51eff080558bd466a983be6e0ab5734b144","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                continue"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            if prefer_next:"},{"line_number":224,"context_line":"                # use first available"},{"line_number":225,"context_line":"                window \u003d 1"},{"line_number":226,"context_line":"            else:"},{"line_number":227,"context_line":"                # Compute a value for the selection window"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_fe77cd38","line":224,"range":{"start_line":224,"start_character":16,"end_line":224,"end_character":37},"in_reply_to":"7aa08908_5e6381dc","updated":"2016-06-10 20:07:07.000000000","message":"i\u0027ll pull it. it does seem self-explanatory","commit_id":"dcc4f9c36facae347be9f9e348685ba1145d88af"}],"neutron/ipam/requests.py":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"4e048ef571cd7a5f7a3f47bca3febcfcb1b80e09","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    \"\"\"Used to request any available address from the pool.\"\"\""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class NextAddressRequest(AddressRequest):"},{"line_number":210,"context_line":"    \"\"\"Used to request next available IP address from the pool.\"\"\""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_8a9be7c8","line":209,"range":{"start_line":209,"start_character":25,"end_line":209,"end_character":39},"updated":"2016-06-10 18:41:33.000000000","message":"Thinking out loud, I think we probably should inherit from AnyAddressRequest to avoid breaking existing drivers.  They can just ignore the extra specialization.\n\nTechnically, the next address is any address.  It is just with a preference on the next one.  There still is no guarantee of getting anything specific.","commit_id":"91fd9af7724701815f17f0f849cbc757fbc36335"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"9fb7ed5dd9c20a2eec604a326c43517888b0d322","unresolved":false,"context_lines":[{"line_number":206,"context_line":"    \"\"\"Used to request any available address from the pool.\"\"\""},{"line_number":207,"context_line":""},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"class NextAddressRequest(AddressRequest):"},{"line_number":210,"context_line":"    \"\"\"Used to request next available IP address from the pool.\"\"\""},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_cd5a2983","line":209,"range":{"start_line":209,"start_character":25,"end_line":209,"end_character":39},"in_reply_to":"7aa08908_8a9be7c8","updated":"2016-06-10 19:11:14.000000000","message":"Done","commit_id":"91fd9af7724701815f17f0f849cbc757fbc36335"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"28659b296a8ff2e03ebac44fa28bc0290bb3234b","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        elif ip_dict.get(\u0027eui64_address\u0027):"},{"line_number":270,"context_line":"            return AutomaticAddressRequest(prefix\u003dip_dict[\u0027subnet_cidr\u0027],"},{"line_number":271,"context_line":"                                           mac\u003dip_dict[\u0027mac\u0027])"},{"line_number":272,"context_line":"        elif port[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":273,"context_line":"            # preserve previous behavior of DHCP ports choosing start of pool"},{"line_number":274,"context_line":"            return NextAddressRequest()"},{"line_number":275,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_6a85db57","line":272,"updated":"2016-06-10 18:37:25.000000000","message":"nit: constants.DEVICE_OWNER_NETWORK_PREFIX","commit_id":"91fd9af7724701815f17f0f849cbc757fbc36335"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"c3d4df00ba35bf9c4e7dd68f6623ff95d352cee3","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        elif ip_dict.get(\u0027eui64_address\u0027):"},{"line_number":270,"context_line":"            return AutomaticAddressRequest(prefix\u003dip_dict[\u0027subnet_cidr\u0027],"},{"line_number":271,"context_line":"                                           mac\u003dip_dict[\u0027mac\u0027])"},{"line_number":272,"context_line":"        elif port[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":273,"context_line":"            # preserve previous behavior of DHCP ports choosing start of pool"},{"line_number":274,"context_line":"            return NextAddressRequest()"},{"line_number":275,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_ed68c523","line":272,"in_reply_to":"7aa08908_2af8f348","updated":"2016-06-10 19:10:59.000000000","message":"Right, one of the painful ones will be network:floatingip. I will restrict this to dhcp for now.","commit_id":"91fd9af7724701815f17f0f849cbc757fbc36335"},{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"d688e10390d0308b1c3447d6bdb10f7de40e4894","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        elif ip_dict.get(\u0027eui64_address\u0027):"},{"line_number":270,"context_line":"            return AutomaticAddressRequest(prefix\u003dip_dict[\u0027subnet_cidr\u0027],"},{"line_number":271,"context_line":"                                           mac\u003dip_dict[\u0027mac\u0027])"},{"line_number":272,"context_line":"        elif port[\u0027device_owner\u0027].startswith(\u0027network:\u0027):"},{"line_number":273,"context_line":"            # preserve previous behavior of DHCP ports choosing start of pool"},{"line_number":274,"context_line":"            return NextAddressRequest()"},{"line_number":275,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_2af8f348","line":272,"in_reply_to":"7aa08908_6a85db57","updated":"2016-06-10 18:53:24.000000000","message":"What other device_owner\u0027s will this pick up? I think this will pick up router ports of all kinds as well. I suppose what we\u0027re really after is alleviating contention for ports with device_owner of \"compute:\". I just want to be sure we aren\u0027t undoing some of the work we did to alleviate contention in the first place with this.","commit_id":"91fd9af7724701815f17f0f849cbc757fbc36335"}],"neutron/tests/unit/db/test_db_base_plugin_v2.py":[{"author":{"_account_id":4187,"name":"Ryan Tidwell","email":"rtidwell@suse.com","username":"ryan-tidwell"},"change_message_id":"e5d2d0d7ffe5861912e7ec76b83f4adc06de70f4","unresolved":false,"context_lines":[{"line_number":1409,"context_line":"                    self.assertIn(fixed_ip, result[\u0027port\u0027][\u0027fixed_ips\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_dhcp_port_ips_prefer_next_available_ip(self):"},{"line_number":1412,"context_line":"        # test to check that DHCP ports get the first available IP in the"},{"line_number":1413,"context_line":"        # allocation range"},{"line_number":1414,"context_line":"        with self.subnet() as subnet:"},{"line_number":1415,"context_line":"            port_ips \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_d383eaca","line":1412,"updated":"2016-06-10 19:54:53.000000000","message":"This test makes me a little squeamish after going through the exercise of combing through every test we have in neutron to ensure it doesn\u0027t make assumptions about the specific IP address the test is handed. I\u0027m having flashbacks to some dark days when I look at this :)\n\nThat said I think I\u0027m OK with this test because a) it is exercising the non-pluggable backend and b) it is exercising it in a specific way that is safe to assert given the level of abstraction we\u0027re testing at.","commit_id":"dcc4f9c36facae347be9f9e348685ba1145d88af"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"f94dc51eff080558bd466a983be6e0ab5734b144","unresolved":false,"context_lines":[{"line_number":1409,"context_line":"                    self.assertIn(fixed_ip, result[\u0027port\u0027][\u0027fixed_ips\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_dhcp_port_ips_prefer_next_available_ip(self):"},{"line_number":1412,"context_line":"        # test to check that DHCP ports get the first available IP in the"},{"line_number":1413,"context_line":"        # allocation range"},{"line_number":1414,"context_line":"        with self.subnet() as subnet:"},{"line_number":1415,"context_line":"            port_ips \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_1e96194c","line":1412,"in_reply_to":"7aa08908_d383eaca","updated":"2016-06-10 20:07:07.000000000","message":"Yeah, I figured this would be okay since it\u0027s being very explicit about what it is testing so it will be obvious why it fails in the future.","commit_id":"dcc4f9c36facae347be9f9e348685ba1145d88af"}]}
