vmcu 0.3.17.1 → 0.3.18.beta.1

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.
@@ -152,10 +152,10 @@ module VMC::Cli::Command
152
152
  require 'win32/registry'
153
153
  reg_targets = load_registry_targets
154
154
  rescue LoadError
155
- err "Unable not import data from Windows Registry"
155
+ err "Unable to import data from Windows Registry"
156
156
  exit 1
157
157
  rescue
158
- err "Unable not import data from Windows Registry"
158
+ err "Unable to import data from Windows Registry"
159
159
  exit 1
160
160
  end
161
161
 
@@ -50,13 +50,14 @@ module VMC::Cli
50
50
  5.times do
51
51
  begin
52
52
  results = @telnet_client.login("Name"=>auth_info["username"],
53
- "Password"=>auth_info["password"]) {|line|
54
- if line =~ /[$%#>] \z/n
55
- prompt = line
56
- elsif line =~ /Login failed/
57
- err_msg = line
58
- end
59
- }
53
+ "Password"=>auth_info["password"])
54
+ lines = results.split("\n")
55
+ last_line = lines.pop
56
+ if last_line =~ /[$%#>] \z/n
57
+ prompt = last_line
58
+ elsif last_line =~ /Login failed/
59
+ err_msg = last_line
60
+ end
60
61
  break
61
62
  rescue TimeoutError
62
63
  sleep 1
@@ -104,29 +105,31 @@ module VMC::Cli
104
105
  end
105
106
 
106
107
  def readline_with_history(prompt)
107
- line = Readline.readline(prompt, true)
108
- return '' if line.nil?
109
- #Don't keep blank or repeat commands in history
110
- if line =~ /^\s*$/ or Readline::HISTORY.to_a[-2] == line
111
- Readline::HISTORY.pop
112
- end
108
+ line = Readline::readline(prompt)
109
+ return nil if line == nil || line == 'quit' || line == 'exit'
110
+ Readline::HISTORY.push(line) if not line =~ /^\s*$/ and Readline::HISTORY.to_a[-1] != line
113
111
  line
114
112
  end
115
113
 
116
114
  def run_console(prompt)
117
- while(cmd = readline_with_history(prompt))
118
- if(cmd == "exit" || cmd == "quit")
119
- #TimeoutError expected, as exit doesn't return anything
120
- @telnet_client.cmd("String"=>cmd,"Timeout"=>1) rescue TimeoutError
121
- close_console
115
+ prev = trap("INT") { |x| exit_console; prev.call(x); exit }
116
+ prev = trap("TERM") { |x| exit_console; prev.call(x); exit }
117
+ loop do
118
+ cmd = readline_with_history(prompt)
119
+ if(cmd == nil)
120
+ exit_console
122
121
  break
123
122
  end
124
- if !cmd.empty?
125
- prompt = send_console_command_display_results(cmd, prompt)
126
- end
123
+ prompt = send_console_command_display_results(cmd, prompt)
127
124
  end
128
125
  end
129
126
 
127
+ def exit_console
128
+ #TimeoutError expected, as exit doesn't return anything
129
+ @telnet_client.cmd("String"=>"exit","Timeout"=>1) rescue TimeoutError
130
+ close_console
131
+ end
132
+
130
133
  def send_console_command_display_results(cmd, prompt)
131
134
  begin
132
135
  lines = send_console_command cmd
@@ -19,7 +19,8 @@ module VMC::Cli
19
19
  'WSGI' => ['wsgi', { :mem => '64M', :description => 'Python WSGI Application'}],
20
20
  'Django' => ['django', { :mem => '128M', :description => 'Python Django Application'}],
21
21
  'dotNet' => ['dotNet', { :mem => '128M', :description => '.Net Web Application'}],
22
- 'Rack' => ['rack', { :mem => '128M', :description => 'Rack Application'}]
22
+ 'Rack' => ['rack', { :mem => '128M', :description => 'Rack Application'}],
23
+ 'Play' => ['play', { :mem => '256M', :description => 'Play Framework Application'}]
23
24
  }
