bosh-director 1.2697.0 → 1.2707.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: d649b286bedcac58fa6f85f1b6105c93b4c17dbe
4
- data.tar.gz: a6108b5300cdaf33a3ca9b96f7a0e4c7f2a0ebb7
3
+ metadata.gz: bd2368ca7c56210e18e39bc6f81b29b2ca47e060
4
+ data.tar.gz: 1fe2d88dfbf4a030afc8871d22d12750971fdd4d
5
5
  SHA512:
6
- metadata.gz: 1917e656e559efdb5476a444f488791c41e03c61df3e05f213b6249b479fd0dba2869f13808f2b9da00ce5588a958fe3acac92ba61aa001ae0c9ceb734f647d6
7
- data.tar.gz: e38dd3342bbd99ffd68e5d70ff59834aaa1290a3956494cb22a4a2e46ac3822e991fab456c5a4fb6c2c82c6082dcd0cd31a31859173fbb0aa9e8422adc3cab73
6
+ metadata.gz: f4db2ae69dd040879328171db70e33b0131e610a788496a0e5250b037a5fa2ef06c5474e58e0ee35eb7e372d75866baeed7c8b78d67b3fdae6fd056a3764a6b6
7
+ data.tar.gz: 73254ebe551fce559859976d2b2461c7677b329f74c860608c18a87b35116805ebfff82ccc0c232cc526f902f6c1b25d3a32030aeb1549037877b8d6cc800b74
@@ -5,15 +5,14 @@ module Bosh::Director
5
5
  class TasksController < BaseController
6
6
  get '/' do
7
7
  dataset = Models::Task.dataset
8
- limit = params['limit']
9
- if limit
8
+
9
+ if limit = params['limit']
10
10
  limit = limit.to_i
11
11
  limit = 1 if limit < 1
12
12
  dataset = dataset.limit(limit)
13
13
  end
14
14
 
15
15
  states = params['state'].to_s.split(',')
16
-
17
16
  if states.size > 0
18
17
  dataset = dataset.filter(:state => states)
19
18
  end
@@ -21,16 +20,17 @@ module Bosh::Director
21
20
  verbose = params['verbose'] || '1'
22
21
  if verbose == '1'
23
22
  dataset = dataset.filter(type: %w[
24
- update_deployment
25
- delete_deployment
26
- update_release
27
- delete_release
28
- update_stemcell
29
- delete_stemcell
30
- create_snapshot
31
- delete_snapshot
32
- snapshot_deployment
33
- ])
23
+ create_snapshot
24
+ delete_deployment
25
+ delete_release
26
+ delete_snapshot
27
+ delete_stemcell
28
+ run_errand
29
+ snapshot_deployment
30
+ update_deployment
31
+ update_release
32
+ update_stemcell
33
+ ])
34
34
  end
35
35
 
36
36
  tasks = dataset.order_by(:timestamp.desc).map do |task|
@@ -27,6 +27,7 @@ module Bosh::Director
27
27
  parse_compilation
28
28
  parse_update
29
29
  parse_resource_pools
30
+ parse_disk_pools
30
31
  parse_jobs
31
32
 
32
33
  @deployment
@@ -110,6 +111,14 @@ module Bosh::Director
110
111
  # raise "No resource pools specified." if @resource_pools.empty?
111
112
  end
112
113
 
114
+ def parse_disk_pools
115
+ disk_pools = safe_property(@manifest, 'disk_pools', :class => Array, :optional => true)
116
+ return if disk_pools.nil?
117
+ disk_pools.each do |dp_spec|
118
+ @deployment.add_disk_pool(DiskPool.parse(dp_spec))
119
+ end
120
+ end
121
+
113
122
  def parse_jobs
114
123
  jobs = safe_property(@manifest, 'jobs', :class => Array, :default => [])
115
124
  jobs.each do |job_spec|
