cfoundry 0.3.15 → 0.3.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -86,7 +86,7 @@ module CFoundry::V1
86
86
  #
87
87
  # Call this after setting the various attributes.
88
88
  def create!
89
- @client.base.create_app(write_manifest)
89
+ @client.base.create_app(create_manifest)
90
90
  @diff = {}
91
91
  end
92
92
 
@@ -116,7 +116,7 @@ module CFoundry::V1
116
116
  send(:"#{k}=", v)
117
117
  end
118
118
 
119
- @client.base.update_app(@name, write_manifest)
119
+ @client.base.update_app(@name, update_manifest)
120
120
 
121
121
  @manifest = nil
122
122
  @diff = {}
@@ -284,14 +284,14 @@ module CFoundry::V1
284
284
 
285
285
  # Bind services to application.
286
286
  def bind(*instances)
287
- update!(:services => services + instances.collect(&:name))
287
+ update!(:services => services + instances)
288
288
  end
289
289
 
290
290
  # Unbind services from application.
291
291
  def unbind(*instances)
292
292
  update!(:services =>
293
293
  services.reject { |s|
294
- instances.any? { |i| i.name == s }
294
+ instances.any? { |i| i.name == s.name }
295
295
  })
296
296
  end
297
297
 
@@ -362,36 +362,60 @@ module CFoundry::V1
362
362
 
363
363
  private
364
364
 
365
+ ATTR_MAP = {
366
+ :instances => :instances,
367
+ :state => :state,
368
+ :env => :env,
369
+ :uris => :uris,
370
+ :services => :services,
371
+ :debug => :debug,
372
+
373
+ :framework => [:staging, :model],
374
+ :runtime => [:staging, :stack],
375
+ :command => [:staging, :command],
376
+
377
+ :console => [:meta, :console],
378
+ :meta_version => [:meta, :version],
379
+ :created => [:meta, :created],
380
+
381
+ :memory => [:resources, :memory],
382
+ :disk => [:resources, :disk],
383
+ :fds => [:resources, :fds]
384
+ }
385
+
365
386
  def manifest
366
387
  @manifest ||= @client.base.app(@name)
367
388
  end
368
389
 
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
- }
390
+ def write_manifest(body = read_manifest, onto = {})
391
+ onto[:name] = @name
392
+
393
+ ATTR_MAP.each do |what, where|
394
+ if body.key?(what)
395
+ put(body[what], onto, Array(where))
396
+ end
397
+ end
398
+
399
+ onto
400
+ end
401
+
402
+ def put(what, where, path)
403
+ if path.size == 1
404
+ where[path.last] = what
405
+ elsif name = path.shift
406
+ where[name] ||= {}
407
+ put(what, where[name], path)
408
+ end
409
+
410
+ nil
411
+ end
412
+
413
+ def update_manifest
414
+ write_manifest(@diff, write_manifest)
415
+ end
416
+
417
+ def create_manifest
418
+ write_manifest(@diff)
395
419
  end
396
420
 
397
421
  def read_manifest
@@ -38,7 +38,7 @@ module CFoundry::V1
38
38
 
39
39
  # Show string representing the service.
40
40
  def inspect
41
- "#<Service '#@name'>"
41
+ "#<ServiceInstance '#@name'>"
42
42
  end
43
43
 
44
44
  # Delete the service from the target.
@@ -71,6 +71,10 @@ module CFoundry::V1
71
71
  Time.at(meta[:updated])
72
72
  end
73
73
 
74
+ def invalidate!
75
+ @manifest = nil
76
+ end
77
+
74
78
  { :type => :type,
75
79
  :vendor => :vendor,
76
80
  :version => :version,
@@ -1,4 +1,4 @@
1
1
  module CFoundry # :nodoc:
2
2
  # CFoundry library version number.
3
- VERSION = "0.3.15"
3
+ VERSION = "0.3.16"
4
4
  end
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: 13
4
+ hash: 51
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 15
10
- version: 0.3.15
9
+ - 16
10
+ version: 0.3.16
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-29 00:00:00 Z
18
+ date: 2012-07-30 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rest-client