24
25
 
25
26
  class << self
@@ -54,6 +55,8 @@ module VMC::Cli
54
55
  if !File.directory? path
55
56
  if path.end_with?('.war')
56
57
  return detect_framework_from_war path
58
+ elsif path.end_with?('.zip')
59
+ return detect_framework_from_zip path, available_frameworks
57
60
  elsif available_frameworks.include?(["standalone"])
58
61
  return Framework.lookup('Standalone')
59
62
  else
@@ -109,6 +112,7 @@ module VMC::Cli
109
112
  # Python
110
113
  elsif !Dir.glob('wsgi.py').empty?
111
114
  return Framework.lookup('WSGI')
115
+
112
116
  # .Net
113
117
  elsif !Dir.glob('web.config').empty?
114
118
  return Framework.lookup('dotNet')
@@ -118,6 +122,11 @@ module VMC::Cli
118
122
  if File.exist?('server.js') || File.exist?('app.js') || File.exist?('index.js') || File.exist?('main.js')
119
123
  return Framework.lookup('Node')
120
124
  end
125
+
126
+ # Play or Standalone Apps
127
+ elsif Dir.glob('*.zip').first
128
+ zip_file = Dir.glob('*.zip').first
129
+ return detect_framework_from_zip zip_file, available_frameworks
121
130
  end
122
131
 
123
132
  # Default to Standalone if no other match was made
@@ -125,7 +134,6 @@ module VMC::Cli
125
134
  end
126
135
  end
127
136
 
128
- private
129
137
  def detect_framework_from_war(war_file=nil)
130
138
  if war_file
131
139
  contents = ZipUtil.entry_lines(war_file)
@@ -149,6 +157,19 @@ module VMC::Cli
149
157
  return Framework.lookup('JavaWeb')
150
158
  end
151
159
  end
160
+
161
+ def detect_framework_from_zip(zip_file, available_frameworks)
162
+ contents = ZipUtil.entry_lines(zip_file)
163
+ detect_framework_from_zip_contents(contents, available_frameworks)
164
+ end
165
+
166
+ def detect_framework_from_zip_contents(contents, available_frameworks)
167
+ if available_frameworks.include?(["play"]) && contents =~ /lib\/play\..*\.jar/
168
+ return Framework.lookup('Play')
169
+ elsif available_frameworks.include?(["standalone"])
170
+ return Framework.lookup('Standalone')
171
+ end
172
+ end
152
173
  end
153
174
 
154
175
  attr_reader :name, :description, :console
data/lib/cli/version.rb CHANGED
@@ -2,6 +2,6 @@ module VMC
2
2
  module Cli
3
3
  # This version number is used as the RubyGem release version.
4
4
  # The internal VMC version number is VMC::VERSION.
5
- VERSION = '0.3.17.1'
5
+ VERSION = '0.3.18.beta.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,211 +1,279 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vmcu
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.3.17.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.18.beta.1
5
+ prerelease: 7
6
6
  platform: ruby
