Skip to content

Commit 91bd57d

Browse files
committed
First pass at dropping vip
- migration is bad based on failing tests around "no undo"
1 parent 337bf71 commit 91bd57d

File tree

6 files changed

+10
-54
lines changed

6 files changed

+10
-54
lines changed

app/models/runtime/route.rb

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ module VCAP::CloudController
88
class Route < Sequel::Model
99
class InvalidOrganizationRelation < CloudController::Errors::InvalidRelation; end
1010

11-
class OutOfVIPException < CloudController::Errors::InvalidRelation; end
12-
1311
many_to_one :domain
1412
many_to_one :space, after_set: :validate_changed_space
1513
one_through_one :organization, join_table: Space.table_name, left_key: :id, left_primary_key: :space_id, right_primary_key: :id, right_key: :organization_id
@@ -109,7 +107,6 @@ def validate
109107
validate_total_routes
110108
validate_ports
111109
validate_total_reserved_route_ports if port && port > 0
112-
errors.add(:name, :vip_offset) if vip_offset_exceeds_range?
113110

114111
RouteValidator.new(self).validate
115112
rescue RoutingApi::UaaUnavailable
@@ -191,59 +188,17 @@ def internal?
191188
domain.internal
192189
end
193190

194-
def vip
195-
vip_offset && internal_route_vip_range.nth(vip_offset).to_s
196-
end
197-
198191
def wildcard_host?
199192
host == '*'
200193
end
201194

202195
private
203196

204-
def vip_offset_exceeds_range?
205-
return false if vip_offset.nil?
206-
return true if vip_offset <= 0
207-
208-
vip_offset > internal_route_vip_range_len
209-
end
210-
211197
def before_destroy
212198
destroy_route_bindings
213199
super
214200
end
215201

216-
def find_next_vip_offset
217-
# This code courtesy of Jeremy Evans as part of discussion on
218-
# https://groups.google.com/d/msg/sequel-talk/3GJ8_mOgJ9U/roWJ2sWHAwAJ
219-
# See SQL self-joins for the reasoning behind this
220-
221-
n = Route.exclude(vip_offset: 1).
222-
exclude { vip_offset - 1 =~ Route.select(:vip_offset) }.order(:vip_offset).get { vip_offset - 1 } ||
223-
(return (Route.max(:vip_offset) || 0) + 1)
224-
Route.where { vip_offset < n }.reverse(:vip_offset).get { vip_offset + 1 } || 1
225-
end
226-
227-
def before_save
228-
return unless internal? && vip_offset.nil?
229-
230-
len = internal_route_vip_range_len
231-
raise OutOfVIPException.new('out of vip_offset slots') if self.class.exclude(vip_offset: nil).count >= len
232-
233-
self.vip_offset = find_next_vip_offset
234-
end
235-
236-
def internal_route_vip_range_len
237-
internal_route_vip_range.len - 2
238-
end
239-
240-
def internal_route_vip_range
241-
@internal_route_vip_range ||= begin
242-
internal_route_vip_range = Config.config.get(:internal_route_vip_range)
243-
NetAddr::IPv4Net.parse(internal_route_vip_range)
244-
end
245-
end
246-
247202
def destroy_route_bindings
248203
errors = RouteBindingDelete.new.delete(route_binding_dataset)
249204
raise errors.first unless errors.empty?

config/cloud_controller.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -382,8 +382,6 @@ credhub_api:
382382
credential_references:
383383
interpolate_service_bindings: true
384384

385-
internal_route_vip_range: '127.128.0.0/9'
386-
387385
locket:
388386
host: 'locket.service.cf.internal'
389387
port: 8891
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
Sequel.migration do
2+
no_transaction # to use the 'concurrently' option
3+
change do
4+
alter_table :routes do
5+
drop_index :vip_offset, unique: true, name: :routes_vip_offset_index, concurrently: true
6+
drop_column :vip_offset
7+
end
8+
end
9+
end

lib/cloud_controller/config_schemas/base/api_schema.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -361,8 +361,6 @@ class ApiSchema < VCAP::Config
361361
max_labels_per_resource: Integer,
362362
max_annotations_per_resource: Integer,
363363

364-
internal_route_vip_range: String,
365-
366364
default_app_lifecycle: String,
367365
custom_metric_tag_prefix_list: Array,
368366

lib/cloud_controller/config_schemas/base/worker_schema.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,6 @@ class WorkerSchema < VCAP::Config
181181

182182
max_labels_per_resource: Integer,
183183
max_annotations_per_resource: Integer,
184-
internal_route_vip_range: String,
185184
custom_metric_tag_prefix_list: Array
186185
}
187186
end

lib/cloud_controller/config_schemas/vms/route_syncer_schema.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,7 @@ class RouteSyncerSchema < VCAP::Config
3535
keys: Hash,
3636
current_key_label: String,
3737
optional(:pbkdf2_hmac_iterations) => Integer
38-
},
39-
40-
internal_route_vip_range: String
41-
38+
}
4239
}
4340
end
4441

0 commit comments

Comments
 (0)