@@ -0,0 +1,56 @@
1
+ module Bosh::Director
2
+ module DeploymentPlan
3
+ class DiskPool
4
+
5
+ # @return [String] Disk pool name
6
+ attr_accessor :name
7
+
8
+ # @return [Integer] Disk size (or nil)
9
+ attr_accessor :disk_size
10
+
11
+ # @return [Hash] cloud properties to use when creating VMs.
12
+ attr_accessor :cloud_properties
13
+
14
+ def self.parse(dp_spec)
15
+ DiskPoolParser.new.parse(dp_spec)
16
+ end
17
+
18
+ def initialize(name)
19
+ @name = name
20
+ @disk_size = 0
21
+ @cloud_properties = {}
22
+ end
23
+
24
+ def spec
25
+ {
26
+ 'name' => name,
27
+ 'disk_size' => disk_size,
28
+ 'cloud_properties' => cloud_properties,
29
+ }
30
+ end
31
+
32
+ private
33
+
34
+ class DiskPoolParser
35
+ include ValidationHelper
36
+
37
+ def parse(dp_spec)
38
+ name = safe_property(dp_spec, 'name', class: String)
39
+ disk_pool = DiskPool.new(name)
40
+
41
+ disk_size = safe_property(dp_spec, 'disk_size', class: Integer, default: 0)
42
+ if disk_size < 0
43
+ raise DiskPoolInvalidDiskSize,
44
+ "Disk pool `#{name}' references an invalid peristent disk size `#{disk_size}'"
45
+ end
46
+ disk_pool.disk_size = disk_size
47
+
48
+ disk_pool.cloud_properties = safe_property(dp_spec, 'cloud_properties', class: Hash, default: {})
49
+
50
+ disk_pool
51
+ end
52
+ end
53
+
54
+ end
55
+ end
56
+ end
@@ -233,7 +233,12 @@ module Bosh::Director
233
233
  # @return [Integer] persistent disk size
234
234
  def disk_size
235
235
  if @model.nil?
236
- current_state['persistent_disk'].to_i
236
+ disk_pool = current_state['persistent_disk_pool']
237
+ if disk_pool
238
+ disk_pool['disk_size'].to_i
239
+ else
240
+ current_state['persistent_disk'].to_i
241
+ end
237
242
  elsif @model.persistent_disk
238
243
  @model.persistent_disk.size
239
244
  else
@@ -241,6 +246,17 @@ module Bosh::Director
241
246
  end
242
247
  end
243
248
 
249
+ ##
250
+ # @return [Hash] persistent disk cloud properties
251
+ def disk_cloud_properties
252
+ disk_pool = current_state['persistent_disk_pool']
253
+ if disk_pool
254
+ disk_pool['cloud_properties']
255
+ else
256
+ {}
257
+ end
258
+ end
259
+
244
260
  ##
245
261
  # @return [Hash<String, String>] dns record hash of dns name and IP
246
262
  def dns_record_info
@@ -326,10 +342,12 @@ module Bosh::Director
326
342
  end
327
343
 
328
344
  ##
329
- # @return [Boolean] returns true if the expected persistent disk differs
330
- # from the one currently configured on the VM
345
+ # @return [Boolean] returns true if the expected persistent disk or cloud_properties differs
346
+ # from the state currently configured on the VM
331
347
  def persistent_disk_changed?
332
- @job.persistent_disk != disk_size
348
+ new_disk_size = @job.persistent_disk_pool ? @job.persistent_disk_pool.disk_size : 0
349
+ new_disk_cloud_properties = @job.persistent_disk_pool ? @job.persistent_disk_pool.cloud_properties : {}
350
+ new_disk_size != disk_size || new_disk_cloud_properties != disk_cloud_properties
333
351
  end
334
352
 
335
353
  ##
@@ -397,12 +415,20 @@ module Bosh::Director
397
415
  'networks' => network_settings,
398
416
  'resource_pool' => job.resource_pool.spec,
399
417
  'packages' => job.package_spec,
400
- 'persistent_disk' => job.persistent_disk,
401
418
  'configuration_hash' => configuration_hash,
402
419
  'properties' => job.properties,
403
420
  'dns_domain_name' => dns_domain_name
404
421
  }
405
422
 
