bosh-director 1.1798.0 → 1.1836.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.
- data/lib/bosh/director/compile_task_generator.rb +51 -0
- data/lib/bosh/director/compressed_rendered_job_templates.rb +2 -0
- data/lib/bosh/director/config.rb +35 -31
- data/lib/bosh/director/deployment_plan/assembler.rb +0 -1
- data/lib/bosh/director/deployment_plan/idle_vm.rb +9 -2
- data/lib/bosh/director/deployment_plan/instance.rb +0 -1
- data/lib/bosh/director/deployment_plan/job.rb +0 -1
- data/lib/bosh/director/instance_updater.rb +0 -1
- data/lib/bosh/director/package_compiler.rb +13 -43
- data/lib/bosh/director/rendered_job_templates_persister.rb +1 -1
- data/lib/bosh/director/version.rb +1 -1
- metadata +19 -18
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
require 'bosh/director'
|
|
2
|
+
|
|
3
|
+
module Bosh::Director
|
|
4
|
+
class CompileTaskGenerator
|
|
5
|
+
def initialize(logger, event_log)
|
|
6
|
+
@logger = logger
|
|
7
|
+
@event_log = event_log
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# The compile_tasks hash passed in by the caller will be populated with CompileTasks objects
|
|
11
|
+
def generate!(compile_tasks, job, template, package, stemcell)
|
|
12
|
+
# Our assumption here is that package dependency graph
|
|
13
|
+
# has no cycles: this is being enforced on release upload.
|
|
14
|
+
# Other than that it's a vanilla DFS.
|
|
15
|
+
|
|
16
|
+
@logger.info("Checking whether package `#{package.desc}' needs to be compiled for stemcell `#{stemcell.desc}'")
|
|
17
|
+
task_key = [package.id, stemcell.id]
|
|
18
|
+
task = compile_tasks[task_key]
|
|
19
|
+
|
|
20
|
+
if task # We already visited this task and its dependencies
|
|
21
|
+
task.add_job(job) # But we still need to register this job with task
|
|
22
|
+
return task
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
release_version = template.release.model
|
|
26
|
+
|
|
27
|
+
task = CompileTask.new(package,
|
|
28
|
+
stemcell,
|
|
29
|
+
job,
|
|
30
|
+
release_version.package_dependency_key(package.name),
|
|
31
|
+
release_version.package_cache_key(package.name, stemcell))
|
|
32
|
+
|
|
33
|
+
compiled_package = task.find_compiled_package(@logger, @event_log)
|
|
34
|
+
if compiled_package
|
|
35
|
+
task.use_compiled_package(compiled_package)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
@logger.info("Processing package `#{package.desc}' dependencies")
|
|
39
|
+
dependencies = release_version.dependencies(package.name)
|
|
40
|
+
dependencies.each do |dependency|
|
|
41
|
+
@logger.info("Package `#{package.desc}' depends on package `#{dependency.desc}'")
|
|
42
|
+
dependency_task = generate!(compile_tasks, job, template, dependency, stemcell)
|
|
43
|
+
task.add_dependency(dependency_task)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
compile_tasks[task_key] = task
|
|
47
|
+
task
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
data/lib/bosh/director/config.rb
CHANGED
|
@@ -53,7 +53,11 @@ module Bosh::Director
|
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
@blobstore = nil
|
|
56
|
+
|
|
56
57
|
@compiled_package_cache = nil
|
|
58
|
+
@compiled_package_blobstore = nil
|
|
59
|
+
@compiled_package_cache_options = nil
|
|
60
|
+
|
|
57
61
|
@nats = nil
|
|
58
62
|
@nats_rpc = nil
|
|
59
63
|
@cloud = nil
|
|
@@ -62,7 +66,7 @@ module Bosh::Director
|
|
|
62
66
|
def configure(config)
|
|
63
67
|
@max_vm_create_tries = Integer(config.fetch('max_vm_create_tries', 5))
|
|
64
68
|
|
|
65
|
-
@base_dir = config[
|
|
69
|
+
@base_dir = config['dir']
|
|
66
70
|
FileUtils.mkdir_p(@base_dir)
|
|
67
71
|
|
|
68
72
|
# checkpoint task progress every 30 secs
|
|
@@ -85,14 +89,14 @@ module Bosh::Director
|
|
|
85
89
|
@event_log = EventLog::Log.new
|
|
86
90
|
|
|
87
91
|
# by default keep only last 500 tasks in disk
|
|
88
|
-
@max_tasks = config.fetch(
|
|
92
|
+
@max_tasks = config.fetch('max_tasks', 500).to_i
|
|
89
93
|
|
|
90
|
-
@max_threads = config.fetch(
|
|
94
|
+
@max_threads = config.fetch('max_threads', 32).to_i
|
|
91
95
|
|
|
92
96
|
self.redis_options= {
|
|
93
|
-
:host => config[
|
|
94
|
-
:port => config[
|
|
95
|
-
:password => config[
|
|
97
|
+
:host => config['redis']['host'],
|
|
98
|
+
:port => config['redis']['port'],
|
|
99
|
+
:password => config['redis']['password'],
|
|
96
100
|
:logger => redis_logger
|
|
97
101
|
}
|
|
98
102
|
|
|
@@ -101,29 +105,29 @@ module Bosh::Director
|
|
|
101
105
|
@logger.info("Starting BOSH Director: #{VERSION} (#{@revision})")
|
|
102
106
|
|
|
103
107
|
@process_uuid = SecureRandom.uuid
|
|
104
|
-
@nats_uri = config[
|
|
108
|
+
@nats_uri = config['mbus']
|
|
105
109
|
|
|
106
|
-
@cloud_options = config[
|
|
107
|
-
@compiled_package_cache_options = config[
|
|
108
|
-
@name = config[
|
|
110
|
+
@cloud_options = config['cloud']
|
|
111
|
+
@compiled_package_cache_options = config['compiled_package_cache']
|
|
112
|
+
@name = config['name'] || ''
|
|
109
113
|
|
|
110
114
|
@compiled_package_cache = nil
|
|
111
115
|
|
|
112
116
|
@db_config = config['db']
|
|
113
|
-
@db = configure_db(config[
|
|
114
|
-
@dns = config[
|
|
115
|
-
@dns_domain_name =
|
|
117
|
+
@db = configure_db(config['db'])
|
|
118
|
+
@dns = config['dns']
|
|
119
|
+
@dns_domain_name = 'bosh'
|
|
116
120
|
if @dns
|
|
117
|
-
@dns_db = configure_db(@dns[
|
|
118
|
-
@dns_domain_name = canonical(@dns[
|
|
121
|
+
@dns_db = configure_db(@dns['db']) if @dns['db']
|
|
122
|
+
@dns_domain_name = canonical(@dns['domain_name']) if @dns['domain_name']
|
|
119
123
|
end
|
|
120
124
|
|
|
121
125
|
@uuid = override_uuid || Bosh::Director::Models::DirectorAttribute.find_or_create_uuid(@logger)
|
|
122
126
|
@logger.info("Director UUID: #{@uuid}")
|
|
123
127
|
|
|
124
|
-
@encryption = config[
|
|
125
|
-
@fix_stateful_nodes = config.fetch(
|
|
126
|
-
.fetch(
|
|
128
|
+
@encryption = config['encryption']
|
|
129
|
+
@fix_stateful_nodes = config.fetch('scan_and_fix', {})
|
|
130
|
+
.fetch('auto_fix_stateful_nodes', false)
|
|
127
131
|
@enable_snapshots = config.fetch('snapshots', {}).fetch('enabled', false)
|
|
128
132
|
|
|
129
133
|
Bosh::Clouds::Config.configure(self)
|
|
@@ -140,15 +144,15 @@ module Bosh::Director
|
|
|
140
144
|
end
|
|
141
145
|
|
|
142
146
|
def get_revision
|
|
143
|
-
Dir.chdir(File.expand_path(
|
|
144
|
-
revision_command =
|
|
145
|
-
|
|
146
|
-
|
|
147
|
+
Dir.chdir(File.expand_path('../../../../../..', __FILE__))
|
|
148
|
+
revision_command = '(cat REVISION 2> /dev/null || ' +
|
|
149
|
+
'git show-ref --head --hash=8 2> /dev/null || ' +
|
|
150
|
+
'echo 00000000) | head -n1'
|
|
147
151
|
`#{revision_command}`.strip
|
|
148
152
|
end
|
|
149
153
|
|
|
150
154
|
def configure_db(db_config)
|
|
151
|
-
patch_sqlite if db_config[
|
|
155
|
+
patch_sqlite if db_config['adapter'] == 'sqlite'
|
|
152
156
|
|
|
153
157
|
connection_options = db_config.delete('connection_options') {{}}
|
|
154
158
|
db_config.delete_if { |_, v| v.to_s.empty? }
|
|
@@ -166,8 +170,8 @@ module Bosh::Director
|
|
|
166
170
|
def compiled_package_cache_blobstore
|
|
167
171
|
@lock.synchronize do
|
|
168
172
|
if @compiled_package_cache_blobstore.nil? && use_compiled_package_cache?
|
|
169
|
-
provider = @compiled_package_cache_options[
|
|
170
|
-
options = @compiled_package_cache_options[
|
|
173
|
+
provider = @compiled_package_cache_options['provider']
|
|
174
|
+
options = @compiled_package_cache_options['options']
|
|
171
175
|
@compiled_package_cache_blobstore = Bosh::Blobstore::Client.safe_create(provider, options)
|
|
172
176
|
end
|
|
173
177
|
end
|
|
@@ -175,20 +179,20 @@ module Bosh::Director
|
|
|
175
179
|
end
|
|
176
180
|
|
|
177
181
|
def compiled_package_cache_provider
|
|
178
|
-
use_compiled_package_cache? ? @compiled_package_cache_options[
|
|
182
|
+
use_compiled_package_cache? ? @compiled_package_cache_options['provider'] : nil
|
|
179
183
|
end
|
|
180
184
|
|
|
181
185
|
def cloud_type
|
|
182
186
|
if @cloud_options
|
|
183
|
-
@cloud_options[
|
|
187
|
+
@cloud_options['plugin']
|
|
184
188
|
end
|
|
185
189
|
end
|
|
186
190
|
|
|
187
191
|
def cloud
|
|
188
192
|
@lock.synchronize do
|
|
189
193
|
if @cloud.nil?
|
|
190
|
-
plugin = @cloud_options[
|
|
191
|
-
properties = @cloud_options[
|
|
194
|
+
plugin = @cloud_options['plugin']
|
|
195
|
+
properties = @cloud_options['properties']
|
|
192
196
|
@cloud = Bosh::Clouds::Provider.create(plugin, properties)
|
|
193
197
|
end
|
|
194
198
|
end
|
|
@@ -266,8 +270,8 @@ module Bosh::Director
|
|
|
266
270
|
return if @patched_sqlite
|
|
267
271
|
@patched_sqlite = true
|
|
268
272
|
|
|
269
|
-
require
|
|
270
|
-
require
|
|
273
|
+
require 'sequel'
|
|
274
|
+
require 'sequel/adapters/sqlite'
|
|
271
275
|
|
|
272
276
|
Sequel::SQLite::Database.class_eval do
|
|
273
277
|
def connect(server)
|
|
@@ -389,7 +389,6 @@ module Bosh::Director
|
|
|
389
389
|
state = idle_vm.current_state
|
|
390
390
|
state['job'] = instance.job.spec
|
|
391
391
|
state['index'] = instance.index
|
|
392
|
-
state['release'] = instance.job.release.spec
|
|
393
392
|
agent.apply(state)
|
|
394
393
|
|
|
395
394
|
# Our assumption here is that director database access
|
|
@@ -20,11 +20,18 @@ module Bosh::Director
|
|
|
20
20
|
attr_accessor :vm
|
|
21
21
|
|
|
22
22
|
# @return [Hash] Current state as provided by the BOSH Agent
|
|
23
|
-
|
|
23
|
+
attr_writer :current_state
|
|
24
24
|
|
|
25
25
|
# @return [DeploymentPlan::Instance, nil] Instance that reserved this VM
|
|
26
26
|
attr_accessor :bound_instance
|
|
27
27
|
|
|
28
|
+
def current_state
|
|
29
|
+
if @current_state
|
|
30
|
+
@current_state.delete("release")
|
|
31
|
+
end
|
|
32
|
+
@current_state
|
|
33
|
+
end
|
|
34
|
+
|
|
28
35
|
##
|
|
29
36
|
# Creates a new idle VM reference for the specific resource pool
|
|
30
37
|
# @param [DeploymentPlan::ResourcePool] resource_pool Resource pool
|
|
@@ -106,4 +113,4 @@ module Bosh::Director
|
|
|
106
113
|
end
|
|
107
114
|
end
|
|
108
115
|
end
|
|
109
|
-
end
|
|
116
|
+
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
require 'bosh/director/compile_task_generator'
|
|
2
2
|
|
|
3
3
|
module Bosh::Director
|
|
4
4
|
class PackageCompiler
|
|
@@ -27,6 +27,8 @@ module Bosh::Director
|
|
|
27
27
|
|
|
28
28
|
@vm_reuser = VmReuser.new
|
|
29
29
|
|
|
30
|
+
@compile_task_generator = CompileTaskGenerator.new(@logger, @event_log)
|
|
31
|
+
|
|
30
32
|
@compile_tasks = {}
|
|
31
33
|
@ready_tasks = []
|
|
32
34
|
@compilations_performed = 0
|
|
@@ -183,59 +185,27 @@ module Bosh::Director
|
|
|
183
185
|
|
|
184
186
|
@event_log.track('Finding packages to compile') do
|
|
185
187
|
@deployment_plan.jobs.each do |job|
|
|
186
|
-
job_desc = "#{job.release.name}/#{job.name}"
|
|
187
188
|
stemcell = job.resource_pool.stemcell
|
|
188
189
|
|
|
189
|
-
|
|
190
|
+
template_descs = job.templates.map do |t|
|
|
191
|
+
# we purposefully did NOT inline those because
|
|
192
|
+
# when instance_double blows up,
|
|
193
|
+
# it's obscure which double is at fault
|
|
194
|
+
release_name = t.release.name
|
|
195
|
+
template_name = t.name
|
|
196
|
+
"`#{release_name}/#{template_name}'"
|
|
197
|
+
end
|
|
198
|
+
@logger.info("Job templates #{template_descs.join(', ')} need to run on stemcell `#{stemcell.model.desc}'")
|
|
190
199
|
|
|
191
200
|
job.templates.each do |template|
|
|
192
201
|
template.package_models.each do |package|
|
|
193
|
-
|
|
202
|
+
@compile_task_generator.generate!(@compile_tasks, job, template, package, stemcell.model)
|
|
194
203
|
end
|
|
195
204
|
end
|
|
196
205
|
end
|
|
197
206
|
end
|
|
198
207
|
end
|
|
199
208
|
|
|
200
|
-
def generate_compile_task(job, package, stemcell)
|
|
201
|
-
# Our assumption here is that package dependency graph
|
|
202
|
-
# has no cycles: this is being enforced on release upload.
|
|
203
|
-
# Other than that it's a vanilla DFS.
|
|
204
|
-
|
|
205
|
-
@logger.info("Checking whether package `#{package.desc}' needs to be compiled for stemcell `#{stemcell.desc}'")
|
|
206
|
-
task_key = [package.id, stemcell.id]
|
|
207
|
-
task = @compile_tasks[task_key]
|
|
208
|
-
|
|
209
|
-
if task # We already visited this task and its dependencies
|
|
210
|
-
task.add_job(job) # But we still need to register this job with task
|
|
211
|
-
return task
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
release_version = job.release.model
|
|
215
|
-
|
|
216
|
-
task = CompileTask.new(package,
|
|
217
|
-
stemcell,
|
|
218
|
-
job,
|
|
219
|
-
release_version.package_dependency_key(package.name),
|
|
220
|
-
release_version.package_cache_key(package.name, stemcell))
|
|
221
|
-
|
|
222
|
-
compiled_package = task.find_compiled_package(@logger, @event_log)
|
|
223
|
-
if compiled_package
|
|
224
|
-
task.use_compiled_package(compiled_package)
|
|
225
|
-
end
|
|
226
|
-
|
|
227
|
-
@logger.info("Processing package `#{package.desc}' dependencies")
|
|
228
|
-
dependencies = release_version.dependencies(package.name)
|
|
229
|
-
dependencies.each do |dependency|
|
|
230
|
-
@logger.info("Package `#{package.desc}' depends on package `#{dependency.desc}'")
|
|
231
|
-
dependency_task = generate_compile_task(job, dependency, stemcell)
|
|
232
|
-
task.add_dependency(dependency_task)
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
@compile_tasks[task_key] = task
|
|
236
|
-
task
|
|
237
|
-
end
|
|
238
|
-
|
|
239
209
|
def tear_down_vm(vm_data)
|
|
240
210
|
vm = vm_data.vm
|
|
241
211
|
if vm.exists?
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bosh-director
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1836.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2014-01-
|
|
12
|
+
date: 2014-01-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: bcrypt-ruby
|
|
@@ -34,7 +34,7 @@ dependencies:
|
|
|
34
34
|
requirements:
|
|
35
35
|
- - ~>
|
|
36
36
|
- !ruby/object:Gem::Version
|
|
37
|
-
version: 1.
|
|
37
|
+
version: 1.1836.0
|
|
38
38
|
type: :runtime
|
|
39
39
|
prerelease: false
|
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -42,7 +42,7 @@ dependencies:
|
|
|
42
42
|
requirements:
|
|
43
43
|
- - ~>
|
|
44
44
|
- !ruby/object:Gem::Version
|
|
45
|
-
version: 1.
|
|
45
|
+
version: 1.1836.0
|
|
46
46
|
- !ruby/object:Gem::Dependency
|
|
47
47
|
name: bosh-core
|
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -50,7 +50,7 @@ dependencies:
|
|
|
50
50
|
requirements:
|
|
51
51
|
- - ~>
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 1.
|
|
53
|
+
version: 1.1836.0
|
|
54
54
|
type: :runtime
|
|
55
55
|
prerelease: false
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -58,7 +58,7 @@ dependencies:
|
|
|
58
58
|
requirements:
|
|
59
59
|
- - ~>
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.
|
|
61
|
+
version: 1.1836.0
|
|
62
62
|
- !ruby/object:Gem::Dependency
|
|
63
63
|
name: bosh_common
|
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,7 +66,7 @@ dependencies:
|
|
|
66
66
|
requirements:
|
|
67
67
|
- - ~>
|
|
68
68
|
- !ruby/object:Gem::Version
|
|
69
|
-
version: 1.
|
|
69
|
+
version: 1.1836.0
|
|
70
70
|
type: :runtime
|
|
71
71
|
prerelease: false
|
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -74,7 +74,7 @@ dependencies:
|
|
|
74
74
|
requirements:
|
|
75
75
|
- - ~>
|
|
76
76
|
- !ruby/object:Gem::Version
|
|
77
|
-
version: 1.
|
|
77
|
+
version: 1.1836.0
|
|
78
78
|
- !ruby/object:Gem::Dependency
|
|
79
79
|
name: bosh_cpi
|
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -82,7 +82,7 @@ dependencies:
|
|
|
82
82
|
requirements:
|
|
83
83
|
- - ~>
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
|
-
version: 1.
|
|
85
|
+
version: 1.1836.0
|
|
86
86
|
type: :runtime
|
|
87
87
|
prerelease: false
|
|
88
88
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -90,7 +90,7 @@ dependencies:
|
|
|
90
90
|
requirements:
|
|
91
91
|
- - ~>
|
|
92
92
|
- !ruby/object:Gem::Version
|
|
93
|
-
version: 1.
|
|
93
|
+
version: 1.1836.0
|
|
94
94
|
- !ruby/object:Gem::Dependency
|
|
95
95
|
name: bosh_openstack_cpi
|
|
96
96
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -98,7 +98,7 @@ dependencies:
|
|
|
98
98
|
requirements:
|
|
99
99
|
- - ~>
|
|
100
100
|
- !ruby/object:Gem::Version
|
|
101
|
-
version: 1.
|
|
101
|
+
version: 1.1836.0
|
|
102
102
|
type: :runtime
|
|
103
103
|
prerelease: false
|
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -106,7 +106,7 @@ dependencies:
|
|
|
106
106
|
requirements:
|
|
107
107
|
- - ~>
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: 1.
|
|
109
|
+
version: 1.1836.0
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: bosh_aws_cpi
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -114,7 +114,7 @@ dependencies:
|
|
|
114
114
|
requirements:
|
|
115
115
|
- - ~>
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: 1.
|
|
117
|
+
version: 1.1836.0
|
|
118
118
|
type: :runtime
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -122,7 +122,7 @@ dependencies:
|
|
|
122
122
|
requirements:
|
|
123
123
|
- - ~>
|
|
124
124
|
- !ruby/object:Gem::Version
|
|
125
|
-
version: 1.
|
|
125
|
+
version: 1.1836.0
|
|
126
126
|
- !ruby/object:Gem::Dependency
|
|
127
127
|
name: bosh_vsphere_cpi
|
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -130,7 +130,7 @@ dependencies:
|
|
|
130
130
|
requirements:
|
|
131
131
|
- - ~>
|
|
132
132
|
- !ruby/object:Gem::Version
|
|
133
|
-
version: 1.
|
|
133
|
+
version: 1.1836.0
|
|
134
134
|
type: :runtime
|
|
135
135
|
prerelease: false
|
|
136
136
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -138,7 +138,7 @@ dependencies:
|
|
|
138
138
|
requirements:
|
|
139
139
|
- - ~>
|
|
140
140
|
- !ruby/object:Gem::Version
|
|
141
|
-
version: 1.
|
|
141
|
+
version: 1.1836.0
|
|
142
142
|
- !ruby/object:Gem::Dependency
|
|
143
143
|
name: eventmachine
|
|
144
144
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -461,7 +461,7 @@ dependencies:
|
|
|
461
461
|
version: '1.0'
|
|
462
462
|
description: ! 'BOSH Director
|
|
463
463
|
|
|
464
|
-
|
|
464
|
+
f49b5d'
|
|
465
465
|
email: support@cloudfoundry.com
|
|
466
466
|
executables:
|
|
467
467
|
- bosh-director
|
|
@@ -545,6 +545,7 @@ files:
|
|
|
545
545
|
- lib/bosh/director/blobstores.rb
|
|
546
546
|
- lib/bosh/director/cloudcheck_helper.rb
|
|
547
547
|
- lib/bosh/director/compile_task.rb
|
|
548
|
+
- lib/bosh/director/compile_task_generator.rb
|
|
548
549
|
- lib/bosh/director/compiled_package.rb
|
|
549
550
|
- lib/bosh/director/compiled_package/blob_sha_mismatch_error.rb
|
|
550
551
|
- lib/bosh/director/compiled_package/compiled_package.rb
|
|
@@ -714,7 +715,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
714
715
|
version: '0'
|
|
715
716
|
segments:
|
|
716
717
|
- 0
|
|
717
|
-
hash:
|
|
718
|
+
hash: 3345351914595372714
|
|
718
719
|
requirements: []
|
|
719
720
|
rubyforge_project:
|
|
720
721
|
rubygems_version: 1.8.23
|