bosh-director 1.3063.0 → 1.3068.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/agent_client.rb +3 -3
- data/lib/bosh/director/api/controllers/resources_controller.rb +8 -1
- data/lib/bosh/director/api/resource_manager.rb +18 -2
- data/lib/bosh/director/cloudcheck_helper.rb +1 -0
- data/lib/bosh/director/deployment_plan/cloud_manifest_parser.rb +0 -2
- data/lib/bosh/director/deployment_plan/deployment_spec_parser.rb +0 -2
- data/lib/bosh/director/deployment_plan/job_spec_parser.rb +0 -1
- data/lib/bosh/director/deployment_plan/planner.rb +2 -1
- data/lib/bosh/director/errors.rb +2 -0
- data/lib/bosh/director/instance_updater.rb +1 -15
- data/lib/bosh/director/jobs/update_release.rb +53 -56
- data/lib/bosh/director/version.rb +1 -1
- metadata +44 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9cae55bf1eca66fc2b7350f2d90cf6c771ff6536
|
|
4
|
+
data.tar.gz: 706c4b982e6e7faef9bee55cf2ee49d0f291dbac
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 94f7c1ee49d3ab4018517437d1f602518ade5803bf712dfab62e83f520108be596fb171aa93b9074380ff35dfea95552313bcc71f4691eb46760dc42d072d367
|
|
7
|
+
data.tar.gz: 8e3632b636703a18fc8fe46f5987cf952e6726dcdfeffee66dfb4ae800e04b4008d02a40a3f75cb16318599ddbaf81f42ae6fc0f6d53e95f51f702b5c5493260
|
|
@@ -123,12 +123,12 @@ module Bosh::Director
|
|
|
123
123
|
end
|
|
124
124
|
end
|
|
125
125
|
|
|
126
|
-
def
|
|
126
|
+
def run_script(script_name, options)
|
|
127
127
|
begin
|
|
128
|
-
send_message(:
|
|
128
|
+
send_message(:run_script, script_name, options)
|
|
129
129
|
rescue RpcRemoteException => e
|
|
130
130
|
if e.message =~ /unknown message/
|
|
131
|
-
@logger.warn("Ignoring
|
|
131
|
+
@logger.warn("Ignoring run_script 'unknown message' error from the agent: #{e.inspect}. Received while trying to run: #{script_name}")
|
|
132
132
|
else
|
|
133
133
|
raise
|
|
134
134
|
end
|
|
@@ -10,8 +10,15 @@ module Bosh::Director
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
get '/:id' do
|
|
13
|
+
@resource_manager.clean_old_tmpfiles
|
|
14
|
+
|
|
13
15
|
tmp_file = @resource_manager.get_resource_path(params[:id])
|
|
14
|
-
|
|
16
|
+
|
|
17
|
+
status 200
|
|
18
|
+
headers \
|
|
19
|
+
'Content-Type' => 'application/x-gzip',
|
|
20
|
+
'X-Accel-Redirect' => File.join('/x_accel_files/', tmp_file)
|
|
21
|
+
body ''
|
|
15
22
|
end
|
|
16
23
|
end
|
|
17
24
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Copyright (c) 2009-2012 VMware, Inc.
|
|
2
2
|
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
|
|
3
5
|
module Bosh::Director
|
|
4
6
|
module Api
|
|
5
7
|
class ResourceManager
|
|
@@ -10,14 +12,17 @@ module Bosh::Director
|
|
|
10
12
|
end
|
|
11
13
|
|
|
12
14
|
# Retrieves the resource `id` from the blobstore and stores it
|
|
13
|
-
# locally, and returns the path to the file
|
|
15
|
+
# locally, and returns the path to the file. It is the caller's
|
|
16
|
+
# responsibility to delete the resulting file at some point.
|
|
17
|
+
# An easy option is to call clean_old_tmpfiles before each call
|
|
18
|
+
# to this method.
|
|
14
19
|
#
|
|
15
20
|
# @param [String] id
|
|
16
21
|
# @return [String] path to the contents of the blobstore id
|
|
17
22
|
def get_resource_path(id)
|
|
18
23
|
blobstore_resource(id) do |blobstore|
|
|
19
24
|
random_name = "resource-#{SecureRandom.uuid}"
|
|
20
|
-
path = File.join(
|
|
25
|
+
path = File.join(resource_tmpdir, random_name)
|
|
21
26
|
|
|
22
27
|
File.open(path, "w") do |f|
|
|
23
28
|
blobstore.get(id, f)
|
|
@@ -27,6 +32,17 @@ module Bosh::Director
|
|
|
27
32
|
end
|
|
28
33
|
end
|
|
29
34
|
|
|
35
|
+
# Returns the directory where files created by get_resource_path will be written.
|
|
36
|
+
def resource_tmpdir
|
|
37
|
+
Dir.tmpdir
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Deletes all get_resource_path temporary files that are more than 5 minutes old.
|
|
41
|
+
def clean_old_tmpfiles
|
|
42
|
+
Dir.glob("#{resource_tmpdir}/resource-*").
|
|
43
|
+
select{|f| File.mtime(f) < (Time.now - (60*5)) }.
|
|
44
|
+
each{|f| FileUtils.rm_f(f) }
|
|
45
|
+
end
|
|
30
46
|
# Retrieves the resource `id` from the blobstore and returns the
|
|
31
47
|
# contents of it.
|
|
32
48
|
# @param [String] id
|
|
@@ -2,6 +2,7 @@ require 'bosh/director/deployment_plan/deployment_spec_parser'
|
|
|
2
2
|
require 'bosh/director/deployment_plan/cloud_manifest_parser'
|
|
3
3
|
require 'bosh/director/deployment_plan/disk_pool'
|
|
4
4
|
require 'forwardable'
|
|
5
|
+
require 'common/deep_copy'
|
|
5
6
|
|
|
6
7
|
module Bosh::Director
|
|
7
8
|
# Encapsulates essential director data structures retrieved
|
|
@@ -53,7 +54,7 @@ module Bosh::Director
|
|
|
53
54
|
@properties = attrs.fetch(:properties)
|
|
54
55
|
@releases = {}
|
|
55
56
|
|
|
56
|
-
@manifest_text = manifest_text
|
|
57
|
+
@manifest_text = Bosh::Common::DeepCopy.copy(manifest_text)
|
|
57
58
|
@cloud_config = cloud_config
|
|
58
59
|
@cloud_planner = CloudPlanner.new(cloud_config)
|
|
59
60
|
@model = deployment_model
|
data/lib/bosh/director/errors.rb
CHANGED
|
@@ -75,6 +75,8 @@ module Bosh::Director
|
|
|
75
75
|
ReleaseVersionInvalid = err(30010)
|
|
76
76
|
ReleaseNotMatchingManifest = err(30011)
|
|
77
77
|
ReleaseInvalidPackage = err(30012)
|
|
78
|
+
ReleaseExistingJobFingerprintMismatch = err(30013)
|
|
79
|
+
ReleaseVersionCommitHashMismatch = err(30014)
|
|
78
80
|
|
|
79
81
|
ValidationInvalidType = err(40000)
|
|
80
82
|
ValidationMissingField = err(40001)
|
|
@@ -119,17 +119,7 @@ module Bosh::Director
|
|
|
119
119
|
end
|
|
120
120
|
|
|
121
121
|
def run_pre_start_scripts
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
pre_start_scripts_list = []
|
|
125
|
-
@instance.spec['job']['templates'].each do |template|
|
|
126
|
-
pre_start_scripts_list << "jobs/#{template['name']}/bin/pre-start"
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
event_log.track(@instance.spec['job']['name']) {
|
|
130
|
-
@agent.run_scripts(pre_start_scripts_list, {})
|
|
131
|
-
}
|
|
132
|
-
|
|
122
|
+
@agent.run_script("pre-start", {})
|
|
133
123
|
end
|
|
134
124
|
|
|
135
125
|
def start!
|
|
@@ -385,9 +375,5 @@ module Bosh::Director
|
|
|
385
375
|
delete_mounted_disk(new_disk)
|
|
386
376
|
raise
|
|
387
377
|
end
|
|
388
|
-
|
|
389
|
-
def event_log
|
|
390
|
-
@event_log ||= Config.event_log
|
|
391
|
-
end
|
|
392
378
|
end
|
|
393
379
|
end
|
|
@@ -28,14 +28,9 @@ module Bosh::Director
|
|
|
28
28
|
@release_path = release_path
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
@release_model = nil
|
|
32
|
-
@release_version_model = nil
|
|
31
|
+
@release_model, @release_version_model, @manifest, @name, @version = nil, nil, nil, nil, nil
|
|
33
32
|
|
|
34
33
|
@rebase = !!options['rebase']
|
|
35
|
-
|
|
36
|
-
@manifest = nil
|
|
37
|
-
@name = nil
|
|
38
|
-
@version = nil
|
|
39
34
|
end
|
|
40
35
|
|
|
41
36
|
# Extracts release tarball, verifies release manifest and saves release in DB
|
|
@@ -51,14 +46,11 @@ module Bosh::Director
|
|
|
51
46
|
|
|
52
47
|
single_step_stage("Verifying manifest") { verify_manifest(release_dir) }
|
|
53
48
|
|
|
54
|
-
with_release_lock(@name) {
|
|
55
|
-
process_release(release_dir)
|
|
56
|
-
}
|
|
49
|
+
with_release_lock(@name) { process_release(release_dir) }
|
|
57
50
|
|
|
58
51
|
"Created release `#{@name}/#{@version}'"
|
|
59
52
|
|
|
60
53
|
rescue Exception => e
|
|
61
|
-
remove_release_version_model
|
|
62
54
|
raise e
|
|
63
55
|
|
|
64
56
|
ensure
|
|
@@ -103,9 +95,7 @@ module Bosh::Director
|
|
|
103
95
|
|
|
104
96
|
begin
|
|
105
97
|
@version = Bosh::Common::Version::ReleaseVersion.parse(@manifest["version"])
|
|
106
|
-
unless @version == @manifest["version"]
|
|
107
|
-
logger.info("Formatted version '#{@manifest["version"]}' => '#{@version}'")
|
|
108
|
-
end
|
|
98
|
+
logger.info("Formatted version '#{@manifest["version"]}' => '#{@version}'") unless @version == @manifest["version"]
|
|
109
99
|
rescue SemiSemantic::ParseError
|
|
110
100
|
raise ReleaseVersionInvalid, "Release version invalid: #{@manifest["version"]}"
|
|
111
101
|
end
|
|
@@ -129,18 +119,22 @@ module Bosh::Director
|
|
|
129
119
|
def process_release(release_dir)
|
|
130
120
|
@release_model = Models::Release.find_or_create(:name => @name)
|
|
131
121
|
|
|
132
|
-
if @rebase
|
|
133
|
-
@version = next_release_version
|
|
134
|
-
end
|
|
122
|
+
@version = next_release_version if @rebase
|
|
135
123
|
|
|
136
124
|
version_attrs = { :release => @release_model, :version => @version.to_s }
|
|
137
|
-
version_attrs[:uncommitted_changes] = @uncommitted_changes if @uncommitted_changes
|
|
138
|
-
version_attrs[:commit_hash] = @commit_hash if @commit_hash
|
|
139
125
|
|
|
140
|
-
|
|
141
|
-
@release_version_model = Models::ReleaseVersion.find_or_create(version_attrs)
|
|
142
|
-
|
|
143
|
-
|
|
126
|
+
release_is_new = false
|
|
127
|
+
@release_version_model = Models::ReleaseVersion.find_or_create(version_attrs){ release_is_new = true }
|
|
128
|
+
|
|
129
|
+
if release_is_new
|
|
130
|
+
@release_version_model.uncommitted_changes = @uncommitted_changes if @uncommitted_changes
|
|
131
|
+
@release_version_model.commit_hash = @commit_hash if @commit_hash
|
|
132
|
+
@release_version_model.save
|
|
133
|
+
else
|
|
134
|
+
if @release_version_model.commit_hash != @commit_hash || @release_version_model.uncommitted_changes != @uncommitted_changes
|
|
135
|
+
raise ReleaseVersionCommitHashMismatch, "release `#{@name}/#{@version}' has already been uploaded with commit_hash as `#{@commit_hash}' and uncommitted_changes as `#{@uncommitted_changes}'"
|
|
136
|
+
end
|
|
137
|
+
end
|
|
144
138
|
|
|
145
139
|
single_step_stage("Resolving package dependencies") do
|
|
146
140
|
resolve_package_dependencies(@manifest[@packages_folder])
|
|
@@ -148,7 +142,7 @@ module Bosh::Director
|
|
|
148
142
|
|
|
149
143
|
@packages = {}
|
|
150
144
|
process_packages(release_dir)
|
|
151
|
-
process_jobs(release_dir)
|
|
145
|
+
process_jobs(release_dir)
|
|
152
146
|
|
|
153
147
|
event_log.begin_stage(@compiled_release ? "Compiled Release has been created" : "Release has been created", 1)
|
|
154
148
|
event_log.track("#{@name}/#{@version}") {}
|
|
@@ -200,13 +194,16 @@ module Bosh::Director
|
|
|
200
194
|
registered_packages = []
|
|
201
195
|
|
|
202
196
|
@manifest[@packages_folder].each do |package_meta|
|
|
203
|
-
# Checking whether we might have the same bits somewhere
|
|
197
|
+
# Checking whether we might have the same bits somewhere (in any release, not just the one being uploaded)
|
|
198
|
+
@release_version_model.packages.select { |pv| pv.name == package_meta['name'] }.each do |package|
|
|
199
|
+
if package.fingerprint != package_meta['fingerprint']
|
|
200
|
+
raise ReleaseInvalidPackage, "package `#{package_meta['name']}' had different fingerprint in previously uploaded release `#{@name}/#{@version}'"
|
|
201
|
+
end
|
|
202
|
+
end
|
|
204
203
|
|
|
205
204
|
packages = Models::Package.where(fingerprint: package_meta["fingerprint"]).all
|
|
205
|
+
|
|
206
206
|
if packages.empty?
|
|
207
|
-
unless @release_is_new
|
|
208
|
-
raise ReleaseInvalidPackage, "package #{package_meta['name']}/#{package_meta['version']} not part of previous upload of release #{@name}/#{@version}"
|
|
209
|
-
end
|
|
210
207
|
new_packages << package_meta
|
|
211
208
|
next
|
|
212
209
|
end
|
|
@@ -227,14 +224,25 @@ module Bosh::Director
|
|
|
227
224
|
end
|
|
228
225
|
|
|
229
226
|
if existing_package.release_versions.include? @release_version_model
|
|
227
|
+
if existing_package.blobstore_id.nil?
|
|
228
|
+
packages.each do |package|
|
|
229
|
+
unless package.blobstore_id.nil?
|
|
230
|
+
package_meta["blobstore_id"] = package.blobstore_id
|
|
231
|
+
package_meta["sha1"] = package.sha1
|
|
232
|
+
break
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
end
|
|
230
236
|
registered_packages << [existing_package, package_meta]
|
|
231
237
|
else
|
|
232
238
|
existing_packages << [existing_package, package_meta]
|
|
233
239
|
end
|
|
240
|
+
|
|
234
241
|
else
|
|
235
242
|
# We found a package with the same fingerprint but different
|
|
236
243
|
# (release, name, version) tuple, so we need to make a copy
|
|
237
244
|
# of the package blob and create a new db entry for it
|
|
245
|
+
|
|
238
246
|
packages.each do |package|
|
|
239
247
|
unless package.blobstore_id.nil?
|
|
240
248
|
package_meta["blobstore_id"] = package.blobstore_id
|
|
@@ -246,13 +254,9 @@ module Bosh::Director
|
|
|
246
254
|
end
|
|
247
255
|
end
|
|
248
256
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
package_stemcell_hashes1, created_package = create_packages(new_packages, release_dir)
|
|
252
|
-
did_something |= created_package
|
|
257
|
+
package_stemcell_hashes1 = create_packages(new_packages, release_dir)
|
|
253
258
|
|
|
254
|
-
package_stemcell_hashes2
|
|
255
|
-
did_something |= modified_package
|
|
259
|
+
package_stemcell_hashes2 = use_existing_packages(existing_packages, release_dir)
|
|
256
260
|
|
|
257
261
|
if @compiled_release
|
|
258
262
|
compatible_stemcell_combos = registered_packages.flat_map do |pkg, pkg_meta|
|
|
@@ -264,11 +268,10 @@ module Bosh::Director
|
|
|
264
268
|
end
|
|
265
269
|
end
|
|
266
270
|
consolidated_package_stemcell_hashes = Array(package_stemcell_hashes1) | Array(package_stemcell_hashes2) | compatible_stemcell_combos
|
|
267
|
-
|
|
271
|
+
create_compiled_packages(consolidated_package_stemcell_hashes, release_dir)
|
|
268
272
|
else
|
|
269
|
-
|
|
273
|
+
backfill_source_for_packages(registered_packages, release_dir)
|
|
270
274
|
end
|
|
271
|
-
did_something
|
|
272
275
|
end
|
|
273
276
|
|
|
274
277
|
# @return [boolean] true if sources were added to at least one package; false if the call had no effect.
|
|
@@ -293,7 +296,7 @@ module Bosh::Director
|
|
|
293
296
|
# @return [Array<Hash>] package & stemcell matching pairs that were registered. empty if no packages were changed.
|
|
294
297
|
def use_existing_packages(packages, release_dir)
|
|
295
298
|
if packages.empty?
|
|
296
|
-
return []
|
|
299
|
+
return []
|
|
297
300
|
end
|
|
298
301
|
|
|
299
302
|
package_stemcell_hashes = []
|
|
@@ -319,17 +322,16 @@ module Bosh::Director
|
|
|
319
322
|
end
|
|
320
323
|
end
|
|
321
324
|
|
|
322
|
-
return package_stemcell_hashes
|
|
325
|
+
return package_stemcell_hashes
|
|
323
326
|
end
|
|
324
327
|
|
|
325
328
|
# Creates packages using provided metadata
|
|
326
329
|
# @param [Array<Hash>] packages Packages metadata
|
|
327
330
|
# @param [String] release_dir local path to the unpacked release
|
|
328
331
|
# @return [Array<Hash>, boolean] array of compiled package & stemcell matching pairs that were registered, and a
|
|
329
|
-
# flag indicating if any changes were made to the database.
|
|
330
332
|
def create_packages(package_metas, release_dir)
|
|
331
333
|
if package_metas.empty?
|
|
332
|
-
return []
|
|
334
|
+
return []
|
|
333
335
|
end
|
|
334
336
|
|
|
335
337
|
package_stemcell_hashes = []
|
|
@@ -354,7 +356,7 @@ module Bosh::Director
|
|
|
354
356
|
end
|
|
355
357
|
end
|
|
356
358
|
|
|
357
|
-
return package_stemcell_hashes
|
|
359
|
+
return package_stemcell_hashes
|
|
358
360
|
end
|
|
359
361
|
|
|
360
362
|
# @return [boolean] true if at least one job was created; false if the call had no effect.
|
|
@@ -450,8 +452,7 @@ module Bosh::Director
|
|
|
450
452
|
def save_package_source_blob(package, package_meta, release_dir)
|
|
451
453
|
return false unless package.blobstore_id.nil?
|
|
452
454
|
|
|
453
|
-
name, version = package_meta['name'], package_meta['version']
|
|
454
|
-
existing_blob = package_meta['blobstore_id']
|
|
455
|
+
name, version, existing_blob = package_meta['name'], package_meta['version'], package_meta['blobstore_id']
|
|
455
456
|
desc = "package '#{name}/#{version}'"
|
|
456
457
|
|
|
457
458
|
package.sha1 = package_meta['sha1']
|
|
@@ -500,6 +501,12 @@ module Bosh::Director
|
|
|
500
501
|
|
|
501
502
|
@manifest["jobs"].each do |job_meta|
|
|
502
503
|
# Checking whether we might have the same bits somewhere
|
|
504
|
+
@release_version_model.templates.select { |t| t.name == job_meta["name"] }.each do |tmpl|
|
|
505
|
+
if tmpl.fingerprint != job_meta["fingerprint"]
|
|
506
|
+
raise ReleaseExistingJobFingerprintMismatch, "job `#{job_meta["name"]}' had different fingerprint in previously uploaded release `#{@name}/#{@version}'"
|
|
507
|
+
end
|
|
508
|
+
end
|
|
509
|
+
|
|
503
510
|
jobs = Models::Template.where(fingerprint: job_meta["fingerprint"]).all
|
|
504
511
|
|
|
505
512
|
template = jobs.find do |job|
|
|
@@ -552,13 +559,15 @@ module Bosh::Director
|
|
|
552
559
|
jobs.each do |template, _|
|
|
553
560
|
job_desc = "#{template.name}/#{template.version}"
|
|
554
561
|
logger.info("Using existing job `#{job_desc}'")
|
|
555
|
-
register_template(template)
|
|
562
|
+
register_template(template) unless template.release_versions.include? @release_version_model
|
|
556
563
|
end
|
|
557
564
|
end
|
|
558
565
|
|
|
559
566
|
true
|
|
560
567
|
end
|
|
561
568
|
|
|
569
|
+
private
|
|
570
|
+
|
|
562
571
|
# Marks job template model as being used by release version
|
|
563
572
|
# @param [Models::Template] template Job template model
|
|
564
573
|
# @return [void]
|
|
@@ -566,8 +575,6 @@ module Bosh::Director
|
|
|
566
575
|
@release_version_model.add_template(template)
|
|
567
576
|
end
|
|
568
577
|
|
|
569
|
-
private
|
|
570
|
-
|
|
571
578
|
# Returns the next release version (to be used for rebased release)
|
|
572
579
|
# @return [String]
|
|
573
580
|
def next_release_version
|
|
@@ -577,16 +584,6 @@ module Bosh::Director
|
|
|
577
584
|
list = Bosh::Common::Version::ReleaseVersionList.parse(strings)
|
|
578
585
|
list.rebase(@version)
|
|
579
586
|
end
|
|
580
|
-
|
|
581
|
-
# Removes release version model, along with all packages and templates.
|
|
582
|
-
# @return [void]
|
|
583
|
-
def remove_release_version_model
|
|
584
|
-
return unless @release_version_model && !@release_version_model.new?
|
|
585
|
-
|
|
586
|
-
@release_version_model.remove_all_packages
|
|
587
|
-
@release_version_model.remove_all_templates
|
|
588
|
-
@release_version_model.destroy
|
|
589
|
-
end
|
|
590
587
|
end
|
|
591
588
|
end
|
|
592
589
|
end
|
metadata
CHANGED
|
@@ -1,155 +1,155 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bosh-director
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3068.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-
|
|
11
|
+
date: 2015-09-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
|
-
name:
|
|
14
|
+
name: bosh_common
|
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
19
|
+
version: 1.3068.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:
|
|
26
|
+
version: 1.3068.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
|
-
name:
|
|
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.3068.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.3068.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
|
-
name: bosh-
|
|
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.3068.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.3068.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
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.3068.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.3068.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
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.3068.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.3068.0
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: bosh-
|
|
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.3068.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.3068.0
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
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.3068.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.3068.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:
|
|
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
|
-
version:
|
|
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: 1.
|
|
131
|
+
version: 1.3068.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.3068.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:
|
|
145
|
+
version: 2.0.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:
|
|
152
|
+
version: 2.0.0
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
154
|
name: bosh_vcloud_cpi
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -164,6 +164,20 @@ dependencies:
|
|
|
164
164
|
- - '='
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: 0.11.0
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: bcrypt-ruby
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - "~>"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: 3.0.1
|
|
174
|
+
type: :runtime
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - "~>"
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: 3.0.1
|
|
167
181
|
- !ruby/object:Gem::Dependency
|
|
168
182
|
name: eventmachine
|
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -570,9 +584,7 @@ dependencies:
|
|
|
570
584
|
- - ">="
|
|
571
585
|
- !ruby/object:Gem::Version
|
|
572
586
|
version: '0'
|
|
573
|
-
description:
|
|
574
|
-
BOSH Director
|
|
575
|
-
ac5134
|
|
587
|
+
description: BOSH Director
|
|
576
588
|
email: support@cloudfoundry.com
|
|
577
589
|
executables:
|
|
578
590
|
- bosh-director
|