vmc 0.4.0.beta.91 → 0.4.0.beta.92

Sign up to get free protection for your applications and to get access to all the features.
@@ -117,7 +117,7 @@ module VMC
117
117
  err e.message
118
118
  rescue SystemExit
119
119
  raise
120
- rescue CFoundry::Forbidden, CFoundry::InvalidAuthToken
120
+ rescue CFoundry::Forbidden, CFoundry::InvalidAuthToken => e
121
121
  if !$vmc_asked_auth
122
122
  $vmc_asked_auth = true
123
123
 
@@ -27,7 +27,7 @@ module VMC
27
27
  else
28
28
  apps =
29
29
  with_progress("Getting applications") do
30
- client.apps(2)
30
+ client.apps(:depth => 2)
31
31
  end
32
32
  end
33
33
 
@@ -575,8 +575,15 @@ module VMC
575
575
  app = input[:app]
576
576
 
577
577
  stats =
578
- with_progress("Getting stats for #{c(app.name, :name)}") do
579
- app.stats
578
+ with_progress("Getting stats for #{c(app.name, :name)}") do |s|
579
+ begin
580
+ app.stats
581
+ rescue CFoundry::StatsError
582
+ s.fail do
583
+ err "Application #{b(app.name)} is not running."
584
+ return
585
+ end
586
+ end
580
587
  end
581
588
 
582
589
  line unless quiet?
@@ -622,11 +629,11 @@ module VMC
622
629
  host, domain_name = simple.split(".", 2)
623
630
 
624
631
  domain =
625
- client.current_space.domains(0, :name => domain_name).first
632
+ client.current_space.domain_by_name(domain_name, :depth => 0)
626
633
 
627
634
  fail "Invalid domain '#{domain_name}'" unless domain
628
635
 
629
- route = client.routes(0, :host => host).find do |r|
636
+ route = client.routes_by_host(host, :depth => 0).find do |r|
630
637
  r.domain == domain
631
638
  end
632
639
 
@@ -671,11 +678,11 @@ module VMC
671
678
  host, domain_name = simple.split(".", 2)
672
679
 
673
680
  domain =
674
- client.current_space.domains(0, :name => domain_name).first
681
+ client.current_space.domain_by_name(domain_name, :depth => 0)
675
682
 
676
683
  fail "Invalid domain '#{domain_name}'" unless domain
677
684
 
678
- route = app.routes(0, :host => host).find do |r|
685
+ route = app.routes_by_host(host, :depth => 0).find do |r|
679
686
  r.domain == domain
680
687
  end
681
688
 
@@ -46,7 +46,7 @@ module VMC
46
46
  if input[:full]
47
47
  line "spaces:"
48
48
 
49
- spaced(org.spaces(2)) do |s|
49
+ spaced(org.spaces(:depth => 2)) do |s|
50
50
  indented do
51
51
  invoke :space, :space => s
52
52
  end
@@ -67,7 +67,7 @@ module VMC
67
67
  def orgs
68
68
  orgs =
69
69
  with_progress("Getting organizations") do
70
- client.organizations(1)
70
+ client.organizations
71
71
  end
72
72
 
73
73
  line unless quiet?
@@ -27,7 +27,7 @@ module VMC
27
27
 
28
28
  instances =
29
29
  with_progress(msg) do
30
- client.service_instances(2)
30
+ client.service_instances(:depth => 2)
31
31
  end
32
32
 
33
33
  line unless quiet?
@@ -129,6 +129,8 @@ module VMC
129
129
 
130
130
  if input[:version]
131
131
  services.reject! { |s| s.version != input[:version] }
132
+ elsif !v2?
133
+ services.reject!(&:deprecated?)
132
134
  end
133
135
 
134
136
  if v2? && plan = input.given(:plan)
@@ -193,7 +195,7 @@ module VMC
193
195
  input(:app, :argument => true,
194
196
  :from_given => by_name("app"),
195
197
  :desc => "Application to bind to") {
196
- ask "Which application?", :choices => client.apps(2),
198
+ ask "Which application?", :choices => client.apps(:depth => 2),
197
199
  :display => proc(&:name)
198
200
  }
199
201
  def bind_service
@@ -217,19 +219,19 @@ module VMC
217
219
  group :services, :manage
218
220
  input(:instance, :argument => true,
219
221
  :from_given => find_by_name("service instance"),
220
- :desc => "Service to bind") { |app|
221
- ask "Which service instance?", :choices => app.services,
222
+ :desc => "Service to bind") { |services|
223
+ ask "Which service instance?", :choices => services,
222
224
  :display => proc(&:name)
223
225
  }
224
226
  input(:app, :argument => true,
225
- :from_given => find_by_name("app"),
227
+ :from_given => by_name("app"),
226
228
  :desc => "Application to bind to") {
227
- ask "Which application?", :choices => client.apps(2),
229
+ ask "Which application?", :choices => client.apps(:depth => 2),
228
230
  :display => proc(&:name)
229
231
  }
