bosh-director 1.3091.0 → 1.3093.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 656e5ca79b59bbb04a3b399903fa5951f3f0f47b
4
- data.tar.gz: 26eb186045205d0561fa2977af143eba0d72b567
3
+ metadata.gz: 6a30fcb8bfc2daaf94df571fbb0a6cacfa93e805
4
+ data.tar.gz: 089c887cf65bbbbf7eecf56bc7641fd081638ade
5
5
  SHA512:
6
- metadata.gz: 8ef3471c30e39cfa636ea6aef915352629b51badc4c76d81c979b7f322a508fe54ebb7b43ccdac71f6c65516fe163a9c1c4735d0ad992e6d4436ac3a279dd4f8
7
- data.tar.gz: c147d3c4255525be03bacbb9c827eed51540fa98c5b2f997d435d54837140abee68dbdfc65b6fa43982a5e41f38c978fe1dd1aee77832cc30e99ea9bd223ea28
6
+ metadata.gz: c0e320d18490f4a6fe4454861f2ec2b3d34cc740e01bb2a2fcf7ead1efb6ea4c7ed19b0ce82868c6a6d613eb3f7757c7e4704392e62277615960f3286e94ce44
7
+ data.tar.gz: 4112eb64c4527535836bac70405bbfe1b11c19df73a4fb3ee0cf7176003ff6218d4a23507d6c1548ba37699269c1d465052abbbd78035f18e1e6ab5480e77395
@@ -5,12 +5,18 @@ module Bosh::Director
5
5
  class StemcellsController < BaseController
6
6
  post '/', :consumes => :json do
7
7
  payload = json_decode(request.body)
8
- task = @stemcell_manager.create_stemcell_from_url(current_user, payload['location'])
8
+ options = {
9
+ fix: params['fix'] == 'true',
10
+ }
11
+ task = @stemcell_manager.create_stemcell_from_url(current_user, payload['location'], options)
9
12
  redirect "/tasks/#{task.id}"
10
13
  end
11
14
 
12
15
  post '/', :consumes => :multipart do
13
- task = @stemcell_manager.create_stemcell_from_file_path(current_user, params[:nginx_upload_path])
16
+ options = {
17
+ fix: params['fix'] == 'true',
18
+ }
19
+ task = @stemcell_manager.create_stemcell_from_file_path(current_user, params[:nginx_upload_path], options)
14
20
  redirect "/tasks/#{task.id}"
15
21
  end
16
22
 
@@ -31,16 +31,17 @@ module Bosh::Director
31
31
  false
32
32
  end
33
33
 
34
- def create_stemcell_from_url(username, stemcell_url)
35
- JobQueue.new.enqueue(username, Jobs::UpdateStemcell, 'create stemcell', [stemcell_url, { remote: true }])
34
+ def create_stemcell_from_url(username, stemcell_url, options)
35
+ options[:remote] = true
36
+ JobQueue.new.enqueue(username, Jobs::UpdateStemcell, 'create stemcell', [stemcell_url, options])
36
37
  end
37
38
 
38
- def create_stemcell_from_file_path(username, stemcell_path)
39
+ def create_stemcell_from_file_path(username, stemcell_path, options)
39
40
  unless File.exists?(stemcell_path)
40
41
  raise DirectorError, "Failed to create stemcell: file not found - #{stemcell_path}"
41
42
  end
42
43
 
43
- JobQueue.new.enqueue(username, Jobs::UpdateStemcell, 'create stemcell', [stemcell_path])
44
+ JobQueue.new.enqueue(username, Jobs::UpdateStemcell, 'create stemcell', [stemcell_path, options])
44
45
  end
45
46
 
46
47
  def delete_stemcell(username, stemcell, options={})
@@ -37,7 +37,7 @@ module Bosh::Director
37
37
  delete_persistent_disks(instance.persistent_disks)
38
38
  delete_dns(instance.job, instance.index)
39
39
 
40
- RenderedJobTemplatesCleaner.new(instance, @blobstore).clean_all
40
+ RenderedJobTemplatesCleaner.new(instance, @blobstore, @logger).clean_all
41
41
 
42
42
  vm.db.transaction do
43
43
  instance.destroy
@@ -65,7 +65,7 @@ module Bosh::Director
65
65
  steps << proc {
66
66
  VmMetadataUpdater.build.update(@vm, {})
67
67
  apply_state(@instance.spec)
68
- RenderedJobTemplatesCleaner.new(@instance.model, @blobstore).clean
68
+ RenderedJobTemplatesCleaner.new(@instance.model, @blobstore, @logger).clean
69
69
  }
70
70
  end
71
71
 
@@ -144,7 +144,7 @@ module Bosh::Director
144
144
  end
145
145
 
146
146
  ignoring_errors_when_forced do
147
- RenderedJobTemplatesCleaner.new(instance, @blobstore).clean_all
147
+ RenderedJobTemplatesCleaner.new(instance, @blobstore, @logger).clean_all
148
148
  end
149
149
 
150
150
  instance.destroy
@@ -7,7 +7,7 @@ module Bosh::Director
7
7
  include DownloadHelper
