Skip to content

Commit 5031bdb

Browse files
committed
Use ServiceBindingFilesBuilder in recipe builders
- AppRecipeBuilder -> Diego::Bbs::Models::DesiredLRP - TaskRecipeBuilder -> Diego::Bbs::Models::TaskDefinition
1 parent c7ff0b2 commit 5031bdb

File tree

4 files changed

+55
-3
lines changed

4 files changed

+55
-3
lines changed

lib/cloud_controller/diego/app_recipe_builder.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
require 'cloud_controller/diego/cnb/desired_lrp_builder'
77
require 'cloud_controller/diego/process_guid'
88
require 'cloud_controller/diego/ssh_key'
9+
require 'cloud_controller/diego/service_binding_files_builder'
910
require 'credhub/config_helpers'
1011
require 'models/helpers/health_check_types'
1112
require 'cloud_controller/diego/main_lrp_action_builder'
@@ -100,7 +101,8 @@ def app_lrp_arguments
100101
organizational_unit: ["organization:#{process.organization.guid}", "space:#{process.space.guid}", "app:#{process.app_guid}"]
101102
),
102103
image_username: process.desired_droplet.docker_receipt_username,
103-
image_password: process.desired_droplet.docker_receipt_password
104+
image_password: process.desired_droplet.docker_receipt_password,
105+
volume_mounted_files: ServiceBindingFilesBuilder.build(process)
104106
}.compact
105107
end
106108

lib/cloud_controller/diego/task_recipe_builder.rb

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
require 'cloud_controller/diego/bbs_environment_builder'
66
require 'cloud_controller/diego/task_completion_callback_generator'
77
require 'cloud_controller/diego/task_cpu_weight_calculator'
8+
require 'cloud_controller/diego/service_binding_files_builder'
89

910
module VCAP::CloudController
1011
module Diego
@@ -52,7 +53,8 @@ def build_app_task(config, task)
5253
]
5354
),
5455
image_username: task.droplet.docker_receipt_username,
55-
image_password: task.droplet.docker_receipt_password
56+
image_password: task.droplet.docker_receipt_password,
57+
volume_mounted_files: ServiceBindingFilesBuilder.build(task.app)
5658
}.compact)
5759
end
5860

@@ -90,7 +92,8 @@ def build_staging_task(config, staging_details)
9092
]
9193
),
9294
image_username: staging_details.package.docker_username,
93-
image_password: staging_details.package.docker_password
95+
image_password: staging_details.package.docker_password,
96+
volume_mounted_files: ServiceBindingFilesBuilder.build(staging_details.package.app)
9497
}.compact)
9598
end
9699

spec/unit/lib/cloud_controller/diego/app_recipe_builder_spec.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ module Diego
5252
expect(lrp.trusted_system_certificates_path).to eq(RUNNING_TRUSTED_SYSTEM_CERT_PATH)
5353
expect(lrp.PlacementTags).to eq(['placement-tag'])
5454
expect(lrp.certificate_properties).to eq(expected_certificate_properties)
55+
56+
expect(lrp.volume_mounted_files).to be_empty
5557
end
5658
end
5759

@@ -914,6 +916,19 @@ module Diego
914916
expect(lrp2.action).to eq(expected_action)
915917
end
916918
end
919+
920+
context 'when file-based service bindings are enabled' do
921+
before do
922+
app = process.app
923+
app.update(file_based_service_bindings_enabled: true)
924+
VCAP::CloudController::ServiceBinding.make(service_instance: ManagedServiceInstance.make(space: app.space), app: app)
925+
end
926+
927+
it 'includes volume mounted files' do
928+
lrp = builder.build_app_lrp
929+
expect(lrp.volume_mounted_files).not_to be_empty
930+
end
931+
end
917932
end
918933

919934
context 'when the lifecycle_type is "cnb"' do

spec/unit/lib/cloud_controller/diego/task_recipe_builder_spec.rb

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,8 @@ module Diego
177177
expect(result.placement_tags).to eq(['potato-segment'])
178178
expect(result.max_pids).to eq(100)
179179
expect(result.certificate_properties).to eq(certificate_properties)
180+
181+
expect(result.volume_mounted_files).to be_empty
180182
end
181183

182184
it 'gives the task a TrustedSystemCertificatesPath' do
@@ -198,6 +200,19 @@ module Diego
198200
expect(result.placement_tags).to eq([])
199201
end
200202
end
203+
204+
context 'when file-based service bindings are enabled' do
205+
before do
206+
app = staging_details.package.app
207+
app.update(file_based_service_bindings_enabled: true)
208+
VCAP::CloudController::ServiceBinding.make(service_instance: ManagedServiceInstance.make(space: app.space), app: app)
209+
end
210+
211+
it 'includes volume mounted files' do
212+
result = task_recipe_builder.build_staging_task(config, staging_details)
213+
expect(result.volume_mounted_files).not_to be_empty
214+
end
215+
end
201216
end
202217

203218
context 'with a docker backend' do
@@ -505,6 +520,8 @@ module Diego
505520
expect(result.metric_tags['organization_name'].static).to eq('MyOrg')
506521
expect(result.metric_tags['space_name'].static).to eq('MySpace')
507522
expect(result.metric_tags['app_name'].static).to eq('MyApp')
523+
524+
expect(result.volume_mounted_files).to be_empty
508525
end
509526

510527
context 'when a volume mount is provided' do
@@ -583,6 +600,19 @@ module Diego
583600
expect(result.placement_tags).to eq([])
584601
end
585602
end
603+
604+
context 'when file-based service bindings are enabled' do
605+
before do
606+
app = task.app
607+
app.update(file_based_service_bindings_enabled: true)
608+
VCAP::CloudController::ServiceBinding.make(service_instance: ManagedServiceInstance.make(space: app.space), app: app)
609+
end
610+
611+
it 'includes volume mounted files' do
612+
result = task_recipe_builder.build_app_task(config, task)
613+
expect(result.volume_mounted_files).not_to be_empty
614+
end
615+
end
586616
end
587617

588618
context 'with a docker backend' do
@@ -658,6 +688,8 @@ module Diego
658688

659689
expect(result.image_username).to eq('dockerusername')
660690
expect(result.image_password).to eq('dockerpassword')
691+
692+
expect(result.volume_mounted_files).to be_empty
661693
end
662694

663695
context 'when a volume mount is provided' do

0 commit comments

Comments
 (0)