@@ -54,23 +54,6 @@ def allocate_dynamic_ip(reservation, subnet)
5454 ip_address . to_i
5555 end
5656
57- def allocate_dynamic_prefix ( reservation , subnet )
58- begin
59- cidr = try_to_allocate_dynamic_prefix ( reservation , subnet )
60- rescue NoMoreIPsAvailableAndStopRetrying
61- @logger . debug ( 'Failed to allocate dynamic prefix: no more available' )
62- return nil
63- rescue IpFoundInDatabaseAndCanBeRetried
64- @logger . debug ( 'Retrying to allocate dynamic prefix: probably a race condition with another deployment' )
65- # IP can be taken by other deployment that runs in parallel
66- # retry until succeeds or out of range
67- retry
68- end
69-
70- @logger . debug ( "Allocated dynamic cidr '#{ cidr } ' for #{ reservation . network . name } " )
71- cidr . to_i
72- end
73-
7457 def allocate_vip_ip ( reservation , subnet )
7558 begin
7659 ip_address = try_to_allocate_vip_ip ( reservation , subnet )
@@ -112,33 +95,6 @@ def try_to_allocate_dynamic_ip(reservation, subnet)
11295 ip_address
11396 end
11497
115- def try_to_allocate_dynamic_prefix ( reservation , subnet )
116- @logger . debug ( "Allocating dynamic prefix for #{ reservation . network . name } " )
117- addresses_in_use = Set . new ( all_ip_addresses )
118-
119- first_range_address = subnet . range . to_range . first . to_i - 1
120- addresses_we_cant_allocate = addresses_in_use
121- addresses_we_cant_allocate << first_range_address
122-
123- addresses_we_cant_allocate . merge ( subnet . restricted_ips . to_a ) unless subnet . restricted_ips . empty?
124- addresses_we_cant_allocate . merge ( subnet . static_ips . to_a ) unless subnet . static_ips . empty?
125-
126- addr = Bosh ::Director ::IpAddrOrCidr . new ( find_first_available_address ( addresses_we_cant_allocate , first_range_address ) ) . to_s
127- cidr_string = get_first_available_prefix ( addr , subnet . prefix )
128-
129- @logger . debug ( "FIRST AVAILABLE PREFIX '#{ cidr_string } ' for #{ reservation . network . name } " )
130-
131- cidr = Bosh ::Director ::IpAddrOrCidr . new ( cidr_string )
132-
133- unless subnet . range == cidr || subnet . range . include? ( cidr )
134- raise NoMoreIPsAvailableAndStopRetrying
135- end
136-
137- save_ip ( cidr , reservation , false )
138-
139- cidr
140- end
141-
14298 def find_first_available_address ( addresses_we_cant_allocate , first_address )
14399 last_address_we_cant_use = addresses_we_cant_allocate
144100 . to_a
@@ -204,15 +160,18 @@ def validate_instance_and_update_reservation_type(instance_model, ip, ip_address
204160 end
205161
206162 def save_ip ( ip , reservation , is_static )
163+ @logger . debug ( "Adding IP Address: #{ ip } from reservation: #{ reservation } " )
207164 ip_address = Bosh ::Director ::Models ::IpAddress . new (
208165 address_str : ip . to_i . to_s ,
209166 network_name : reservation . network . name ,
210167 task_id : Bosh ::Director ::Config . current_job . task_id ,
211168 static : is_static ,
169+ prefix : reservation . prefix ,
212170 )
213171 reservation . instance_model . add_ip_address ( ip_address )
214172 rescue Sequel ::ValidationFailed , Sequel ::DatabaseError => e
215173 error_message = e . message . downcase
174+ @logger . debug ( "ERROR!!! #{ error_message } " )
216175 if error_message . include? ( 'unique' ) || error_message . include? ( 'duplicate' )
217176 raise IpFoundInDatabaseAndCanBeRetried , e . inspect
218177 else
0 commit comments