8
8
 
9
9
  UPDATE_STEPS = 5
10
-
10
+
11
11
  @queue = :normal
12
12
 
13
13
  def self.job_type
@@ -28,6 +28,7 @@ module Bosh::Director
28
28
 
29
29
  @cloud = Config.cloud
30
30
  @stemcell_manager = Api::StemcellManager.new
31
+ @fix = options['fix']
31
32
  end
32
33
 
33
34
  def perform
@@ -69,19 +70,20 @@ module Bosh::Director
69
70
  end
70
71
  end
71
72
 
73
+ stemcell = nil
72
74
  track_and_log("Checking if this stemcell already exists") do
73
- if @stemcell_manager.stemcell_exists?(@name, @version)
74
- raise StemcellAlreadyExists,
75
- "Stemcell `#{@name}/#{@version}' already exists"
75
+ begin
76
+ stemcell = @stemcell_manager.find_by_name_and_version @name, @version
77
+ raise StemcellAlreadyExists, "Stemcell `#{@name}/#{@version}' already exists" unless @fix
78
+ rescue StemcellNotFound => e
79
+ stemcell = Models::Stemcell.new
80
+ stemcell.name = @name
81
+ stemcell.operating_system = @operating_system
82
+ stemcell.version = @version
83
+ stemcell.sha1 = @sha1
76
84
  end
77
85
  end
78
86
 
79
- stemcell = Models::Stemcell.new
80
- stemcell.name = @name
81
- stemcell.operating_system = @operating_system
82
- stemcell.version = @version
83
- stemcell.sha1 = @sha1
84
-
85
87
  track_and_log("Uploading stemcell #{@name}/#{@version} to the cloud") do
86
88
  stemcell.cid = @cloud.create_stemcell(@stemcell_image, @cloud_properties)
87
89
  logger.info("Cloud created stemcell: #{stemcell.cid}")
@@ -96,7 +98,7 @@ module Bosh::Director
96
98
  FileUtils.rm_rf(stemcell_dir) if stemcell_dir
97
99
  FileUtils.rm_rf(@stemcell_path) if @stemcell_path
98
100
  end
99
-
101
+
100
102
  private
101
103
 
102
104
  def download_remote_stemcell
@@ -1,20 +1,31 @@
1
1
  module Bosh::Director
2
2
  class RenderedJobTemplatesCleaner
3
- def initialize(instance_model, blobstore)
3
+ def initialize(instance_model, blobstore, logger)
4
4
  @instance_model = instance_model
5
5
  @blobstore = blobstore
6
+ @logger = logger
6
7
  end
7
8
 
8
9
  def clean
9
10
  @instance_model.stale_rendered_templates_archives.each do |archive|
10
- @blobstore.delete(archive.blobstore_id)
11
+ begin
12
+ @blobstore.delete(archive.blobstore_id)
13
+ rescue Bosh::Blobstore::NotFound => e
14
+ @logger.debug("Blobstore#delete error: #{e.message}, will ignore this error and delete the db record")
15
+ end
16
+
11
17
  archive.delete
12
18
  end
13
19
  end
14
20
 
15
21
  def clean_all
16
22
  @instance_model.rendered_templates_archives.each do |archive|
17
- @blobstore.delete(archive.blobstore_id)
23
+ begin
24
+ @blobstore.delete(archive.blobstore_id)
25
+ rescue Bosh::Blobstore::NotFound => e
26
+ @logger.debug("Blobstore#delete error: #{e.message}, will ignore this error and delete the db record")
27
+ end
28
+
18
29
  archive.delete
19
30
  end
20
31
  end
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Director
3
- VERSION = '1.3091.0'
3
+ VERSION = '1.3093.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.3091.0
4
+ version: 1.3093.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VMware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-30 00:00:00.000000000 Z
11
+ date: 2015-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bosh_common
@@ -16,140 +16,140 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.3091.0
19
+ version: 1.3093.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.3091.0
26
+ version: 1.3093.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.3091.0
33
+ version: 1.3093.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.3091.0
40
+ version: 1.3093.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.3091.0
47
+ version: 1.3093.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.3091.0
54
+ version: 1.3093.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.3091.0
61
+ version: 1.3093.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.3091.0
68
+ version: 1.3093.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.3091.0
75
+ version: 1.3093.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.3091.0
82
+ version: 1.3093.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.3091.0
89
+ version: 1.3093.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.3091.0
96
+ version: 1.3093.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.3091.0
103
+ version: 1.3093.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.3091.0
110
+ version: 1.3093.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: bosh_openstack_cpi
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - '='
116
116
  - !ruby/object:Gem::Version
117
117
  version: 2.0.0
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - '='
123
123
  - !ruby/object:Gem::Version
124
124
  version: 2.0.0
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bosh_aws_cpi
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 2.0.0
131
+ version: 2.0.2
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 2.0.0
138
+ version: 2.0.2
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: bosh_vsphere_cpi
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.0.0
145
+ version: 2.1.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 2.0.0
152
+ version: 2.1.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: bosh_vcloud_cpi
155
155
  requirement: !ruby/object:Gem::Requirement