vmc 0.4.0.beta.10 → 0.4.0.beta.11
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/vmc-ng/lib/vmc/cli/app.rb +35 -2
- data/vmc-ng/lib/vmc/cli/command.rb +27 -1
- data/vmc-ng/lib/vmc/version.rb +1 -1
- metadata +7 -7
data/vmc-ng/lib/vmc/cli/app.rb
CHANGED
@@ -74,7 +74,7 @@ module VMC
|
|
74
74
|
def push(name = nil)
|
75
75
|
path = File.expand_path(input(:path) || ".")
|
76
76
|
|
77
|
-
name
|
77
|
+
name = input(:name) if input(:name)
|
78
78
|
|
79
79
|
detector = Detector.new(client, path)
|
80
80
|
frameworks = detector.all_frameworks
|
@@ -175,6 +175,8 @@ module VMC
|
|
175
175
|
|
176
176
|
app.services = bindings
|
177
177
|
|
178
|
+
app = filter(:push_app, app)
|
179
|
+
|
178
180
|
with_progress("Creating #{c(name, :name)}") do
|
179
181
|
app.create!
|
180
182
|
end
|
@@ -205,6 +207,8 @@ module VMC
|
|
205
207
|
|
206
208
|
fail "Unknown application." unless app.exists?
|
207
209
|
|
210
|
+
app = filter(:start_app, app)
|
211
|
+
|
208
212
|
switch_mode(app, input(:debug_mode))
|
209
213
|
|
210
214
|
with_progress("Starting #{c(name, :name)}") do |s|
|
@@ -305,6 +309,7 @@ module VMC
|
|
305
309
|
names = [input(:name, apps.collect(&:name).sort)]
|
306
310
|
end
|
307
311
|
|
312
|
+
# TODO: handle invalid app name
|
308
313
|
to_delete = names.collect { |n| apps.find { |a| a.name == n } }
|
309
314
|
orphaned = find_orphaned_services(to_delete)
|
310
315
|
|
@@ -361,6 +366,7 @@ module VMC
|
|
361
366
|
:default => human_size(default * 1024 * 1024, 0),
|
362
367
|
:choices => MEM_CHOICES)
|
363
368
|
}
|
369
|
+
flag :restart, :default => true
|
364
370
|
def scale(name = nil)
|
365
371
|
name ||= input(:name)
|
366
372
|
|
@@ -374,11 +380,24 @@ module VMC
|
|
374
380
|
memory = input(:memory, app.memory)
|
375
381
|
end
|
376
382
|
|
383
|
+
megs = megabytes(memory)
|
384
|
+
|
385
|
+
memory_changed = megs != app.memory
|
386
|
+
instances_changed = instances != app.total_instances
|
387
|
+
|
388
|
+
return unless memory_changed || instances_changed
|
389
|
+
|
377
390
|
with_progress("Scaling #{c(name, :name)}") do
|
378
391
|
app.total_instances = instances.to_i if instances
|
379
|
-
app.memory =
|
392
|
+
app.memory = megs if memory
|
380
393
|
app.update!
|
381
394
|
end
|
395
|
+
|
396
|
+
if memory_changed && app.started? && input(:restart)
|
397
|
+
with_progress("Restarting #{c(name, :name)}") do
|
398
|
+
app.restart!
|
399
|
+
end
|
400
|
+
end
|
382
401
|
end
|
383
402
|
|
384
403
|
desc "logs APP", "Print out an app's logs"
|
@@ -564,6 +583,7 @@ module VMC
|
|
564
583
|
|
565
584
|
desc "set APP [NAME] [VALUE]", "Set an environment variable"
|
566
585
|
group :apps, :info, :hidden => true
|
586
|
+
flag :restart, :default => true
|
567
587
|
def set(appname, name, value)
|
568
588
|
unless name =~ VALID_NAME
|
569
589
|
fail "Invalid variable name; must match #{VALID_NAME.inspect}"
|
@@ -578,10 +598,17 @@ module VMC
|
|
578
598
|
v.start_with?("#{name}=")
|
579
599
|
}.push("#{name}=#{value}"))
|
580
600
|
end
|
601
|
+
|
602
|
+
if app.started? && input(:restart)
|
603
|
+
with_progress("Restarting #{c(app.name, :name)}") do
|
604
|
+
app.restart!
|
605
|
+
end
|
606
|
+
end
|
581
607
|
end
|
582
608
|
|
583
609
|
desc "unset APP [NAME]", "Remove an environment variable"
|
584
610
|
group :apps, :info, :hidden => true
|
611
|
+
flag :restart, :default => true
|
585
612
|
def unset(appname, name)
|
586
613
|
app = client.app(appname)
|
587
614
|
fail "Unknown application." unless app.exists?
|
@@ -592,6 +619,12 @@ module VMC
|
|
592
619
|
v.start_with?("#{name}=")
|
593
620
|
})
|
594
621
|
end
|
622
|
+
|
623
|
+
if app.started? && input(:restart)
|
624
|
+
with_progress("Restarting #{c(app.ame, :name)}") do
|
625
|
+
app.restart!
|
626
|
+
end
|
627
|
+
end
|
595
628
|
end
|
596
629
|
|
597
630
|
desc "list APP", "Show all environment variables set for an app"
|
@@ -215,6 +215,10 @@ module VMC
|
|
215
215
|
add_callback(:around, task, callback)
|
216
216
|
end
|
217
217
|
|
218
|
+
def self.filter(task, &callback)
|
219
|
+
add_callback(:filter, task, callback)
|
220
|
+
end
|
221
|
+
|
218
222
|
private
|
219
223
|
|
220
224
|
def callbacks_for(what)
|
@@ -296,6 +300,18 @@ module VMC
|
|
296
300
|
$exit_status = 1
|
297
301
|
end
|
298
302
|
|
303
|
+
def with_filters(new)
|
304
|
+
new.each do |task, callback|
|
305
|
+
self.class.callbacks[:filter][task] << callback
|
306
|
+
end
|
307
|
+
|
308
|
+
yield
|
309
|
+
ensure
|
310
|
+
new.each do |task, _|
|
311
|
+
self.class.callbacks[:filter][task].pop
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
299
315
|
def with_inputs(new)
|
300
316
|
return yield if !new || new.empty?
|
301
317
|
|
@@ -322,6 +338,14 @@ module VMC
|
|
322
338
|
raise UserError, msg
|
323
339
|
end
|
324
340
|
|
341
|
+
def filter(name, val)
|
342
|
+
callbacks_for(:filter)[name].each do |f|
|
343
|
+
val = f.call val
|
344
|
+
end
|
345
|
+
|
346
|
+
val
|
347
|
+
end
|
348
|
+
|
325
349
|
def invoke_task(task, args)
|
326
350
|
callbacks_for(:before)[task.name.to_sym].each do |c|
|
327
351
|
c.call
|
@@ -370,7 +394,7 @@ module VMC
|
|
370
394
|
puts ""
|
371
395
|
puts c("Not authenticated! Try logging in:", :warning)
|
372
396
|
|
373
|
-
|
397
|
+
invoke :login
|
374
398
|
@client = nil
|
375
399
|
|
376
400
|
retry
|
@@ -522,6 +546,8 @@ module VMC
|
|
522
546
|
str.to_i
|
523
547
|
elsif str =~ /K$/i
|
524
548
|
str.to_i / 1024
|
549
|
+
else # assume megabytes
|
550
|
+
str.to_i
|
525
551
|
end
|
526
552
|
end
|
527
553
|
|
data/vmc-ng/lib/vmc/version.rb
CHANGED
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:
|
4
|
+
hash: 62196469
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
9
|
- 0
|
10
10
|
- beta
|
11
|
-
-
|
12
|
-
version: 0.4.0.beta.
|
11
|
+
- 11
|
12
|
+
version: 0.4.0.beta.11
|
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-06-
|
20
|
+
date: 2012-06-21 00:00:00 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: json_pure
|
@@ -281,12 +281,12 @@ dependencies:
|
|
281
281
|
requirements:
|
282
282
|
- - ~>
|
283
283
|
- !ruby/object:Gem::Version
|
284
|
-
hash:
|
284
|
+
hash: 17
|
285
285
|
segments:
|
286
286
|
- 0
|
287
287
|
- 2
|
288
|
-
-
|
289
|
-
version: 0.2.
|
288
|
+
- 3
|
289
|
+
version: 0.2.3
|
290
290
|
type: :runtime
|
291
291
|
version_requirements: *id016
|
292
292
|
description:
|