7
- authors:
8
- - VMware; Uhurusoftware
7
+ authors:
8
+ - VMware; Uhurusoftware
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-05-09 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: json_pure
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: 1.5.1
24
- - - <
25
- - !ruby/object:Gem::Version
26
- version: 1.7.0
27
- type: :runtime
28
- version_requirements: *id001
29
- - !ruby/object:Gem::Dependency
30
- name: rubyzip
31
- prerelease: false
32
- requirement: &id002 !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ~>
36
- - !ruby/object:Gem::Version
37
- version: 0.9.4
38
- type: :runtime
39
- version_requirements: *id002
40
- - !ruby/object:Gem::Dependency
41
- name: rest-client
42
- prerelease: false
43
- requirement: &id003 !ruby/object:Gem::Requirement
44
- none: false
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: 1.6.1
49
- - - <
50
- - !ruby/object:Gem::Version
51
- version: 1.7.0
52
- type: :runtime
53
- version_requirements: *id003
54
- - !ruby/object:Gem::Dependency
55
- name: terminal-table
56
- prerelease: false
57
- requirement: &id004 !ruby/object:Gem::Requirement
58
- none: false
59
- requirements:
60
- - - ~>
61
- - !ruby/object:Gem::Version
62
- version: 1.4.2
63
- type: :runtime
64
- version_requirements: *id004
65
- - !ruby/object:Gem::Dependency
66
- name: interact
67
- prerelease: false
68
- requirement: &id005 !ruby/object:Gem::Requirement
69
- none: false
70
- requirements:
71
- - - ~>
72
- - !ruby/object:Gem::Version
73
- version: 0.4.0
74
- type: :runtime
75
- version_requirements: *id005
76
- - !ruby/object:Gem::Dependency
77
- name: addressable
78
- prerelease: false
79
- requirement: &id006 !ruby/object:Gem::Requirement
80
- none: false
81
- requirements:
82
- - - ~>
83
- - !ruby/object:Gem::Version
84
- version: 2.2.6
85
- type: :runtime
86
- version_requirements: *id006
87
- - !ruby/object:Gem::Dependency
88
- name: uuidtools
89
- prerelease: false
90
- requirement: &id007 !ruby/object:Gem::Requirement
91
- none: false
92
- requirements:
93
- - - ~>
94
- - !ruby/object:Gem::Version
95
- version: 2.1.0
96
- type: :runtime
97
- version_requirements: *id007
98
- - !ruby/object:Gem::Dependency
99
- name: rake
100
- prerelease: false
101
- requirement: &id008 !ruby/object:Gem::Requirement
102
- none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- version: "0"
107
- type: :development
108
- version_requirements: *id008
109
- - !ruby/object:Gem::Dependency
110
- name: rspec
111
- prerelease: false
112
- requirement: &id009 !ruby/object:Gem::Requirement
113
- none: false
114
- requirements:
115
- - - ~>
116
- - !ruby/object:Gem::Version
117
- version: 1.3.0
118
- type: :development
119
- version_requirements: *id009
120
- - !ruby/object:Gem::Dependency
121
- name: webmock
122
- prerelease: false
123
- requirement: &id010 !ruby/object:Gem::Requirement
124
- none: false
125
- requirements:
126
- - - ~>
127
- - !ruby/object:Gem::Version
128
- version: 1.5.0
129
- type: :development
130
- version_requirements: *id010
131
- description: Client library and CLI that provides access to the VMware Cloud Application Platform + support for Uhuru AppCloud.
12
+ date: 2012-05-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: json_pure
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 1.5.1
22
+ - - <
23
+ - !ruby/object:Gem::Version
24
+ version: 1.7.0
25
+ type: :runtime
26
+ prerelease: false
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 1.5.1
33
+ - - <
34
+ - !ruby/object:Gem::Version
35
+ version: 1.7.0
36
+ - !ruby/object:Gem::Dependency
37
+ name: rubyzip
38
+ requirement: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.9.4
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ none: false
48
+ requirements:
49
+ - - ~>
50
+ - !ruby/object:Gem::Version
51
+ version: 0.9.4
52
+ - !ruby/object:Gem::Dependency
53
+ name: rest-client
54
+ requirement: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ! '>='
58
+ - !ruby/object:Gem::Version
59
+ version: 1.6.1
60
+ - - <
61
+ - !ruby/object:Gem::Version
62
+ version: 1.7.0
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: 1.6.1
71
+ - - <
72
+ - !ruby/object:Gem::Version
73
+ version: 1.7.0
74
+ - !ruby/object:Gem::Dependency
75
+ name: terminal-table
76
+ requirement: !ruby/object:Gem::Requirement
77
+ none: false
78
+ requirements:
79
+ - - ~>
80
+ - !ruby/object:Gem::Version
81
+ version: 1.4.2
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 1.4.2
90
+ - !ruby/object:Gem::Dependency
91
+ name: interact
92
+ requirement: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ~>
96
+ - !ruby/object:Gem::Version
97
+ version: 0.4.0
98
+ type: :runtime
99
+ prerelease: false
100
+ version_requirements: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ~>
104
+ - !ruby/object:Gem::Version
105
+ version: 0.4.0
106
+ - !ruby/object:Gem::Dependency
107
+ name: addressable
108
+ requirement: !ruby/object:Gem::Requirement
109
+ none: false
110
+ requirements:
111
+ - - ~>
112
+ - !ruby/object:Gem::Version
113
+ version: 2.2.6
114
+ type: :runtime
115
+ prerelease: false
116
+ version_requirements: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ~>
120
+ - !ruby/object:Gem::Version
121
+ version: 2.2.6
122
+ - !ruby/object:Gem::Dependency
123
+ name: uuidtools
124
+ requirement: !ruby/object:Gem::Requirement
125
+ none: false
126
+ requirements:
127
+ - - ~>
128
+ - !ruby/object:Gem::Version
129
+ version: 2.1.0
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ none: false
134
+ requirements:
135
+ - - ~>
136
+ - !ruby/object:Gem::Version
137
+ version: 2.1.0
138
+ - !ruby/object:Gem::Dependency
139
+ name: rb-readline
140
+ requirement: !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ~>
144
+ - !ruby/object:Gem::Version
145
+ version: 0.4.2
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ~>
152
+ - !ruby/object:Gem::Version
153
+ version: 0.4.2
154
+ - !ruby/object:Gem::Dependency
155
+ name: rake
156
+ requirement: !ruby/object:Gem::Requirement
157
+ none: false
158
+ requirements:
159
+ - - ! '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ none: false
166
+ requirements:
167
+ - - ! '>='
168
+ - !ruby/object:Gem::Version
169
+ version: '0'
170
+ - !ruby/object:Gem::Dependency
171
+ name: rspec
172
+ requirement: !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ~>
176
+ - !ruby/object:Gem::Version
177
+ version: 1.3.0
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ~>
184
+ - !ruby/object:Gem::Version
185
+ version: 1.3.0
186
+ - !ruby/object:Gem::Dependency
187
+ name: webmock
188
+ requirement: !ruby/object:Gem::Requirement
189
+ none: false
190
+ requirements:
191
+ - - ~>
192
+ - !ruby/object:Gem::Version
193
+ version: 1.5.0
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ none: false
198
+ requirements:
199
+ - - ~>
200
+ - !ruby/object:Gem::Version
201
+ version: 1.5.0
202
+ description: Client library and CLI that provides access to the VMware Cloud Application
203
+ Platform + support for Uhuru AppCloud.
132
204
  email: support@uhurusoftware.com