423
+ if job.persistent_disk_pool
424
+ # supply both for reverse compatibility with old agent
425
+ spec['persistent_disk'] = job.persistent_disk_pool.disk_size
426
+ # old agents will ignore this pool
427
+ spec['persistent_disk_pool'] = job.persistent_disk_pool.spec
428
+ else
429
+ spec['persistent_disk'] = 0
430
+ end
431
+
406
432
  if template_hashes
407
433
  spec['template_hashes'] = template_hashes
408
434
  end
@@ -25,8 +25,8 @@ module Bosh::Director
25
25
  # @return [String] Job canonical name (mostly for DNS)
26
26
  attr_accessor :canonical_name
27
27
 
28
- # @return [Integer] Persistent disk size (no disk if zero)
29
- attr_accessor :persistent_disk
28
+ # @return [DiskPool] Persistent disk pool (or nil)
29
+ attr_accessor :persistent_disk_pool
30
30
 
31
31
  # @return [DeploymentPlan] Current deployment plan
32
32
  attr_accessor :deployment
@@ -250,6 +250,13 @@ module Bosh::Director
250
250
  @lifecycle == 'errand'
251
251
  end
252
252
 
253
+ # reverse compatibility: translate disk size into a disk pool
254
+ def persistent_disk=(disk_size)
255
+ disk_pool = DiskPool.new(SecureRandom.uuid)
256
+ disk_pool.disk_size = disk_size
257
+ @persistent_disk_pool = disk_pool
258
+ end
259
+
253
260
  private
254
261
 
255
262
  # @param [Hash] collection All properties collection
@@ -146,7 +146,33 @@ module Bosh::Director
146
146
  end
147
147
 
148
148
  def parse_disk
149
- @job.persistent_disk = safe_property(@job_spec, "persistent_disk", :class => Integer, :default => 0)
149
+ disk_size = safe_property(@job_spec, 'persistent_disk', :class => Integer, :optional => true)
150
+ disk_pool_name = safe_property(@job_spec, 'persistent_disk_pool', :class => String, :optional => true)
151
+
152
+ if disk_size && disk_pool_name
153
+ raise JobInvalidPersistentDisk,
154
+ "Job `#{@job.name}' references both a peristent disk size `#{disk_size}' " +
155
+ "and a peristent disk pool `#{disk_pool_name}'"
156
+ end
157
+
158
+ if disk_size
159
+ if disk_size < 0
160
+ raise JobInvalidPersistentDisk,
161
+ "Job `#{@job.name}' references an invalid peristent disk size `#{disk_size}'"
162
+ else
163
+ @job.persistent_disk = disk_size
164
+ end
165
+ end
166
+
167
+ if disk_pool_name
168
+ disk_pool = @deployment.disk_pool(disk_pool_name)
169
+ if disk_pool.nil?
170
+ raise JobUnknownDiskPool,
171
+ "Job `#{@job.name}' references an unknown disk pool `#{disk_pool_name}'"
172
+ else
173
+ @job.persistent_disk_pool = disk_pool
174
+ end
175
+ end
150
176
  end
151
177
 
152
178
  def parse_properties
@@ -1,4 +1,5 @@
1
1
  require 'bosh/director/deployment_plan/deployment_spec_parser'
2
+ require 'bosh/director/deployment_plan/disk_pool'
2
3
 
3
4
  module Bosh::Director
4
5
  # Encapsulates essential director data structures retrieved
@@ -68,6 +69,7 @@ module Bosh::Director
68
69
  @networks_canonical_name_index = Set.new
69
70
 
70
71
  @resource_pools = {}
72
+ @disk_pools = {}
71
73
 
72
74
  @jobs = []
73
75
  @jobs_name_index = {}
@@ -169,6 +171,24 @@ module Bosh::Director
169
171
  @resource_pools[name]
170
172
  end
171
173
 
