bosh-director 1.3191.0 → 1.3192.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/bosh/director/jobs/release/release_job.rb +21 -21
- data/lib/bosh/director/jobs/update_release.rb +27 -12
- data/lib/bosh/director/version.rb +1 -1
- metadata +16 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a2d9bb9d2c7f59003ca9e179f81b039813c1e2f3
|
|
4
|
+
data.tar.gz: b16bed7efd37706ca30fedf42d6354d7789ccbf0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 534311499645c69972ef2a1b487a5a5659803c1e33dd9c303210929afeef2f90a1bd71de8d7775489fac690bddf7b4903e5cf294b0352a9620c9ef7fa2470833
|
|
7
|
+
data.tar.gz: c27b51664bad54f0b6417d83497be659677ac13f0eedd2731fe44bdd3cfe12efaaccee54c1c461e13ce32d588d4fab687a8932915328f6c9155e7eabab441802
|
|
@@ -15,26 +15,41 @@ module Bosh::Director
|
|
|
15
15
|
@logger = logger
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
def
|
|
19
|
-
template =
|
|
18
|
+
def update(template)
|
|
19
|
+
template.release = @release_model
|
|
20
|
+
template.name = @name
|
|
21
|
+
template.sha1 = @sha1
|
|
22
|
+
template.fingerprint = @fingerprint
|
|
23
|
+
template.version = @version
|
|
24
|
+
|
|
20
25
|
unpack
|
|
21
26
|
|
|
22
27
|
job_manifest = load_manifest
|
|
23
28
|
validate_templates(job_manifest)
|
|
24
29
|
validate_monit
|
|
25
30
|
|
|
31
|
+
if template.blobstore_id
|
|
32
|
+
begin
|
|
33
|
+
@logger.info("Deleting blob for template '#{@name}/#{@version}' with blobstore_id '#{template.blobstore_id}'")
|
|
34
|
+
BlobUtil.delete_blob(template.blobstore_id)
|
|
35
|
+
template.blobstore_id = nil
|
|
36
|
+
rescue Bosh::Blobstore::BlobstoreError => e
|
|
37
|
+
@logger.info("Error deleting blob for template '#{@name}/#{@version}' with blobstore_id '#{template.blobstore_id}': #{e.inspect}")
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
26
41
|
template.blobstore_id = BlobUtil.create_blob(job_tgz)
|
|
27
42
|
template.package_names = parse_package_names(job_manifest)
|
|
28
43
|
|
|
29
44
|
validate_logs(job_manifest)
|
|
30
|
-
template.logs = job_manifest['logs']
|
|
45
|
+
template.logs = job_manifest['logs']
|
|
31
46
|
|
|
32
47
|
validate_properties(job_manifest)
|
|
33
|
-
template.properties = job_manifest['properties']
|
|
48
|
+
template.properties = job_manifest['properties']
|
|
34
49
|
|
|
35
50
|
validate_links(job_manifest)
|
|
36
|
-
template.provides = job_manifest['provides']
|
|
37
|
-
template.requires = job_manifest['requires']
|
|
51
|
+
template.provides = job_manifest['provides']
|
|
52
|
+
template.requires = job_manifest['requires']
|
|
38
53
|
|
|
39
54
|
template.save
|
|
40
55
|
end
|
|
@@ -62,21 +77,6 @@ module Bosh::Director
|
|
|
62
77
|
@job_dir ||= File.join(@release_dir, 'jobs', @name)
|
|
63
78
|
end
|
|
64
79
|
|
|
65
|
-
def create_template
|
|
66
|
-
template_attrs = {
|
|
67
|
-
:release => @release_model,
|
|
68
|
-
:name => @name,
|
|
69
|
-
:sha1 => @sha1,
|
|
70
|
-
:fingerprint => @fingerprint,
|
|
71
|
-
:version => @version
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
@logger.info("Creating job template `#{@name}/#{@version}' " +
|
|
75
|
-
'from provided bits')
|
|
76
|
-
Models::Template.new(template_attrs)
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
|
|
80
80
|
def load_manifest
|
|
81
81
|
manifest_file = File.join(job_dir, 'job.MF')
|
|
82
82
|
unless File.file?(manifest_file)
|
|
@@ -385,8 +385,8 @@ module Bosh::Director
|
|
|
385
385
|
stemcell = compiled_package_spec[:stemcell]
|
|
386
386
|
compiled_pkg_tgz = File.join(release_dir, 'compiled_packages', "#{package.name}.tgz")
|
|
387
387
|
|
|
388
|
-
|
|
389
|
-
if
|
|
388
|
+
existing_compiled_packages = Models::CompiledPackage.where(:package_id => package.id, :stemcell_id => stemcell.id)
|
|
389
|
+
if existing_compiled_packages.empty?
|
|
390
390
|
|
|
391
391
|
package_desc = "#{package.name}/#{package.version} for #{stemcell.name}/#{stemcell.version}"
|
|
392
392
|
event_log.track(package_desc) do
|
|
@@ -398,7 +398,9 @@ module Bosh::Director
|
|
|
398
398
|
had_effect = true
|
|
399
399
|
end
|
|
400
400
|
elsif @fix
|
|
401
|
-
|
|
401
|
+
existing_compiled_package = existing_compiled_packages.first
|
|
402
|
+
@packages[existing_compiled_package.name] = existing_compiled_package
|
|
403
|
+
fix_compiled_package(existing_compiled_package, compiled_pkg_tgz)
|
|
402
404
|
end
|
|
403
405
|
end
|
|
404
406
|
|
|
@@ -490,12 +492,15 @@ module Bosh::Director
|
|
|
490
492
|
|
|
491
493
|
# @return [boolean] true if a new blob was created; false otherwise
|
|
492
494
|
def save_package_source_blob(package, package_meta, release_dir)
|
|
493
|
-
name
|
|
495
|
+
name = package_meta['name']
|
|
496
|
+
version = package_meta['version']
|
|
497
|
+
existing_blob = package_meta['blobstore_id']
|
|
498
|
+
sha1 = package_meta['sha1']
|
|
494
499
|
desc = "package '#{name}/#{version}'"
|
|
495
500
|
package_tgz = File.join(release_dir, 'packages', "#{name}.tgz")
|
|
496
501
|
|
|
497
502
|
if @fix
|
|
498
|
-
package.sha1 =
|
|
503
|
+
package.sha1 = sha1
|
|
499
504
|
|
|
500
505
|
if package.blobstore_id != nil
|
|
501
506
|
delete_compiled_packages package
|
|
@@ -506,14 +511,14 @@ module Bosh::Director
|
|
|
506
511
|
|
|
507
512
|
if existing_blob
|
|
508
513
|
pkg = Models::Package.where(blobstore_id: existing_blob).first
|
|
509
|
-
delete_compiled_packages
|
|
514
|
+
delete_compiled_packages(package)
|
|
510
515
|
fix_package(pkg, package_tgz)
|
|
511
516
|
package.blobstore_id = BlobUtil.copy_blob(pkg.blobstore_id)
|
|
512
517
|
return true
|
|
513
518
|
end
|
|
514
519
|
else
|
|
515
520
|
return false unless package.blobstore_id.nil?
|
|
516
|
-
package.sha1 =
|
|
521
|
+
package.sha1 = sha1
|
|
517
522
|
|
|
518
523
|
if existing_blob
|
|
519
524
|
logger.info("Creating #{desc} from existing blob #{existing_blob}")
|
|
@@ -580,7 +585,7 @@ module Bosh::Director
|
|
|
580
585
|
end
|
|
581
586
|
|
|
582
587
|
did_something = create_jobs(new_jobs, release_dir)
|
|
583
|
-
did_something |= use_existing_jobs(existing_jobs)
|
|
588
|
+
did_something |= use_existing_jobs(existing_jobs, release_dir)
|
|
584
589
|
|
|
585
590
|
did_something
|
|
586
591
|
end
|
|
@@ -604,18 +609,28 @@ module Bosh::Director
|
|
|
604
609
|
|
|
605
610
|
def create_job(job_meta, release_dir)
|
|
606
611
|
release_job = ReleaseJob.new(job_meta, @release_model, release_dir, @packages, logger)
|
|
607
|
-
|
|
612
|
+
logger.info("Creating job template `#{job_meta['name']}/#{job_meta['version']}' " +
|
|
613
|
+
'from provided bits')
|
|
614
|
+
release_job.update(Models::Template.new())
|
|
608
615
|
end
|
|
609
616
|
|
|
610
617
|
# @param [Array<Array>] jobs Existing jobs metadata
|
|
611
618
|
# @return [boolean] true if at least one job was tied to the release version; false if the call had no effect.
|
|
612
|
-
def use_existing_jobs(jobs)
|
|
619
|
+
def use_existing_jobs(jobs, release_dir)
|
|
613
620
|
return false if jobs.empty?
|
|
614
621
|
|
|
615
622
|
single_step_stage("Processing #{jobs.size} existing job#{"s" if jobs.size > 1}") do
|
|
616
|
-
jobs.each do |template,
|
|
623
|
+
jobs.each do |template, job_meta|
|
|
617
624
|
job_desc = "#{template.name}/#{template.version}"
|
|
618
|
-
|
|
625
|
+
|
|
626
|
+
if @fix
|
|
627
|
+
logger.info("Fixing existing job `#{job_desc}'")
|
|
628
|
+
release_job = ReleaseJob.new(job_meta, @release_model, release_dir, @packages, logger)
|
|
629
|
+
release_job.update(template)
|
|
630
|
+
else
|
|
631
|
+
logger.info("Using existing job `#{job_desc}'")
|
|
632
|
+
end
|
|
633
|
+
|
|
619
634
|
register_template(template) unless template.release_versions.include? @release_version_model
|
|
620
635
|
end
|
|
621
636
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bosh-director
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3192.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- VMware
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-02-
|
|
11
|
+
date: 2016-02-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bosh_common
|
|
@@ -16,98 +16,98 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: 1.3192.0
|
|
20
20
|
type: :runtime
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.
|
|
26
|
+
version: 1.3192.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: bosh_cpi
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 1.3192.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
40
|
+
version: 1.3192.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: bosh-registry
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.
|
|
47
|
+
version: 1.3192.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.
|
|
54
|
+
version: 1.3192.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: blobstore_client
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.
|
|
61
|
+
version: 1.3192.0
|
|
62
62
|
type: :runtime
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: 1.
|
|
68
|
+
version: 1.3192.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: bosh-core
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: 1.
|
|
75
|
+
version: 1.3192.0
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: 1.
|
|
82
|
+
version: 1.3192.0
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: bosh-director-core
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: 1.
|
|
89
|
+
version: 1.3192.0
|
|
90
90
|
type: :runtime
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: 1.
|
|
96
|
+
version: 1.3192.0
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
98
|
name: bosh-template
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: 1.
|
|
103
|
+
version: 1.3192.0
|
|
104
104
|
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: 1.
|
|
110
|
+
version: 1.3192.0
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
112
|
name: bosh_openstack_cpi
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|