133
- executables:
134
- - vmcu
205
+ executables:
206
+ - vmcu
135
207
  extensions: []
136
-
137
- extra_rdoc_files:
138
- - README.md
139
- - LICENSE
140
- files:
141
- - LICENSE
142
- - README.md
143
- - Rakefile
144
- - config/clients.yml
145
- - config/micro/offline.conf
146
- - config/micro/paths.yml
147
- - config/micro/refresh_ip.rb
148
- - lib/cli.rb
149
- - lib/vmc.rb
150
- - lib/cli/config.rb
151
- - lib/cli/console_helper.rb
152
- - lib/cli/core_ext.rb
153
- - lib/cli/errors.rb
154
- - lib/cli/frameworks.rb
155
- - lib/cli/manifest_helper.rb
156
- - lib/cli/runner.rb
157
- - lib/cli/services_helper.rb
158
- - lib/cli/tunnel_helper.rb
159
- - lib/cli/usage.rb
160
- - lib/cli/version.rb
161
- - lib/cli/zip_util.rb
162
- - lib/cli/commands/admin.rb
163
- - lib/cli/commands/apps.rb
164
- - lib/cli/commands/base.rb
165
- - lib/cli/commands/manifest.rb
166
- - lib/cli/commands/micro.rb
167
- - lib/cli/commands/misc.rb
168
- - lib/cli/commands/services.rb
169
- - lib/cli/commands/user.rb
170
- - lib/vmc/client.rb
171
- - lib/vmc/const.rb
172
- - lib/vmc/micro.rb
173
- - lib/vmc/micro/vmrun.rb
174
- - lib/vmc/micro/switcher/base.rb
175
- - lib/vmc/micro/switcher/darwin.rb
176
- - lib/vmc/micro/switcher/dummy.rb
177
- - lib/vmc/micro/switcher/linux.rb
178
- - lib/vmc/micro/switcher/windows.rb
179
- - caldecott_helper/Gemfile
180
- - caldecott_helper/Gemfile.lock
181
- - caldecott_helper/server.rb
182
- - bin/vmcu
208
+ extra_rdoc_files:
209
+ - README.md
210
+ - LICENSE
211
+ files:
212
+ - LICENSE
213
+ - README.md
214
+ - Rakefile
215
+ - config/clients.yml
216
+ - config/micro/offline.conf
217
+ - config/micro/paths.yml
218
+ - config/micro/refresh_ip.rb
219
+ - lib/cli/commands/admin.rb
220
+ - lib/cli/commands/apps.rb
221
+ - lib/cli/commands/base.rb
222
+ - lib/cli/commands/manifest.rb
223
+ - lib/cli/commands/micro.rb
224
+ - lib/cli/commands/misc.rb
225
+ - lib/cli/commands/services.rb
226
+ - lib/cli/commands/user.rb
227
+ - lib/cli/config.rb
228
+ - lib/cli/console_helper.rb
229
+ - lib/cli/core_ext.rb
230
+ - lib/cli/errors.rb
231
+ - lib/cli/frameworks.rb
232
+ - lib/cli/manifest_helper.rb
233
+ - lib/cli/runner.rb
234
+ - lib/cli/services_helper.rb
235
+ - lib/cli/tunnel_helper.rb
236
+ - lib/cli/usage.rb
237
+ - lib/cli/version.rb
238
+ - lib/cli/zip_util.rb
239
+ - lib/cli.rb
240
+ - lib/vmc/client.rb
241
+ - lib/vmc/const.rb
242
+ - lib/vmc/micro/switcher/base.rb
243
+ - lib/vmc/micro/switcher/darwin.rb
244
+ - lib/vmc/micro/switcher/dummy.rb
245
+ - lib/vmc/micro/switcher/linux.rb
246
+ - lib/vmc/micro/switcher/windows.rb
247
+ - lib/vmc/micro/vmrun.rb
248
+ - lib/vmc/micro.rb
249
+ - lib/vmc.rb
250
+ - caldecott_helper/Gemfile
251
+ - caldecott_helper/Gemfile.lock
252
+ - caldecott_helper/server.rb
253
+ - bin/vmcu
183
254
  homepage: http://www.uhurusoftware.com
