cfoundry 0.3.14 → 0.3.15
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cfoundry/v1/app.rb +105 -105
- data/lib/cfoundry/v2/service_instance.rb +1 -1
- data/lib/cfoundry/version.rb +1 -1
- metadata +4 -4
data/lib/cfoundry/v1/app.rb
CHANGED
@@ -62,6 +62,7 @@ module CFoundry::V1
|
|
62
62
|
@name = name
|
63
63
|
@client = client
|
64
64
|
@manifest = manifest
|
65
|
+
@diff = {}
|
65
66
|
end
|
66
67
|
|
67
68
|
# Show string representing the application.
|
@@ -76,9 +77,8 @@ module CFoundry::V1
|
|
76
77
|
@client.base.delete_app(@name)
|
77
78
|
|
78
79
|
if @manifest
|
79
|
-
@
|
80
|
-
@manifest
|
81
|
-
@manifest.delete :state
|
80
|
+
@diff = read_manifest
|
81
|
+
@manifest = nil
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
@@ -86,8 +86,8 @@ module CFoundry::V1
|
|
86
86
|
#
|
87
87
|
# Call this after setting the various attributes.
|
88
88
|
def create!
|
89
|
-
@client.base.create_app(
|
90
|
-
@
|
89
|
+
@client.base.create_app(write_manifest)
|
90
|
+
@diff = {}
|
91
91
|
end
|
92
92
|
|
93
93
|
# Check if the application exists on the target.
|
@@ -112,13 +112,16 @@ module CFoundry::V1
|
|
112
112
|
|
113
113
|
# Update application attributes. Does not restart the application.
|
114
114
|
def update!(what = {})
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
115
|
+
what.each do |k, v|
|
116
|
+
send(:"#{k}=", v)
|
117
|
+
end
|
118
|
+
|
119
|
+
@client.base.update_app(@name, write_manifest)
|
119
120
|
|
120
|
-
@client.base.update_app(@name, manifest.merge(what))
|
121
121
|
@manifest = nil
|
122
|
+
@diff = {}
|
123
|
+
|
124
|
+
self
|
122
125
|
end
|
123
126
|
|
124
127
|
# Stop the application.
|
@@ -146,8 +149,8 @@ module CFoundry::V1
|
|
146
149
|
def health
|
147
150
|
s = state
|
148
151
|
if s == "STARTED"
|
149
|
-
healthy_count =
|
150
|
-
expected =
|
152
|
+
healthy_count = running_instances
|
153
|
+
expected = total_instances
|
151
154
|
if healthy_count && expected > 0
|
152
155
|
ratio = healthy_count / expected.to_f
|
153
156
|
if ratio == 1.0
|
@@ -184,51 +187,41 @@ module CFoundry::V1
|
|
184
187
|
state == "STARTED"
|
185
188
|
end
|
186
189
|
|
187
|
-
def env
|
188
|
-
e = manifest[:env] || []
|
189
|
-
|
190
|
-
env = {}
|
191
|
-
e.each do |pair|
|
192
|
-
name, val = pair.split("=", 2)
|
193
|
-
env[name] = val
|
194
|
-
end
|
195
|
-
|
196
|
-
CFoundry::ChattyHash.new(method(:env=), env)
|
197
|
-
end
|
198
|
-
|
199
|
-
def env=(hash)
|
200
|
-
@manifest ||= {}
|
201
|
-
@manifest[:env] = hash.collect { |k, v| "#{k}=#{v}" }
|
202
|
-
end
|
203
|
-
|
204
|
-
def services
|
205
|
-
manifest[:services].collect do |name|
|
206
|
-
@client.service_instance(name)
|
207
|
-
end
|
208
|
-
end
|
209
|
-
|
210
|
-
def services=(instances)
|
211
|
-
@manifest ||= {}
|
212
|
-
@manifest[:services] = instances.collect(&:name)
|
213
|
-
end
|
214
|
-
|
215
190
|
|
216
191
|
{ :total_instances => :instances,
|
192
|
+
:running_instances => :running_instances,
|
193
|
+
:runtime_name => :runtime,
|
194
|
+
:framework_name => :framework,
|
195
|
+
:service_names => :services,
|
196
|
+
:env_array => :env,
|
217
197
|
:state => :state,
|
218
198
|
:status => :state,
|
219
199
|
:uris => :uris,
|
220
|
-
:urls => :uris
|
200
|
+
:urls => :uris,
|
201
|
+
:command => :command,
|
202
|
+
:console => :console,
|
203
|
+
:memory => :memory,
|
204
|
+
:disk => :disk,
|
205
|
+
:fds => :fds,
|
206
|
+
:debug_mode => :debug,
|
207
|
+
:version => :version,
|
208
|
+
:meta_version => :meta_version,
|
209
|
+
:created => :created
|
221
210
|
}.each do |meth, attr|
|
222
211
|
define_method(meth) do
|
223
|
-
|
212
|
+
if @diff.key?(attr)
|
213
|
+
@diff[attr]
|
214
|
+
else
|
215
|
+
read_manifest[attr]
|
216
|
+
end
|
224
217
|
end
|
225
218
|
|
226
219
|
define_method(:"#{meth}=") do |v|
|
227
|
-
@
|
228
|
-
@manifest[attr] = v
|
220
|
+
@diff[attr] = v
|
229
221
|
end
|
230
222
|
end
|
231
223
|
|
224
|
+
|
232
225
|
# Shortcut for uris[0]
|
233
226
|
def uri
|
234
227
|
uris[0]
|
@@ -244,90 +237,48 @@ module CFoundry::V1
|
|
244
237
|
|
245
238
|
# Application framework.
|
246
239
|
def framework
|
247
|
-
|
248
|
-
|
249
|
-
Framework.new(
|
250
|
-
manifest[:staging][:framework] ||
|
251
|
-
manifest[:staging][:model])
|
240
|
+
Framework.new(framework_name)
|
252
241
|
end
|
253
242
|
|
254
243
|
def framework=(v) # :nodoc:
|
255
244
|
v = v.name if v.is_a?(Framework)
|
256
|
-
|
257
|
-
@manifest ||= {}
|
258
|
-
@manifest[:staging] ||= {}
|
259
|
-
|
260
|
-
if @manifest[:staging].key? :model
|
261
|
-
@manifest[:staging][:model] = v
|
262
|
-
else
|
263
|
-
@manifest[:staging][:framework] = v
|
264
|
-
end
|
245
|
+
self.framework_name = v
|
265
246
|
end
|
266
247
|
|
267
248
|
# Application runtime.
|
268
249
|
def runtime
|
269
|
-
|
270
|
-
|
271
|
-
Framework.new(
|
272
|
-
manifest[:staging][:runtime] ||
|
273
|
-
manifest[:staging][:stack])
|
250
|
+
Runtime.new(runtime_name)
|
274
251
|
end
|
275
252
|
|
276
253
|
def runtime=(v) # :nodoc:
|
277
254
|
v = v.name if v.is_a?(Runtime)
|
278
|
-
|
279
|
-
@manifest ||= {}
|
280
|
-
@manifest[:staging] ||= {}
|
281
|
-
|
282
|
-
if @manifest[:staging].key? :stack
|
283
|
-
@manifest[:staging][:stack] = v
|
284
|
-
else
|
285
|
-
@manifest[:staging][:runtime] = v
|
286
|
-
end
|
287
|
-
end
|
288
|
-
|
289
|
-
|
290
|
-
# Application startup command.
|
291
|
-
#
|
292
|
-
# Used for standalone apps.
|
293
|
-
def command
|
294
|
-
return unless manifest[:staging] || manifest[:meta]
|
295
|
-
|
296
|
-
manifest[:staging][:command] ||
|
297
|
-
manifest[:meta][:command]
|
298
|
-
end
|
299
|
-
|
300
|
-
def command=(v) # :nodoc:
|
301
|
-
@manifest ||= {}
|
302
|
-
@manifest[:staging] ||= {}
|
303
|
-
@manifest[:staging][:command] = v
|
255
|
+
self.runtime_name = v
|
304
256
|
end
|
305
257
|
|
258
|
+
def env
|
259
|
+
e = env_array || []
|
306
260
|
|
307
|
-
|
308
|
-
|
309
|
-
|
261
|
+
env = {}
|
262
|
+
e.each do |pair|
|
263
|
+
name, val = pair.split("=", 2)
|
264
|
+
env[name] = val
|
265
|
+
end
|
310
266
|
|
311
|
-
|
267
|
+
CFoundry::ChattyHash.new(method(:env=), env)
|
312
268
|
end
|
313
269
|
|
314
|
-
def
|
315
|
-
|
316
|
-
@manifest[:resources] ||= {}
|
317
|
-
@manifest[:resources][:memory] = v
|
270
|
+
def env=(hash)
|
271
|
+
self.env_array = hash.collect { |k, v| "#{k}=#{v}" }
|
318
272
|
end
|
319
273
|
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
manifest.fetch(:debug) do
|
324
|
-
manifest[:meta] && manifest[:meta][:debug]
|
274
|
+
def services
|
275
|
+
service_names.collect do |name|
|
276
|
+
@client.service_instance(name)
|
325
277
|
end
|
326
278
|
end
|
327
279
|
|
328
|
-
def
|
329
|
-
|
330
|
-
@manifest[:debug] = v
|
280
|
+
def services=(instances)
|
281
|
+
self.service_names = instances.collect(&:name)
|
331
282
|
end
|
332
283
|
|
333
284
|
|
@@ -415,6 +366,55 @@ module CFoundry::V1
|
|
415
366
|
@manifest ||= @client.base.app(@name)
|
416
367
|
end
|
417
368
|
|
369
|
+
def write_manifest
|
370
|
+
{ :name => @name,
|
371
|
+
:instances => total_instances,
|
372
|
+
:state => state,
|
373
|
+
:env => env_array,
|
374
|
+
:uris => uris,
|
375
|
+
:version => version,
|
376
|
+
:services => service_names,
|
377
|
+
:staging => {
|
378
|
+
:model => framework_name,
|
379
|
+
:stack => runtime_name,
|
380
|
+
:command => command
|
381
|
+
},
|
382
|
+
:meta => {
|
383
|
+
:console => console,
|
384
|
+
:version => meta_version,
|
385
|
+
:debug => debug_mode,
|
386
|
+
:created => created
|
387
|
+
},
|
388
|
+
:resources => {
|
389
|
+
:memory => memory,
|
390
|
+
:disk => disk,
|
391
|
+
:fds => fds
|
392
|
+
},
|
393
|
+
:debug => debug_mode
|
394
|
+
}
|
395
|
+
end
|
396
|
+
|
397
|
+
def read_manifest
|
398
|
+
{ :name => @name,
|
399
|
+
:instances => manifest[:instances],
|
400
|
+
:running_instances => manifest[:runningInstances],
|
401
|
+
:state => manifest[:state],
|
402
|
+
:env => manifest[:env],
|
403
|
+
:uris => manifest[:uris],
|
404
|
+
:version => manifest[:version],
|
405
|
+
:services => manifest[:services],
|
406
|
+
:framework => manifest[:staging][:model],
|
407
|
+
:runtime => manifest[:staging][:stack],
|
408
|
+
:console => manifest[:meta][:console],
|
409
|
+
:meta_version => manifest[:meta][:version],
|
410
|
+
:debug => manifest[:meta][:debug],
|
411
|
+
:created => manifest[:meta][:created],
|
412
|
+
:memory => manifest[:resources][:memory],
|
413
|
+
:disk => manifest[:resources][:disk],
|
414
|
+
:fds => manifest[:resources][:fds]
|
415
|
+
}
|
416
|
+
end
|
417
|
+
|
418
418
|
def prepare_package(path, to)
|
419
419
|
if path =~ /\.(jar|war|zip)$/
|
420
420
|
CFoundry::Zip.unpack(path, to)
|
data/lib/cfoundry/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfoundry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 13
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 15
|
10
|
+
version: 0.3.15
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Alex Suraci
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-07-
|
18
|
+
date: 2012-07-29 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: rest-client
|