Skip to content

Commit 89d47cd

Browse files
pbuskomodulo11
authored andcommitted
Fix buildpack install and tests
Co-authored-by: Johannes Dillmann <[email protected]>
1 parent 692c6c0 commit 89d47cd

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

app/jobs/runtime/buildpack_installer_factory.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ def plan(buildpack_name, manifest_fields)
3737

3838
planned_jobs = []
3939

40-
found_buildpacks = Buildpack.where(name: buildpack_name).all
41-
40+
found_buildpacks = Buildpack.where(name: buildpack_name, lifecycle: manifest_fields[0][:lifecycle]).all
4241
ensure_no_attempt_to_upgrade_a_stackless_locked_buildpack(buildpack_name, found_buildpacks, manifest_fields)
4342

4443
manifest_fields.each do |buildpack_fields|

app/jobs/runtime/create_buildpack_installer.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def perform
1010
buildpacks_lock = Locking[name: 'buildpacks']
1111
buildpacks_lock.db.transaction do
1212
buildpacks_lock.lock!
13-
buildpack = Buildpack.create(name: name, stack: stack_name)
13+
buildpack = Buildpack.create(name: name, stack: stack_name, lifecycle: options[:lifecycle])
1414
end
1515
begin
1616
buildpack_uploader.upload_buildpack(buildpack, file, File.basename(file))

lib/cloud_controller/install_buildpacks.rb

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ def install(buildpacks)
1818
buildpacks.each do |bpack|
1919
buildpack_opts = bpack.deep_symbolize_keys
2020

21+
buildpack_opts[:lifecycle] = Lifecycles::BUILDPACK if buildpack_opts[:lifecycle].nil?
22+
2123
buildpack_name = buildpack_opts.delete(:name)
2224
if buildpack_name.nil?
2325
logger.error "A name must be specified for the buildpack_opts: #{buildpack_opts}"
@@ -40,13 +42,17 @@ def install(buildpacks)
4042
next
4143
end
4244

43-
detected_stack = VCAP::CloudController::Buildpacks::StackNameExtractor.extract_from_file(buildpack_file)
45+
detected_stack = VCAP::CloudController::Buildpacks::StackNameExtractor.extract_from_file(buildpack_file) if buildpack_opts[:lifecycle] == Lifecycles::BUILDPACK
46+
detected_stack = buildpack_opts[:stack] if buildpack_opts[:lifecycle] == Lifecycles::CNB
47+
4448
factory_options << { name: buildpack_name, file: buildpack_file, options: buildpack_opts, stack: detected_stack }
4549
end
4650

47-
buildpacks_by_name = factory_options.group_by { |options| options[:name] }
48-
buildpacks_by_name.each do |name, buildpack_options|
49-
buildpack_install_jobs << job_factory.plan(name, buildpack_options)
51+
buildpacks_by_lifecycle = factory_options.group_by { |options| options[:options][:lifecycle] }
52+
buildpacks_by_lifecycle.each_value do |options|
53+
options.group_by { |opts| opts[:name] }.each do |name, buildpack_options|
54+
buildpack_install_jobs << job_factory.plan(name, buildpack_options)
55+
end
5056
end
5157

5258
buildpack_install_jobs.flatten!

spec/request/buildpacks_spec.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@
118118
'resources' => [
119119
{
120120
'guid' => buildpack1.guid,
121+
'lifecycle' => 'buildpack',
121122
'created_at' => iso8601,
122123
'updated_at' => iso8601,
123124
'name' => buildpack1.name,
@@ -140,6 +141,7 @@
140141
},
141142
{
142143
'guid' => buildpack3.guid,
144+
'lifecycle' => 'buildpack',
143145
'created_at' => iso8601,
144146
'updated_at' => iso8601,
145147
'name' => buildpack3.name,
@@ -185,6 +187,7 @@
185187
'resources' => [
186188
{
187189
'guid' => buildpack1.guid,
190+
'lifecycle' => 'buildpack',
188191
'created_at' => iso8601,
189192
'updated_at' => iso8601,
190193
'name' => buildpack1.name,
@@ -230,6 +233,7 @@
230233
'resources' => [
231234
{
232235
'guid' => buildpack3.guid,
236+
'lifecycle' => 'buildpack',
233237
'created_at' => iso8601,
234238
'updated_at' => iso8601,
235239
'name' => buildpack3.name,
@@ -252,6 +256,7 @@
252256
},
253257
{
254258
'guid' => buildpack1.guid,
259+
'lifecycle' => 'buildpack',
255260
'created_at' => iso8601,
256261
'updated_at' => iso8601,
257262
'name' => buildpack1.name,
@@ -360,6 +365,7 @@
360365
'enabled' => params[:enabled],
361366
'locked' => params[:locked],
362367
'guid' => buildpack.guid,
368+
'lifecycle' => 'buildpack',
363369
'created_at' => iso8601,
364370
'updated_at' => iso8601,
365371
'metadata' => {
@@ -477,6 +483,7 @@
477483
'enabled' => buildpack.enabled,
478484
'locked' => buildpack.locked,
479485
'guid' => buildpack.guid,
486+
'lifecycle' => 'buildpack',
480487
'created_at' => iso8601,
481488
'updated_at' => iso8601,
482489
'metadata' => { 'labels' => {}, 'annotations' => {} },

0 commit comments

Comments
 (0)