184
255
  licenses: []
185
-
186
256
  post_install_message:
187
257
  rdoc_options: []
188
-
189
- require_paths:
190
- - lib
191
- required_ruby_version: !ruby/object:Gem::Requirement
258
+ require_paths:
259
+ - lib
260
+ required_ruby_version: !ruby/object:Gem::Requirement
192
261
  none: false
193
- requirements:
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- version: "0"
197
- required_rubygems_version: !ruby/object:Gem::Requirement
262
+ requirements:
263
+ - - ! '>='
264
+ - !ruby/object:Gem::Version
265
+ version: '0'
266
+ required_rubygems_version: !ruby/object:Gem::Requirement
198
267
  none: false
199
- requirements:
200
- - - ">="
201
- - !ruby/object:Gem::Version
202
- version: "0"
268
+ requirements:
269
+ - - ! '>'
270
+ - !ruby/object:Gem::Version
271
+ version: 1.3.1
203
272
  requirements: []
204
-
205
273
  rubyforge_project:
206
274
  rubygems_version: 1.8.24
207
275
  signing_key:
208
276
  specification_version: 3
209
- summary: Client library and CLI that provides access to the VMware Cloud Application Platform + support for Uhuru AppCloud.
277
+ summary: Client library and CLI that provides access to the VMware Cloud Application
278
+ Platform + support for Uhuru AppCloud.
210
279
  test_files: []
211
-