Reduce IP address collision during port creating

Try to give it a large random chance during generate IP
address.

The DB retry mechanism change moved to neutron-lib:
I5ad139bdfb3ae125658b36d05f85f139a1b47bee

Closes-Bug: #1777968
Change-Id: I2acc9c720b39271bde2a89da4a66958f7aba5b7d
This commit is contained in:
LIU Yulong 2018-06-23 04:52:15 +08:00
parent d8a58b96ff
commit ec5cd0d1b8
1 changed files with 3 additions and 2 deletions

View File

@ -167,10 +167,11 @@ class NeutronDbSubnet(ipam_base.Subnet):
window = 1
else:
# Compute a value for the selection window
window = min(av_set.size, 10)
window = min(av_set.size, 30)
ip_index = random.randint(1, window)
candidate_ips = list(itertools.islice(av_set, ip_index))
allocated_ip = candidate_ips[-1]
allocated_ip = candidate_ips[
random.randint(0, len(candidate_ips) - 1)]
return str(allocated_ip), ip_pool.id
raise ipam_exc.IpAddressGenerationFailure(