230
232
  def unbind_service
231
233
  app = input[:app]
232
- instance = input[:instance, app]
234
+ instance = input[:instance, app.services]
233
235
 
234
236
  with_progress(
235
237
  "Unbinding #{c(instance.name, :name)} from #{c(app.name, :name)}") do
@@ -253,6 +255,12 @@ module VMC
253
255
  :default => proc { force? || interact }) { |name, color|
254
256
  ask("Really delete #{c(name, color)}?", :default => false)
255
257
  }
258
+ input(:unbind, :type => :boolean, :forget => true,
259
+ :default => proc { force? || interact }) { |apps|
260
+ names = human_list(apps.collect { |a| c(a.name, :name) })
261
+
262
+ ask("Unbind from #{names} before deleting?", :default => true)
263
+ }
256
264
  input :all, :type => :boolean, :default => false,
257
265
  :desc => "Delete all services"
258
266
  def delete_service
@@ -270,9 +278,21 @@ module VMC
270
278
 
271
279
  return unless input[:really, instance.name, :name]
272
280
 
273
- with_progress("Deleting #{c(instance.name, :name)}") do |s|
274
- bindings = v2? ? instance.service_bindings : []
281
+ bindings = []
282
+
283
+ if v2?
284
+ bindings = instance.service_bindings
285
+
286
+ unless bindings.empty? || !input[:unbind, bindings.collect(&:app)]
287
+ bindings.each do |b|
288
+ invoke :unbind_service, :instance => instance, :app => b.app
289
+ end
275
290
 
291
+ bindings = []
292
+ end
293
+ end
294
+
295
+ with_progress("Deleting #{c(instance.name, :name)}") do |s|
276
296
  if bindings.empty?
277
297
  instance.delete!
278
298
  else
@@ -18,7 +18,7 @@ module VMC
18
18
 
19
19
  def self.space_by_name
20
20
  proc { |name, org, *_|
21
- org.spaces(1, :name => name).first ||
21
+ org.space_by_name(name) ||
22
22
  fail("Unknown space '#{name}'")
23
23
  }
24
24
  end
@@ -58,7 +58,7 @@ module VMC
58
58
  line
59
59
  line "apps:"
60
60
 
61
- spaced(space.apps(2)) do |a|
61
+ spaced(space.apps(:depth => 2)) do |a|
62
62
  indented do
63
63
  invoke :app, :app => a
64
64
  end
@@ -70,7 +70,7 @@ module VMC
70
70
  if input[:full]
71
71
  line
72
72
  line "services:"
73
- spaced(space.service_instances(2)) do |i|
73
+ spaced(space.service_instances(:depth => 2)) do |i|
74
74
  indented do
75
75
  invoke :service, :instance => i
76
76
  end
@@ -99,7 +99,7 @@ module VMC
99
99
  org = input[:organization]
100
100
  spaces =
101
101
  with_progress("Getting spaces in #{c(org.name, :name)}") do
102
- org.spaces(1)
102
+ org.spaces
103
103
  end
104
104
 
105
105
  line unless quiet?
@@ -83,25 +83,14 @@ module VMC
83
83
  if runtimes.empty? && !quiet?
84
84
  line "#{d("none")}"
85
85
  elsif input[:quiet]
86
- sorted_runtimes(runtimes).each do |r|
86
+ runtimes.each do |r|
87
87
  line r.name
88
88
  end
89
89
  else
