vmc 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -3
- data/lib/vmc.rb +15 -13
- metadata +6 -8
- data/bin/vmc.bat +0 -1
data/Rakefile
CHANGED
@@ -6,15 +6,15 @@ require 'spec/rake/spectask'
|
|
6
6
|
|
7
7
|
spec = Gem::Specification.new do |s|
|
8
8
|
s.name = "vmc"
|
9
|
-
s.version = "0.0.
|
9
|
+
s.version = "0.0.8"
|
10
10
|
s.author = "Ezra Zygmuntowicz"
|
11
11
|
s.email = "ez@vmware.com"
|
12
12
|
s.homepage = "http://vmware.com"
|
13
|
-
s.description = s.summary = "A gem that provides command line access to the
|
13
|
+
s.description = s.summary = "A gem that provides command line access to the VMware Cloud Application Platform"
|
14
14
|
s.platform = Gem::Platform::RUBY
|
15
15
|
s.has_rdoc = true
|
16
16
|
s.extra_rdoc_files = ["README", "LICENSE"]
|
17
|
-
s.executables = %w(vmc
|
17
|
+
s.executables = %w(vmc)
|
18
18
|
# Uncomment this to add a dependency
|
19
19
|
s.add_dependency "main", "~> 4.3.0"
|
20
20
|
s.add_dependency "arrayfields", "~> 4.7.4"
|
data/lib/vmc.rb
CHANGED
@@ -67,7 +67,7 @@ module VMC
|
|
67
67
|
response = HTTPClient.get try_host
|
68
68
|
if response.status != 200
|
69
69
|
display "New Target host is not valid: '#{target_host_display}'"
|
70
|
-
show_response = ask "Would you like
|
70
|
+
show_response = ask "Would you like see the response [yN]? "
|
71
71
|
display response.content if show_response.upcase == 'Y'
|
72
72
|
exit(1)
|
73
73
|
end
|
@@ -637,7 +637,7 @@ module VMC
|
|
637
637
|
if !service_names.empty? && !service_name
|
638
638
|
list_services(get_user_service_names, "The following services have been provisioned for you:")
|
639
639
|
display ''
|
640
|
-
use_existing = ask "Would you like to use one of these
|
640
|
+
use_existing = ask "Would you like to use one of these [yN]? "
|
641
641
|
if use_existing.upcase == 'Y'
|
642
642
|
begin
|
643
643
|
service_name = ask "Which service (name)? "
|
@@ -1019,10 +1019,10 @@ module VMC
|
|
1019
1019
|
failed = false
|
1020
1020
|
display "Trying to start Application: '#{appname}'."
|
1021
1021
|
loop do
|
1022
|
-
display ".", false unless count >
|
1023
|
-
sleep
|
1022
|
+
display ".", false unless count > 19
|
1023
|
+
sleep 0.5
|
1024
1024
|
begin
|
1025
|
-
if app_started_properly(appname)
|
1025
|
+
if app_started_properly(appname, count > 6)
|
1026
1026
|
display ''
|
1027
1027
|
break;
|
1028
1028
|
elsif !crashes(appname, false).empty?
|
@@ -1036,14 +1036,14 @@ module VMC
|
|
1036
1036
|
end
|
1037
1037
|
failed = true
|
1038
1038
|
break
|
1039
|
-
elsif count >
|
1039
|
+
elsif count > 19
|
1040
1040
|
log_lines_displayed = grab_startup_tail(appname, log_lines_displayed)
|
1041
1041
|
end
|
1042
1042
|
rescue => e
|
1043
1043
|
display e.message, false
|
1044
1044
|
end
|
1045
1045
|
count += 1
|
1046
|
-
if count >
|
1046
|
+
if count > 600 # 5 minutes
|
1047
1047
|
error "\n\nApplication is taking too long to start, check your logs"
|
1048
1048
|
break
|
1049
1049
|
end
|
@@ -1382,11 +1382,11 @@ module VMC
|
|
1382
1382
|
since + new_lines
|
1383
1383
|
end
|
1384
1384
|
|
1385
|
-
def app_started_properly(appname)
|
1385
|
+
def app_started_properly(appname, error_on_health)
|
1386
1386
|
check_for_token
|
1387
1387
|
response = get_app_internal @droplets_uri, appname, auth_hdr
|
1388
1388
|
if response.status != 200
|
1389
|
-
error "
|
1389
|
+
error "\nApplication '#{appname}'s state is undetermined, not enough information available at this time."
|
1390
1390
|
return
|
1391
1391
|
end
|
1392
1392
|
|
@@ -1395,7 +1395,8 @@ module VMC
|
|
1395
1395
|
case health(droplet)
|
1396
1396
|
when 'N/A'
|
1397
1397
|
# Health manager not running.
|
1398
|
-
error "
|
1398
|
+
error "\nApplication '#{appname}'s state is undetermined, not enough information available at this time." if error_on_health
|
1399
|
+
return false
|
1399
1400
|
when 'RUNNING'
|
1400
1401
|
return true
|
1401
1402
|
else
|
@@ -1528,7 +1529,7 @@ module VMC
|
|
1528
1529
|
info_json = JSON.parse(@check.content)
|
1529
1530
|
usage = info_json['usage']
|
1530
1531
|
limits = info_json['limits']
|
1531
|
-
return unless limits['apps']
|
1532
|
+
return unless usage and limits and limits['apps']
|
1532
1533
|
if limits['apps'] == usage['apps']
|
1533
1534
|
display "Not enough capacity for operation."
|
1534
1535
|
tapps = limits['apps'] || 0
|
@@ -1541,6 +1542,7 @@ module VMC
|
|
1541
1542
|
info_json = JSON.parse(@check.content)
|
1542
1543
|
usage = info_json['usage']
|
1543
1544
|
limits = info_json['limits']
|
1545
|
+
return unless usage and limits
|
1544
1546
|
available_for_use = limits['memory'].to_i - usage['memory'].to_i
|
1545
1547
|
if mem_wanted > available_for_use
|
1546
1548
|
info_json = JSON.parse(@check.content)
|
@@ -1556,8 +1558,8 @@ module VMC
|
|
1556
1558
|
default = ['64M', '128M', '256M', '512M', '1G', '2G']
|
1557
1559
|
info_json = JSON.parse(@check.content)
|
1558
1560
|
|
1559
|
-
default unless info_json
|
1560
|
-
default unless (usage = info_json['usage'] and limits = info_json['limits'])
|
1561
|
+
return default unless info_json
|
1562
|
+
return default unless (usage = info_json['usage'] and limits = info_json['limits'])
|
1561
1563
|
|
1562
1564
|
available_for_use = limits['memory'].to_i - usage['memory'].to_i
|
1563
1565
|
check_has_capacity_for(64) if available_for_use < 64
|
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: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 8
|
10
|
+
version: 0.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ezra Zygmuntowicz
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-15 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -129,11 +129,10 @@ dependencies:
|
|
129
129
|
version: 1.6.1
|
130
130
|
type: :runtime
|
131
131
|
version_requirements: *id007
|
132
|
-
description: A gem that provides command line access to the
|
132
|
+
description: A gem that provides command line access to the VMware Cloud Application Platform
|
133
133
|
email: ez@vmware.com
|
134
134
|
executables:
|
135
135
|
- vmc
|
136
|
-
- vmc.bat
|
137
136
|
extensions: []
|
138
137
|
|
139
138
|
extra_rdoc_files:
|
@@ -163,7 +162,6 @@ files:
|
|
163
162
|
- vendor/gems/httpclient/lib/tags
|
164
163
|
- vendor/gems/httpclient/VERSION
|
165
164
|
- bin/vmc
|
166
|
-
- bin/vmc.bat
|
167
165
|
has_rdoc: true
|
168
166
|
homepage: http://vmware.com
|
169
167
|
licenses: []
|
@@ -197,6 +195,6 @@ rubyforge_project:
|
|
197
195
|
rubygems_version: 1.3.7
|
198
196
|
signing_key:
|
199
197
|
specification_version: 3
|
200
|
-
summary: A gem that provides command line access to the
|
198
|
+
summary: A gem that provides command line access to the VMware Cloud Application Platform
|
201
199
|
test_files: []
|
202
200
|
|
data/bin/vmc.bat
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
@ ruby "%~dp0vmc" %1 %2 %3 %4 %5 %6
|