174
+ # Adds a disk pool by name
175
+ # @param [Bosh::Director::DeploymentPlan::DiskPool] disk_pool
176
+ def add_disk_pool(disk_pool)
177
+ if @disk_pools[disk_pool.name]
178
+ raise DeploymentDuplicateDiskPoolName,
179
+ "Duplicate disk pool name `#{disk_pool.name}'"
180
+ end
181
+ @disk_pools[disk_pool.name] = disk_pool
182
+ end
183
+
184
+ def disk_pools
185
+ @disk_pools.values
186
+ end
187
+
188
+ def disk_pool(name)
189
+ @disk_pools[name]
190
+ end
191
+
172
192
  # Adds a release by name
173
193
  # @param [Bosh::Director::DeploymentPlan::ReleaseVersion] release
174
194
  def add_release(release)
@@ -145,6 +145,8 @@ module Bosh::Director
145
145
  JobMissingNetwork = err(140007)
146
146
  JobInvalidTemplates = err(140008)
147
147
  JobInvalidLifecycle = err(140009)
148
+ JobUnknownDiskPool = err(140010)
149
+ JobInvalidPersistentDisk = err(140011)
148
150
 
149
151
  # Manifest parsing: job networks section
150
152
  JobUnknownNetwork = err(150001)
@@ -175,6 +177,9 @@ module Bosh::Director
175
177
  DeploymentCanonicalNameTaken = err(190008)
176
178
  DeploymentInvalidNetworkType = err(190009)
177
179
  DeploymentUnknownTemplate = err(190012)
180
+ DeploymentDuplicateDiskPoolName = err(190013)
181
+
182
+ DiskPoolInvalidDiskSize = err(200001)
178
183
 
179
184
  CloudDiskNotAttached = err(390001)
180
185
  CloudDiskMissing = err(390002)
@@ -66,7 +66,7 @@ module Bosh::Director
66
66
  return
67
67
  end
68
68
 
69
- step { update_resource_pool(nil) }
69
+ step { recreate_vm(nil) }
70
70
  step { update_networks }
71
71
  step { update_dns }
72
72
  step { update_persistent_disk }
@@ -164,8 +164,14 @@ module Bosh::Director
164
164
  end
165
165
  end
166
166
 
167
- def delete_disk(disk, vm_cid)
167
+ def delete_unused_disk(disk)
168
+ @cloud.delete_disk(disk.disk_cid)
169
+ disk.destroy
170
+ end
171
+
172
+ def delete_mounted_disk(disk)
168
173
  disk_cid = disk.disk_cid
174
+ vm_cid = @vm.cid
169
175
 
170
176
  # Unmount the disk only if disk is known by the agent
171
177
  if agent && disk_info.include?(disk_cid)
@@ -208,7 +214,7 @@ module Bosh::Director
208
214
  end
209
215
  end
210
216
 
211
- def update_resource_pool(new_disk_cid)
217
+ def recreate_vm(new_disk_cid)
212
218
  @vm, @agent = vm_updater.update(new_disk_cid)
213
219
  end
214
220
 
@@ -237,51 +243,15 @@ module Bosh::Director
237
243
  vm_updater.attach_missing_disk
238
244
  check_persistent_disk
239
245
 
240
- disk_cid = nil
241
246
  disk = nil
242
247
  return unless @instance.persistent_disk_changed?
243
248
 
244
249
  old_disk = @instance.model.persistent_disk
245
250
 
246
- if @job.persistent_disk > 0
247
- @instance.model.db.transaction do
248
- disk_cid = @cloud.create_disk(@job.persistent_disk, @vm.cid)
249
- disk =
250
- Models::PersistentDisk.create(:disk_cid => disk_cid,
251
- :active => false,
252
- :instance_id => @instance.model.id,
253
- :size => @job.persistent_disk)
254
- end
255
-
256
- begin
257
- @cloud.attach_disk(@vm.cid, disk_cid)
258
- rescue Bosh::Clouds::NoDiskSpace => e
259
- if e.ok_to_retry
260
- @logger.warn("Retrying attach disk operation " +
261
- "after persistent disk update failed")
262
- # Recreate the vm
263
- update_resource_pool(disk_cid)
264
- begin
265
- @cloud.attach_disk(@vm.cid, disk_cid)
266
- rescue
267
- @cloud.delete_disk(disk_cid)
268
- disk.destroy
269
- raise
270
- end
271
- else
272
- @cloud.delete_disk(disk_cid)
273
- disk.destroy
274
- raise
275
- end
276
- end
277
-
278
- begin
279
- agent.mount_disk(disk_cid)
280
- agent.migrate_disk(old_disk.disk_cid, disk_cid) if old_disk
281
- rescue
282
- delete_disk(disk, @vm.cid)
283
- raise
284
- end
251
+ if @job.persistent_disk_pool && @job.persistent_disk_pool.disk_size > 0
252
+ disk = create_disk
253
+ attach_disk(disk)
254
+ mount_and_migrate_disk(disk, old_disk)
285
255
  end