90
- status_colors = {
91
- "current" => :good,
92
- "next" => :name,
93
- "deprecated" => :bad
94
- }
95
-
96
90
  table(
97
- %w{runtime version info},
98
- sorted_runtimes(runtimes).collect { |r|
99
- if r.status
100
- info = r.deprecated? ? "End of Life: #{r.status[:eol_date]}" : nil
101
- [c(r.name, status_colors[r.status[:name]]), r.version, info]
102
- else
103
- [c(r.name, :name), r.version, nil]
104
- end
91
+ %w{runtime description},
92
+ runtimes.sort_by(&:name).collect { |r|
93
+ [c(r.name, :name), r.description]
105
94
  })
106
95
  end
107
96
  end
@@ -137,6 +126,8 @@ module VMC
137
126
  table(
138
127
  ["service", "version", "provider", v2? && "plans", "description"],
139
128
  services.sort_by(&:label).collect { |s|
129
+ next if !v2? && s.deprecated?
130
+
140
131
  [ c(s.label, :name),
141
132
  s.version,
142
133
  s.provider,
@@ -437,39 +428,5 @@ module VMC
437
428
  end
438
429
  end
439
430
  end
440
-
441
- def sorted_runtimes(runtimes)
442
- return runtimes if runtimes.empty?
443
-
444
- # Sort by name if V2 or other server that doesn't yet have category, status, series
445
- if v2? || !(runtimes[0].category && runtimes[0].status &&
446
- runtimes[0].series)
447
- return runtimes.sort_by(&:name)
448
- end
449
-
450
- # Sort by category (i.e java, ruby, node, etc)
451
- by_category = runtimes.group_by(&:category)
452
-
453
- # Sort by status (current, next, deprecated)
454
- sorted = []
455
- by_category.sort.each do |category, runtimes|
456
- by_status = {}
457
- runtimes.each do |runtime|
458
- by_status[runtime.status[:name]] ||= []
459
- by_status[runtime.status[:name]] << runtime
460
- end
461
-
462
- %w(current next deprecated).each do |status|
463
- next unless by_status[status]
464
-
465
- # Sort by series descending (ruby19, ruby18, etc)
466
- by_status[status].sort_by(&:series).reverse_each do |r|
467
- sorted << r
468
- end
469
- end
470
- end
471
-
472
- sorted
473
- end
474
431
  end
475
432
  end
@@ -7,7 +7,7 @@ module VMC
7
7
  def users
8
8
  users =
9
9
  with_progress("Getting users") do
10
- client.users(0)
10
+ client.users(:depth => 0)
11
11
  end
12
12
 
13
13
  spaced(users) do |u|
@@ -38,12 +38,12 @@ module VMCHelpers
38
38
 
39
39
  # cache frameworks for app generation
40
40
  def frameworks
41
- @@frameworks ||= client.frameworks(0)
41
+ @@frameworks ||= client.frameworks(:depth => 0)
42
42
  end
43
43
 
44
44
  # cache runtimes for app generation
45
45
  def runtimes
46
- @@runtimes ||= client.runtimes(0)
46
+ @@runtimes ||= client.runtimes(:depth => 0)
47
47
  end
48
48
 
49
49
  def with_random_app(space = client.current_space)
@@ -1,3 +1,3 @@
1
1
  module VMC
2
- VERSION = "0.4.0.beta.91"
2
+ VERSION = "0.4.0.beta.92"
3
3
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vmc
3
3
  version: !ruby/object:Gem::Version
4
- hash: 4072072421
4
+ hash: 1993979039
5
5
  prerelease: 6
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
9
  - 0
10
10
  - beta
11
- - 91
12
- version: 0.4.0.beta.91
11
+ - 92
12
+ version: 0.4.0.beta.92
13
13
  platform: ruby
14
14
  authors:
15
15
  - VMware
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-11-15 00:00:00 -08:00
20
+ date: 2012-11-19 00:00:00 -08:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -266,12 +266,12 @@ dependencies:
266
266
  requirements:
267
267
  - - ~>
268
268
  - !ruby/object:Gem::Version
269
- hash: 105
269
+ hash: 15
270
270
  segments:
271
271
  - 0
272
- - 3
273
- - 61
274
- version: 0.3.61
272
+ - 4
273
+ - 0
274
+ version: 0.4.0
275
275
  type: :runtime
276
276
  version_requirements: *id015
277
277
  - !ruby/object:Gem::Dependency
@@ -298,12 +298,12 @@ dependencies:
298
298
  requirements:
299
299
  - - ~>
300
300
  - !ruby/object:Gem::Version
301
- hash: 31
301
+ hash: 29
302
302
  segments:
303
303
  - 0
304
304
  - 2
305
- - 4
306
- version: 0.2.4
305
+ - 5
306
+ version: 0.2.5
307
307
  type: :runtime
308
308
  version_requirements: *id017
309
309
  - !ruby/object:Gem::Dependency
@@ -478,7 +478,6 @@ files:
478
478
  - vmc-ng/lib/vmc/cli/domain.rb
479
479
  - vmc-ng/lib/vmc.rb
480
480
  - vmc-ng/spec/helpers.rb
481
- - vmc-ng/spec/start/info_spec.rb
482
481
  - vmc-ng/spec/start/target_spec.rb
483
482
  - vmc-ng/spec/app/push_spec.rb
484
483
  - vmc-ng/spec/app/app_spec.rb
@@ -1,23 +0,0 @@
1
- require File.expand_path("../../helpers", __FILE__)
2
-
3
- describe "Start#info" do
4
- it "orders runtimes by category, status, and series" do
5
- running(:info, :runtimes => true) do
6
- does("Getting runtimes")
7
- known_runtimes = %w(java7 java node08 node06 node ruby19 ruby18)
8
-
9
- expected_order = known_runtimes.dup
10
-
11
- client.runtimes.size.times do
12
- with_output do |str|
13
- if known_runtimes.include? str
14
- expected_order.first.should == str
15
- expected_order.shift
16
- end
17
- end
18
- end
19
-
20
- expected_order.size.should == 0
21
- end
22
- end
23
- end