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 +4 -4
- data/lib/bosh/director/api/controllers/tasks_controller.rb +13 -13
- data/lib/bosh/director/deployment_plan/deployment_spec_parser.rb +9 -0
- data/lib/bosh/director/deployment_plan/disk_pool.rb +56 -0
- data/lib/bosh/director/deployment_plan/instance.rb +31 -5
- data/lib/bosh/director/deployment_plan/job.rb +9 -2
- data/lib/bosh/director/deployment_plan/job_spec_parser.rb +27 -1
- data/lib/bosh/director/deployment_plan/planner.rb +20 -0
- data/lib/bosh/director/errors.rb +5 -0
- data/lib/bosh/director/instance_updater.rb +59 -44
- data/lib/bosh/director/version.rb +1 -1
- data/lib/cloud/dummy.rb +1 -1
- metadata +28 -28
- data/CHANGELOG +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd2368ca7c56210e18e39bc6f81b29b2ca47e060
|
4
|
+
data.tar.gz: 1fe2d88dfbf4a030afc8871d22d12750971fdd4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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['
|
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
|
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.
|
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 [
|
29
|
-
attr_accessor :
|
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
|
-
|
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)
|
data/lib/bosh/director/errors.rb
CHANGED
@@ -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 {
|
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
|
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
|
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.
|
247
|
-
|
248
|
-
|
249
|
-
|
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
|
-
|
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
|
data/lib/cloud/dummy.rb
CHANGED
@@ -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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
|
-
|
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
|