286
256
 
287
257
  @instance.model.db.transaction do
@@ -289,7 +259,7 @@ module Bosh::Director
289
259
  disk.update(:active => true) if disk
290
260
  end
291
261
 
292
- delete_disk(old_disk, @vm.cid) if old_disk
262
+ delete_mounted_disk(old_disk) if old_disk
293
263
  end
294
264
 
295
265
  def update_networks
@@ -334,5 +304,50 @@ module Bosh::Director
334
304
  # which could be replaced after updating a VM
335
305
  VmUpdater.new(@instance, @vm, agent, @job_renderer, @cloud, 3, @logger)
336
306
  end
307
+
308
+ private
309
+
310
+ def create_disk
311
+ disk_size = @job.persistent_disk_pool.disk_size
312
+ cloud_properties = @job.persistent_disk_pool.cloud_properties
313
+
314
+ disk = nil
315
+ @instance.model.db.transaction do
316
+ disk_cid = @cloud.create_disk(disk_size, cloud_properties, @vm.cid)
317
+ disk = Models::PersistentDisk.create(
318
+ :disk_cid => disk_cid,
319
+ :active => false,
320
+ :instance_id => @instance.model.id,
321
+ :size => disk_size
322
+ )
323
+ end
324
+ disk
325
+ end
326
+
327
+ def attach_disk(disk)
328
+ @cloud.attach_disk(@vm.cid, disk.disk_cid)
329
+ rescue Bosh::Clouds::NoDiskSpace => e
330
+ if e.ok_to_retry
331
+ @logger.warn('Retrying attach disk operation after persistent disk update failed')
332
+ recreate_vm(disk.disk_cid)
333
+ begin
334
+ @cloud.attach_disk(@vm.cid, disk.disk_cid)
335
+ rescue
336
+ delete_unused_disk(disk)
337
+ raise
338
+ end
339
+ else
340
+ delete_unused_disk(disk)
341
+ raise
342
+ end
343
+ end
344
+
345
+ def mount_and_migrate_disk(new_disk, old_disk)
346
+ agent.mount_disk(new_disk.disk_cid)
347
+ agent.migrate_disk(old_disk.disk_cid, new_disk.disk_cid) if old_disk
348
+ rescue
349
+ delete_mounted_disk(new_disk)
350
+ raise
351
+ end
337
352
  end
338
353
  end
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Director
3
- VERSION = '1.2697.0'
3
+ VERSION = '1.2707.0'
4
4
  end
5
5
  end
@@ -119,7 +119,7 @@ module Bosh
119
119
  write_agent_settings(agent_id, settings)
120
120
  end
121
121
 
122
- def create_disk(size, vm_locality = nil)
122
+ def create_disk(size, cloud_properties, vm_locality = nil)
123
123
  disk_id = SecureRandom.hex
124
124
  file = disk_file(disk_id)
