Skip to content

Commit 8db3059

Browse files
authored
Add config for max poll interval (#542)
1 parent c7bd47b commit 8db3059

File tree

6 files changed

+46
-0
lines changed

6 files changed

+46
-0
lines changed

jobs/cloud_controller_ng/spec

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -867,6 +867,10 @@ properties:
867867
default: 1.0
868868
description: "Exponential backoff for service related polling jobs. Default is 1.0, which means there is no exponential backoff."
869869

870+
cc.broker_client_max_async_poll_interval_seconds:
871+
default: 86400
872+
description: "Maximum polling interval for service related polling jobs. If the retry-after header or the calculated next polling interval exceeds this value, CC will use this value instead. Default is 24 hours."
873+
870874
cc.broker_client_response_parser.log_errors:
871875
default: false
872876
description: "Log errors happening when parsing service broker responses."

jobs/cloud_controller_ng/templates/cloud_controller_ng.yml.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,7 @@ broker_client_timeout_seconds: <%= p("cc.broker_client_timeout_seconds") %>
437437
broker_client_default_async_poll_interval_seconds: <%= p('cc.broker_client_default_async_poll_interval_seconds') %>
438438
broker_client_max_async_poll_duration_minutes: <%= p('cc.broker_client_max_async_poll_duration_minutes') %>
439439
broker_client_async_poll_exponential_backoff_rate: <%= p('cc.broker_client_async_poll_exponential_backoff_rate') %>
440+
broker_client_max_async_poll_interval_seconds: <%= p('cc.broker_client_max_async_poll_interval_seconds') %>
440441

441442
broker_client_response_parser:
442443
log_errors: <%= p("cc.broker_client_response_parser.log_errors") %>

jobs/cloud_controller_worker/spec

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,10 @@ properties:
504504
default: 1.0
505505
description: "Exponential backoff for service related polling jobs. Default is 1.0, which means there is no exponential backoff."
506506

507+
cc.broker_client_max_async_poll_interval_seconds:
508+
default: 86400
509+
description: "Maximum polling interval for service related polling jobs. If the retry-after header or the calculated next polling interval exceeds this value, CC will use this value instead. Default is 24 hours."
510+
507511
cc.broker_client_response_parser.log_errors:
508512
default: false
509513
description: "Log errors happening when parsing service broker responses."

jobs/cloud_controller_worker/templates/cloud_controller_ng.yml.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ broker_client_timeout_seconds: <%= p("cc.broker_client_timeout_seconds") %>
272272
broker_client_default_async_poll_interval_seconds: <%= p('cc.broker_client_default_async_poll_interval_seconds') %>
273273
broker_client_max_async_poll_duration_minutes: <%= p('cc.broker_client_max_async_poll_duration_minutes') %>
274274
broker_client_async_poll_exponential_backoff_rate: <%= p('cc.broker_client_async_poll_exponential_backoff_rate') %>
275+
broker_client_max_async_poll_interval_seconds: <%= p('cc.broker_client_max_async_poll_interval_seconds') %>
275276

276277
broker_client_response_parser:
277278
log_errors: <%= p("cc.broker_client_response_parser.log_errors") %>

spec/cloud_controller_ng/cloud_controller_ng_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,24 @@ module Test
562562
end
563563
end
564564

565+
describe 'broker_client_max_async_poll_interval_seconds config' do
566+
it 'defaults to 86400 seconds' do
567+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
568+
expect(template_hash['broker_client_max_async_poll_interval_seconds']).to eq(86_400)
569+
end
570+
571+
context 'when set in the manifest' do
572+
before do
573+
merged_manifest_properties['cc']['broker_client_max_async_poll_interval_seconds'] = 3600
574+
end
575+
576+
it 'renders the value from the manifest' do
577+
template_hash = YAML.safe_load(template.render(merged_manifest_properties, consumes: links))
578+
expect(template_hash['broker_client_max_async_poll_interval_seconds']).to eq(3600)
579+
end
580+
end
581+
end
582+
565583
describe 'broker_client_response_parser config' do
566584
context 'when nothing is configured' do
567585
it 'renders default values' do

spec/cloud_controller_worker/cloud_controller_worker_spec.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,24 @@ module Test
211211
end
212212
end
213213

214+
describe 'broker_client_max_async_poll_interval_seconds config' do
215+
it 'defaults to 86400 seconds' do
216+
template_hash = YAML.safe_load(template.render(manifest_properties, consumes: links))
217+
expect(template_hash['broker_client_max_async_poll_interval_seconds']).to eq(86_400)
218+
end
219+
220+
context 'when set in the manifest' do
221+
before do
222+
manifest_properties['cc']['broker_client_max_async_poll_interval_seconds'] = 3600
223+
end
224+
225+
it 'renders the value from the manifest' do
226+
template_hash = YAML.safe_load(template.render(manifest_properties, consumes: links))
227+
expect(template_hash['broker_client_max_async_poll_interval_seconds']).to eq(3600)
228+
end
229+
end
230+
end
231+
214232
describe 'broker_client_response_parser config' do
215233
context 'when nothing is configured' do
216234
it 'renders default values' do

0 commit comments

Comments
 (0)