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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 91dd7a0db4b29bac6929107f6ec8b9a740d2597b
4
- data.tar.gz: 013e9d54f16d6195563d2541e2bef8250354545f
3
+ metadata.gz: a2d9bb9d2c7f59003ca9e179f81b039813c1e2f3
4
+ data.tar.gz: b16bed7efd37706ca30fedf42d6354d7789ccbf0
5
5
  SHA512:
6
- metadata.gz: 68c7bf9d9741ac9e25aab652b664521b9944b416dc5d05287f8d957121d71747e4b4cff928405d6f2cefced884cb6fed32ce591aaee1658e5694f93b6e40017d
7
- data.tar.gz: 8594bc544375b74ea3cadd241049a80bd9ba45cd3b5372810d77202ec54b20f343faedd9d71cdf3fb1151e7c87795e1233e1e1ef7774123f9dc49896e9a31e18
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 create
19
- template = create_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'] if job_manifest['logs']
45
+ template.logs = job_manifest['logs']
31
46
 
32
47
  validate_properties(job_manifest)
33
- template.properties = job_manifest['properties'] if job_manifest['properties']
48
+ template.properties = job_manifest['properties']
34
49
 
35
50
  validate_links(job_manifest)
36
- template.provides = job_manifest['provides'] if job_manifest['provides']
37
- template.requires = job_manifest['requires'] if 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
- existing_compiled_package = Models::CompiledPackage.where(:package_id => package.id, :stemcell_id => stemcell.id)
389
- if existing_compiled_package.empty?
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
- fix_compiled_package(existing_compiled_package.first, compiled_pkg_tgz)
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, version, existing_blob, sha1 = package_meta['name'], package_meta['version'], package_meta['blobstore_id'], package_meta['sha1']
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 = package_meta['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 package
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 = package_meta['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
- release_job.create
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
- logger.info("Using existing job `#{job_desc}'")
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
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Director
3
- VERSION = '1.3191.0'
3
+ VERSION = '1.3192.0'
4
4
  end
5
5
  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.3191.0
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-04 00:00:00.000000000 Z
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
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.3191.0
110
+ version: 1.3192.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: bosh_openstack_cpi
113
113
  requirement: !ruby/object:Gem::Requirement