125
125
  FileUtils.mkdir_p(File.dirname(file))
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.2697.0
4
+ version: 1.2707.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VMware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-21 00:00:00.000000000 Z
11
+ date: 2014-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt-ruby
@@ -30,154 +30,154 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.2697.0
33
+ version: 1.2707.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.2697.0
40
+ version: 1.2707.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bosh-core
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.2697.0
47
+ version: 1.2707.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.2697.0
54
+ version: 1.2707.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bosh-director-core
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.2697.0
61
+ version: 1.2707.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.2697.0
68
+ version: 1.2707.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: bosh_common
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.2697.0
75
+ version: 1.2707.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.2697.0
82
+ version: 1.2707.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: bosh-template
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.2697.0
89
+ version: 1.2707.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.2697.0
96
+ version: 1.2707.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: bosh_cpi
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.2697.0
103
+ version: 1.2707.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.2697.0
110
+ version: 1.2707.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
- version: 1.2697.0
117
+ version: 1.2707.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
- version: 1.2697.0
124
+ version: 1.2707.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: 1.2697.0
131
+ version: 1.2707.0
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: 1.2697.0
138
+ version: 1.2707.0
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: 1.2697.0
145
+ version: 1.2707.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: 1.2697.0
152
+ version: 1.2707.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: bosh_warden_cpi
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 1.2697.0
159
+ version: 1.2707.0
160
160
  type: :runtime
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
- version: 1.2697.0
166
+ version: 1.2707.0
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: bosh_vcloud_cpi
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - "~>"
171
+ - - '='
172
172
  - !ruby/object:Gem::Version
173
- version: 0.5.5
173
+ version: 0.6.0
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
- - - "~>"
178
+ - - '='
179
179
  - !ruby/object:Gem::Version
180
- version: 0.5.5
180
+ version: 0.6.0
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: eventmachine
183
183
  requirement: !ruby/object:Gem::Requirement
@@ -460,7 +460,7 @@ dependencies:
460
460
  version: '0'
461
461
  description: |-
462
462
  BOSH Director
463
- ca0ac0
463
+ 3e8bee
464
464
  email: support@cloudfoundry.com
465
465
  executables:
466
466
  - bosh-director
@@ -472,7 +472,6 @@ executables:
472
472
  extensions: []
473
473
  extra_rdoc_files: []
474
474
  files:
475
- - CHANGELOG
476
475
  - bin/bosh-director
477
476
  - bin/bosh-director-console
478
477
  - bin/bosh-director-drain-workers
@@ -578,6 +577,7 @@ files:
578
577
  - lib/bosh/director/deployment_plan/compilation_config.rb
579
578
  - lib/bosh/director/deployment_plan/compiled_package.rb
580
579
  - lib/bosh/director/deployment_plan/deployment_spec_parser.rb
580
+ - lib/bosh/director/deployment_plan/disk_pool.rb
581
581
  - lib/bosh/director/deployment_plan/dns_binder.rb
582
582
  - lib/bosh/director/deployment_plan/dynamic_network.rb
583
583
  - lib/bosh/director/deployment_plan/instance.rb
data/CHANGELOG DELETED
@@ -1,34 +0,0 @@
1
- == 0.7 - 12/07/12
2
- * Gem bumps:
3
- * Upgrade openstack_cpi gem to v0.0.4 and blobstore_client to v0.5.0 in director
4
- * Bump vSphere CPI versions in deployer and director.
5
- * Bump director vsphere_cpi
6
- * Bump vcloud_cpi version
7
- * Bump aws_cpi to 0.6.3
8
- * Rename soap log to cpi log
9
- * `bosh releases` shows which releases are in use
10
- * Improved DNS support
11
- * add director feature list to /info
12
- * Save properties from job spec on release upload
13
- * Filter job properties
14
- * Use common property helpers everywhere
15
- * Release Rebase improvements
16
- * Don't update task state when checkpointing
17
- * Persist VM env for cloudcheck
18
- * Trigger update when resource pool env changes
19
- * Fix InstanceDeleter unit test for 1.9.3.
20
- * Removed Lock.try_lock
21
- * CPI log exposed to all providers.
22
- * Reduce bosh vms timeout from 30 seconds to 5.
23
- * Add LockHelper.
24
- * Make release lock more granular in UpdateDeployment job.
25
- * Use new set_vm_metadata call.
26
- * Fix metadata_helper to use the deployment name.
27
- * Use migrations from the CPI gems.
28
- * Injecting vcloud_cpi dependencies into director
29
-
30
- == 0.6 - 08/29/12
31
- * release rebase support
32
- * fingerprint matching
33
- * updated VSphere CPI to 0.4.10 (vCPU fix)
34
- * removed compiled package sharing