)]}'
{"neutron/db/ipam_pluggable_backend.py":[{"author":{"_account_id":13768,"name":"Pavel Bondar","email":"pbondar@infoblox.com","username":"pavel_bondar"},"change_message_id":"a4e17393c32209d0b066cabe5a64819275cc7fa0","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                    ip_request \u003d factory.get_request(context, port, ip_list[0])"},{"line_number":101,"context_line":"                    ipam_allocator \u003d ipam_driver.get_allocator(subnets)"},{"line_number":102,"context_line":"                    ip_address, subnet_id \u003d ipam_allocator.allocate(ip_request)"},{"line_number":103,"context_line":"                except ipam_exc.IpAddressGenerationFailure:"},{"line_number":104,"context_line":"                    raise n_exc.IpAddressGenerationFailure("},{"line_number":105,"context_line":"                        net_id\u003dport[\u0027network_id\u0027])"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_e83005a1","line":103,"range":{"start_line":103,"start_character":32,"end_line":103,"end_character":58},"updated":"2016-05-06 08:51:21.000000000","message":"IpamSubnetGroup raises IpAddressGenerationFailureAllSubnets,\nso you need to catch this exception instead.","commit_id":"d8cbbf59ded2dc30c5d180daa0f3f95cdafd24d0"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a6f3cdef5b4d0accf4e181da5fc8b647e6dcdaff","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                    ip_request \u003d factory.get_request(context, port, ip_list[0])"},{"line_number":101,"context_line":"                    ipam_allocator \u003d ipam_driver.get_allocator(subnets)"},{"line_number":102,"context_line":"                    ip_address, subnet_id \u003d ipam_allocator.allocate(ip_request)"},{"line_number":103,"context_line":"                except ipam_exc.IpAddressGenerationFailure:"},{"line_number":104,"context_line":"                    raise n_exc.IpAddressGenerationFailure("},{"line_number":105,"context_line":"                        net_id\u003dport[\u0027network_id\u0027])"},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_35040616","line":103,"range":{"start_line":103,"start_character":32,"end_line":103,"end_character":58},"in_reply_to":"dab17558_e83005a1","updated":"2016-05-06 22:54:10.000000000","message":"Good eye!  That is totally what I meant to do.","commit_id":"d8cbbf59ded2dc30c5d180daa0f3f95cdafd24d0"}],"neutron/ipam/driver.py":[{"author":{"_account_id":13768,"name":"Pavel Bondar","email":"pbondar@infoblox.com","username":"pavel_bondar"},"change_message_id":"a4e17393c32209d0b066cabe5a64819275cc7fa0","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        :type address_request: An instance of a subclass of AddressRequest"},{"line_number":178,"context_line":"        :returns: A netaddr.IPAddress, subnet_id tuple"},{"line_number":179,"context_line":"        :raises: AddressNotAvailable, AddressOutsideAllocationPool,"},{"line_number":180,"context_line":"            AddressOutsideSubnet"},{"line_number":181,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_c89f015e","line":180,"updated":"2016-05-06 08:51:21.000000000","message":"I think IpAddressGenerationFailureAllSubnets has to be in this list too","commit_id":"d8cbbf59ded2dc30c5d180daa0f3f95cdafd24d0"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"a6f3cdef5b4d0accf4e181da5fc8b647e6dcdaff","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        :type address_request: An instance of a subclass of AddressRequest"},{"line_number":178,"context_line":"        :returns: A netaddr.IPAddress, subnet_id tuple"},{"line_number":179,"context_line":"        :raises: AddressNotAvailable, AddressOutsideAllocationPool,"},{"line_number":180,"context_line":"            AddressOutsideSubnet"},{"line_number":181,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"dab17558_b05c8426","line":180,"in_reply_to":"dab17558_c89f015e","updated":"2016-05-06 22:54:10.000000000","message":"Done","commit_id":"d8cbbf59ded2dc30c5d180daa0f3f95cdafd24d0"},{"author":{"_account_id":7787,"name":"Kevin Benton","email":"kevin@benton.pub","username":"blak111"},"change_message_id":"46e0deaf211d3111d4a736f04cb66a4ab333aff2","unresolved":false,"context_lines":[{"line_number":116,"context_line":""},{"line_number":117,"context_line":"        :param subnet_ids: ids for subnets from which the IP can be allocated"},{"line_number":118,"context_line":"        :returns: An instance of IPAM SubnetGroup"},{"line_number":119,"context_line":"        :raises: TODO(Carl) What sort of errors do we need to plan for?"},{"line_number":120,"context_line":"        \"\"\""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dab17558_cd032f41","line":119,"updated":"2016-05-09 22:46:18.000000000","message":"AllocatorFactoryDisaster :)","commit_id":"924e2b05fd3e246eb9af857b652e6d2c98a0ac5d"}]}
