vmc 0.3.7 → 0.3.8
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/cli/commands/apps.rb +39 -16
- data/lib/cli/frameworks.rb +0 -8
- data/lib/cli/runner.rb +2 -2
- data/lib/cli/version.rb +1 -1
- data/lib/vmc/client.rb +12 -2
- data/lib/vmc/const.rb +1 -1
- metadata +29 -29
data/lib/cli/commands/apps.rb
CHANGED
@@ -27,31 +27,48 @@ module VMC::Cli::Command
|
|
27
27
|
|
28
28
|
alias :apps :list
|
29
29
|
|
30
|
-
SLEEP_TIME =
|
30
|
+
SLEEP_TIME = 1
|
31
31
|
LINE_LENGTH = 80
|
32
32
|
|
33
33
|
# Numerators are in secs
|
34
|
-
TICKER_TICKS =
|
34
|
+
TICKER_TICKS = 25/SLEEP_TIME
|
35
35
|
HEALTH_TICKS = 5/SLEEP_TIME
|
36
|
-
TAIL_TICKS =
|
36
|
+
TAIL_TICKS = 45/SLEEP_TIME
|
37
37
|
GIVEUP_TICKS = 120/SLEEP_TIME
|
38
38
|
YES_SET = Set.new(["y", "Y", "yes", "YES"])
|
39
39
|
|
40
|
-
|
41
40
|
def start(appname, push = false)
|
42
41
|
app = client.app_info(appname)
|
42
|
+
|
43
43
|
return display "Application '#{appname}' could not be found".red if app.nil?
|
44
44
|
return display "Application '#{appname}' already started".yellow if app[:state] == 'STARTED'
|
45
|
+
|
46
|
+
banner = 'Staging Application: '
|
47
|
+
display banner, false
|
48
|
+
|
49
|
+
t = Thread.new do
|
50
|
+
count = 0
|
51
|
+
while count < TAIL_TICKS do
|
52
|
+
display '.', false
|
53
|
+
sleep SLEEP_TIME
|
54
|
+
count += 1
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
45
58
|
app[:state] = 'STARTED'
|
46
59
|
client.update_app(appname, app)
|
47
60
|
|
48
|
-
|
49
|
-
|
50
|
-
|
61
|
+
Thread.kill(t)
|
62
|
+
clear(LINE_LENGTH)
|
63
|
+
display "#{banner}#{'OK'.green}"
|
51
64
|
|
52
65
|
banner = 'Starting Application: '
|
53
66
|
display banner, false
|
54
67
|
|
68
|
+
count = log_lines_displayed = 0
|
69
|
+
failed = false
|
70
|
+
start_time = Time.now.to_i
|
71
|
+
|
55
72
|
loop do
|
56
73
|
display '.', false unless count > TICKER_TICKS
|
57
74
|
sleep SLEEP_TIME
|
@@ -187,9 +204,9 @@ module VMC::Cli::Command
|
|
187
204
|
app_services.each { |service|
|
188
205
|
del_service = force && no_prompt ? 'Y' : 'N'
|
189
206
|
unless no_prompt || force
|
190
|
-
del_service = ask("Provisioned service [#{service}] detected, would you like to delete it? [
|
207
|
+
del_service = ask("Provisioned service [#{service}] detected, would you like to delete it? [yN]: ")
|
191
208
|
end
|
192
|
-
services_to_delete << service
|
209
|
+
services_to_delete << service if del_service.upcase == 'Y'
|
193
210
|
}
|
194
211
|
display "Deleting application [#{appname}]: ", false
|
195
212
|
client.delete_app(appname)
|
@@ -386,6 +403,7 @@ module VMC::Cli::Command
|
|
386
403
|
framework_correct ||= 'y'
|
387
404
|
if prompt_ok && (framework.nil? || framework_correct.upcase == 'N')
|
388
405
|
display "#{"[WARNING]".yellow} Can't determine the Application Type." unless framework
|
406
|
+
framework = nil if framework_correct.upcase == 'N'
|
389
407
|
choose do |menu|
|
390
408
|
menu.layout = :one_line
|
391
409
|
menu.prompt = "Select Application Type: "
|
@@ -642,15 +660,20 @@ module VMC::Cli::Command
|
|
642
660
|
menu.header = "The following system services are available:"
|
643
661
|
menu.prompt = 'Please select one you wish to provision: '
|
644
662
|
menu.select_by = :index_or_name
|
663
|
+
service_choices = []
|
645
664
|
services.each do |service_type, value|
|
646
665
|
value.each do |vendor, version|
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
666
|
+
service_choices << vendor
|
667
|
+
end
|
668
|
+
end
|
669
|
+
service_choices.sort!
|
670
|
+
service_choices.each do |vendor|
|
671
|
+
menu.choice(vendor) do
|
672
|
+
default_name = random_service_name(vendor)
|
673
|
+
service_name = ask("Specify the name of the service [#{default_name}]: ")
|
674
|
+
service_name = default_name if service_name.empty?
|
675
|
+
create_service_banner(vendor, service_name)
|
676
|
+
bind_service_banner(service_name, appname)
|
654
677
|
end
|
655
678
|
end
|
656
679
|
end
|
data/lib/cli/frameworks.rb
CHANGED
@@ -6,14 +6,6 @@ module VMC::Cli
|
|
6
6
|
DEFAULT_MEM = '256M'
|
7
7
|
|
8
8
|
FRAMEWORKS = {
|
9
|
-
# 'Rails' => ['rails/1.0', { :mem => '256M', :description => 'Rails Application'}],
|
10
|
-
# 'Spring' => ['spring_web/1.0', { :mem => '512M', :description => 'Java SpringSource Spring Application'}],
|
11
|
-
# 'Grails' => ['grails/1.0', { :mem => '512M', :description => 'Java SpringSource Grails Application'}],
|
12
|
-
# 'Roo' => ['spring_web/1.0', { :mem => '512M', :description => 'Java SpringSource Roo Application'}],
|
13
|
-
# 'JavaWeb' => ['spring_web/1.0', { :mem => '512M', :description => 'Java Web Application'}],
|
14
|
-
# 'Sinatra' => [DEFAULT_FRAMEWORK, { :mem => '128M', :description => 'Sinatra Application'}],
|
15
|
-
# 'Node' => ['nodejs/1.0', { :mem => '64M', :description => 'Node.js Application'}],
|
16
|
-
|
17
9
|
'Rails' => ['rails3', { :mem => '256M', :description => 'Rails Application'}],
|
18
10
|
'Spring' => ['spring', { :mem => '512M', :description => 'Java SpringSource Spring Application'}],
|
19
11
|
'Grails' => ['grails', { :mem => '512M', :description => 'Java SpringSource Grails Application'}],
|
data/lib/cli/runner.rb
CHANGED
@@ -407,8 +407,8 @@ class VMC::Cli::Runner
|
|
407
407
|
|
408
408
|
def run
|
409
409
|
|
410
|
-
trap('TERM') { print "\
|
411
|
-
trap('INT') { print "\
|
410
|
+
trap('TERM') { print "\nInterrupted\n"; exit(false)}
|
411
|
+
trap('INT') { print "\nInterrupted\n"; exit(false)}
|
412
412
|
|
413
413
|
parse_options!
|
414
414
|
|
data/lib/cli/version.rb
CHANGED
data/lib/vmc/client.rb
CHANGED
@@ -111,6 +111,11 @@ class VMC::Client
|
|
111
111
|
json_get("#{VMC::APPS_PATH}/#{name}")
|
112
112
|
end
|
113
113
|
|
114
|
+
def app_update_info(name)
|
115
|
+
check_login_status
|
116
|
+
json_get("#{VMC::APPS_PATH}/#{name}/update")
|
117
|
+
end
|
118
|
+
|
114
119
|
def app_stats(name)
|
115
120
|
check_login_status
|
116
121
|
stats_raw = json_get("#{VMC::APPS_PATH}/#{name}/stats")
|
@@ -345,7 +350,11 @@ class VMC::Client
|
|
345
350
|
headers = headers.dup
|
346
351
|
headers['AUTHORIZATION'] = @auth_token if @auth_token
|
347
352
|
headers['PROXY-USER'] = @proxy if @proxy
|
348
|
-
|
353
|
+
|
354
|
+
if content_type
|
355
|
+
headers['Content-Type'] = content_type
|
356
|
+
headers['Accept'] = content_type
|
357
|
+
end
|
349
358
|
|
350
359
|
req = {
|
351
360
|
:method => method, :url => "#{@target}#{path}",
|
@@ -414,7 +423,8 @@ class VMC::Client
|
|
414
423
|
if body.nil? || body.empty?
|
415
424
|
"Error (#{status}): No Response Received"
|
416
425
|
else
|
417
|
-
|
426
|
+
body_out = trace ? body : truncate(body)
|
427
|
+
"Error (JSON #{status}): #{body_out}"
|
418
428
|
end
|
419
429
|
end
|
420
430
|
|
data/lib/vmc/const.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vmc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 3
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 8
|
10
|
+
version: 0.3.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- VMware
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
18
|
+
date: 2011-04-11 00:00:00 -07:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -165,45 +165,45 @@ files:
|
|
165
165
|
- LICENSE
|
166
166
|
- README.md
|
167
167
|
- Rakefile
|
168
|
-
- lib/cli/config.rb
|
169
|
-
- lib/cli/services_helper.rb
|
170
168
|
- lib/cli/commands/admin.rb
|
171
|
-
- lib/cli/commands/services.rb
|
172
|
-
- lib/cli/commands/misc.rb
|
173
169
|
- lib/cli/commands/apps.rb
|
174
|
-
- lib/cli/commands/user.rb
|
175
170
|
- lib/cli/commands/base.rb
|
176
|
-
- lib/cli/
|
177
|
-
- lib/cli/
|
171
|
+
- lib/cli/commands/misc.rb
|
172
|
+
- lib/cli/commands/services.rb
|
173
|
+
- lib/cli/commands/user.rb
|
174
|
+
- lib/cli/config.rb
|
175
|
+
- lib/cli/core_ext.rb
|
178
176
|
- lib/cli/errors.rb
|
177
|
+
- lib/cli/frameworks.rb
|
178
|
+
- lib/cli/runner.rb
|
179
|
+
- lib/cli/services_helper.rb
|
180
|
+
- lib/cli/usage.rb
|
179
181
|
- lib/cli/version.rb
|
180
182
|
- lib/cli/zip_util.rb
|
181
|
-
- lib/cli
|
182
|
-
- lib/cli/runner.rb
|
183
|
+
- lib/cli.rb
|
183
184
|
- lib/vmc/client.rb
|
184
185
|
- lib/vmc/const.rb
|
185
|
-
- lib/cli.rb
|
186
186
|
- lib/vmc.rb
|
187
|
-
- spec/
|
188
|
-
- spec/
|
189
|
-
- spec/
|
190
|
-
- spec/assets/info_return_bad.txt
|
191
|
-
- spec/assets/info_return.txt
|
192
|
-
- spec/assets/service_listings.txt
|
187
|
+
- spec/assets/app_info.txt
|
188
|
+
- spec/assets/app_listings.txt
|
189
|
+
- spec/assets/bad_create_app.txt
|
193
190
|
- spec/assets/delete_app.txt
|
194
|
-
- spec/assets/
|
191
|
+
- spec/assets/global_service_listings.txt
|
195
192
|
- spec/assets/good_create_app.txt
|
196
|
-
- spec/assets/
|
193
|
+
- spec/assets/good_create_service.txt
|
194
|
+
- spec/assets/info_authenticated.txt
|
195
|
+
- spec/assets/info_return.txt
|
196
|
+
- spec/assets/info_return_bad.txt
|
197
197
|
- spec/assets/login_fail.txt
|
198
|
-
- spec/assets/app_info.txt
|
199
198
|
- spec/assets/login_success.txt
|
200
|
-
- spec/assets/app_listings.txt
|
201
|
-
- spec/assets/global_service_listings.txt
|
202
|
-
- spec/assets/bad_create_app.txt
|
203
199
|
- spec/assets/sample_token.txt
|
200
|
+
- spec/assets/service_already_exists.txt
|
201
|
+
- spec/assets/service_listings.txt
|
204
202
|
- spec/assets/service_not_found.txt
|
205
|
-
- spec/assets/
|
206
|
-
- spec/
|
203
|
+
- spec/assets/user_info.txt
|
204
|
+
- spec/spec_helper.rb
|
205
|
+
- spec/unit/cli_opts_spec.rb
|
206
|
+
- spec/unit/client_spec.rb
|
207
207
|
- bin/vmc
|
208
208
|
has_rdoc: true
|
209
209
|
homepage: http://vmware.com
|
@@ -235,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
235
235
|
requirements: []
|
236
236
|
|
237
237
|
rubyforge_project:
|
238
|
-
rubygems_version: 1.
|
238
|
+
rubygems_version: 1.5.0
|
239
239
|
signing_key:
|
240
240
|
specification_version: 3
|
241
241
|
summary: Client library and CLI that provides access to the VMware Cloud Application Platform.
|