vmc 0.3.12.beta.1 → 0.3.12

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/runner.rb CHANGED
@@ -410,8 +410,7 @@ class VMC::Cli::Runner
410
410
 
411
411
  def run
412
412
 
413
- trap('TERM') { print "\nInterrupted\n"; exit(false)}
414
- trap('INT') { print "\nInterrupted\n"; exit(false)}
413
+ trap('TERM') { print "\nTerminated\n"; exit(false)}
415
414
 
416
415
  parse_options!
417
416
 
@@ -467,6 +466,9 @@ class VMC::Cli::Runner
467
466
  puts e.message.red
468
467
  puts e.backtrace
469
468
  @exit_status = false
469
+ rescue Interrupt => e
470
+ say("\nInterrupted".red)
471
+ @exit_status = false
470
472
  rescue => e
471
473
  puts e.message.red
472
474
  puts e.backtrace
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.12.beta.1'
5
+ VERSION = '0.3.12'
6
6
  end
7
7
  end
data/lib/vmc/client.rb CHANGED
@@ -381,7 +381,8 @@ class VMC::Client
381
381
  end
382
382
 
383
383
  def perform_http_request(req)
384
- RestClient.proxy = URI.parse(req[:url]).find_proxy()
384
+ proxy_uri = URI.parse(req[:url]).find_proxy()
385
+ RestClient.proxy = proxy_uri.to_s if proxy_uri
385
386
 
386
387
  # Setup tracing if needed
387
388
  unless trace.nil?
@@ -395,9 +396,17 @@ class VMC::Client
395
396
  puts '>>>'
396
397
  puts "PROXY: #{RestClient.proxy}" if RestClient.proxy
397
398
  puts "REQUEST: #{req[:method]} #{req[:url]}"
398
- puts "RESPONSE_HEADERS: #{response.headers}"
399
+ puts "RESPONSE_HEADERS:"
400
+ response.headers.each do |key, value|
401
+ puts " #{key} : #{value}"
402
+ end
399
403
  puts "REQUEST_BODY: #{req[:payload]}" if req[:payload]
400
- puts "RESPONSE: [#{response.code}] #{response.body}"
404
+ puts "RESPONSE: [#{response.code}]"
405
+ begin
406
+ puts JSON.pretty_generate(JSON.parse(response.body))
407
+ rescue
408
+ puts "#{response.body}"
409
+ end
401
410
  puts '<<<'
402
411
  end
403
412
  end
@@ -32,16 +32,11 @@ describe 'VMC::Cli::Runner' do
32
32
  cli.options[:bind].should == 'bar'
33
33
  end
34
34
 
35
- it 'should parse instance and instances correctly into numbers' do
35
+ it 'should parse instances and instance into a number and string' do
36
36
  args = "--instances 1 --instance 2"
37
37
  cli = VMC::Cli::Runner.new(args.split).parse_options!
38
38
  cli.options[:instances].should == 1
39
- cli.options[:instance].should == 2
40
- end
41
-
42
- it 'should complain if instance arg is not a number' do
43
- args = "--instance foo"
44
- expect { VMC::Cli::Runner.new(args.split).parse_options! }.to raise_error
39
+ cli.options[:instance].should == "2"
45
40
  end
46
41
 
47
42
  it 'should parse url, mem, path correctly' do
@@ -11,6 +11,13 @@ describe 'VMC::Client' do
11
11
  @auth_token = spec_asset('sample_token.txt')
12
12
  end
13
13
 
14
+ before(:each) do
15
+ # make sure these get cleared so we don't have tests pass that shouldn't
16
+ RestClient.proxy = nil
17
+ ENV['http_proxy'] = nil
18
+ ENV['https_proxy'] = nil
19
+ end
20
+
14
21
  it 'should report its version' do
15
22
  VMC::Client.version.should =~ /\d.\d.\d/
16
23
  end
@@ -275,14 +282,24 @@ describe 'VMC::Client' do
275
282
  end
276
283
 
277
284
  it 'should set a proxy if one is set' do
285
+ target = "http://nonlocal.domain.com"
286
+ info_path = "#{target}#{VMC::INFO_PATH}"
287
+ stub_request(:get, info_path).to_return(File.new(spec_asset('info_return.txt')))
288
+ proxy = 'http://proxy.vmware.com:3128'
289
+ ENV['http_proxy'] = proxy
290
+ client = VMC::Client.new(target)
291
+ info = client.info
292
+ RestClient.proxy.should == proxy
293
+ end
294
+
295
+ it 'should not set a proxy when accessing localhost' do
278
296
  info_path = "#{@local_target}#{VMC::INFO_PATH}"
279
297
  stub_request(:get, info_path).to_return(File.new(spec_asset('info_return.txt')))
280
298
  proxy = 'http://proxy.vmware.com:3128'
281
299
  ENV['http_proxy'] = proxy
282
300
  client = VMC::Client.new(@local_target)
283
301
  info = client.info
284
- RestClient.proxy.should == proxy
285
- ENV['http_proxy'] = nil
302
+ RestClient.proxy.should == nil
286
303
  end
287
304
 
288
305
  it 'should use a secure proxy over a normal proxy if one is set' do
@@ -295,20 +312,19 @@ describe 'VMC::Client' do
295
312
  client = VMC::Client.new(@target)
296
313
  info = client.info
297
314
  RestClient.proxy.should == secure_proxy
298
- ENV['http_proxy'] = ENV['https_proxy'] = nil
299
315
  end
300
316
 
301
317
  it 'should not use a secure proxy for non-secure site' do
302
- info_path = "#{@local_target}#{VMC::INFO_PATH}"
318
+ target = "http://nonlocal.domain.com"
319
+ info_path = "#{target}#{VMC::INFO_PATH}"
303
320
  stub_request(:get, info_path).to_return(File.new(spec_asset('info_return.txt')))
304
321
  proxy = 'http://proxy.vmware.com:3128'
305
322
  secure_proxy = 'http://secure-proxy.vmware.com:3128'
306
323
  ENV['http_proxy'] = proxy
307
324
  ENV['https_proxy'] = secure_proxy
308
- client = VMC::Client.new(@local_target)
325
+ client = VMC::Client.new(target)
309
326
  info = client.info
310
327
  RestClient.proxy.should == proxy
311
- ENV['http_proxy'] = ENV['https_proxy'] = nil
312
328
  end
313
329
 
314
330
  # WebMock.allow_net_connect!
metadata CHANGED
@@ -1,119 +1,118 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: vmc
3
- version: !ruby/object:Gem::Version
4
- prerelease: 7
5
- version: 0.3.12.beta.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.12
5
+ prerelease:
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - VMware
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-02 00:00:00 -07:00
12
+ date: 2011-07-12 00:00:00.000000000 -05:00
14
13
  default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
17
16
  name: json_pure
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
17
+ requirement: &2160775700 !ruby/object:Gem::Requirement
20
18
  none: false
21
- requirements:
19
+ requirements:
22
20
  - - ~>
23
- - !ruby/object:Gem::Version
21
+ - !ruby/object:Gem::Version
24
22
  version: 1.5.1
25
23
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: rubyzip2
29
24
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
25
+ version_requirements: *2160775700
26
+ - !ruby/object:Gem::Dependency
27
+ name: rubyzip2
28
+ requirement: &2160775200 !ruby/object:Gem::Requirement
31
29
  none: false
32
- requirements:
30
+ requirements:
33
31
  - - ~>
34
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
35
33
  version: 2.0.1
36
34
  type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: highline
40
35
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
36
+ version_requirements: *2160775200
37
+ - !ruby/object:Gem::Dependency
38
+ name: highline
39
+ requirement: &2160774680 !ruby/object:Gem::Requirement
42
40
  none: false
43
- requirements:
41
+ requirements:
44
42
  - - ~>
45
- - !ruby/object:Gem::Version
43
+ - !ruby/object:Gem::Version
46
44
  version: 1.6.1
47
45
  type: :runtime
48
- version_requirements: *id003
49
- - !ruby/object:Gem::Dependency
50
- name: rest-client
51
46
  prerelease: false
52
- requirement: &id004 !ruby/object:Gem::Requirement
47
+ version_requirements: *2160774680
48
+ - !ruby/object:Gem::Dependency
49
+ name: rest-client
50
+ requirement: &2160774120 !ruby/object:Gem::Requirement
53
51
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
57
55
  version: 1.6.1
58
56
  - - <
59
- - !ruby/object:Gem::Version
57
+ - !ruby/object:Gem::Version
60
58
  version: 1.7.0
61
59
  type: :runtime
62
- version_requirements: *id004
63
- - !ruby/object:Gem::Dependency
64
- name: terminal-table
65
60
  prerelease: false
66
- requirement: &id005 !ruby/object:Gem::Requirement
61
+ version_requirements: *2160774120
62
+ - !ruby/object:Gem::Dependency
63
+ name: terminal-table
64
+ requirement: &2160773380 !ruby/object:Gem::Requirement
67
65
  none: false
68
- requirements:
66
+ requirements:
69
67
  - - ~>
70
- - !ruby/object:Gem::Version
68
+ - !ruby/object:Gem::Version
71
69
  version: 1.4.2
72
70
  type: :runtime
73
- version_requirements: *id005
74
- - !ruby/object:Gem::Dependency
75
- name: rake
76
71
  prerelease: false
77
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ version_requirements: *2160773380
73
+ - !ruby/object:Gem::Dependency
74
+ name: rake
75
+ requirement: &2160772980 !ruby/object:Gem::Requirement
78
76
  none: false
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: "0"
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
83
81
  type: :development
84
- version_requirements: *id006
85
- - !ruby/object:Gem::Dependency
86
- name: rspec
87
82
  prerelease: false
88
- requirement: &id007 !ruby/object:Gem::Requirement
83
+ version_requirements: *2160772980
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ requirement: &2160772400 !ruby/object:Gem::Requirement
89
87
  none: false
90
- requirements:
88
+ requirements:
91
89
  - - ~>
92
- - !ruby/object:Gem::Version
90
+ - !ruby/object:Gem::Version
93
91
  version: 1.3.0
94
92
  type: :development
95
- version_requirements: *id007
96
- - !ruby/object:Gem::Dependency
97
- name: webmock
98
93
  prerelease: false
99
- requirement: &id008 !ruby/object:Gem::Requirement
94
+ version_requirements: *2160772400
95
+ - !ruby/object:Gem::Dependency
96
+ name: webmock
97
+ requirement: &2160771840 !ruby/object:Gem::Requirement
100
98
  none: false
101
- requirements:
99
+ requirements:
102
100
  - - ~>
103
- - !ruby/object:Gem::Version
101
+ - !ruby/object:Gem::Version
104
102
  version: 1.5.0
105
103
  type: :development
106
- version_requirements: *id008
107
- description: Client library and CLI that provides access to the VMware Cloud Application Platform.
104
+ prerelease: false
105
+ version_requirements: *2160771840
106
+ description: Client library and CLI that provides access to the VMware Cloud Application
107
+ Platform.
108
108
  email: support@vmware.com
109
- executables:
109
+ executables:
110
110
  - vmc
111
111
  extensions: []
112
-
113
- extra_rdoc_files:
112
+ extra_rdoc_files:
114
113
  - README.md
115
114
  - LICENSE
116
- files:
115
+ files:
117
116
  - LICENSE
118
117
  - README.md
119
118
  - Rakefile
@@ -161,30 +160,27 @@ files:
161
160
  has_rdoc: true
162
161
  homepage: http://vmware.com
163
162
  licenses: []
164
-
165
163
  post_install_message:
166
164
  rdoc_options: []
167
-
168
- require_paths:
165
+ require_paths:
169
166
  - lib
170
- required_ruby_version: !ruby/object:Gem::Requirement
167
+ required_ruby_version: !ruby/object:Gem::Requirement
171
168
  none: false
172
- requirements:
173
- - - ">="
174
- - !ruby/object:Gem::Version
175
- version: "0"
176
- required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
174
  none: false
178
- requirements:
179
- - - ">"
180
- - !ruby/object:Gem::Version
181
- version: 1.3.1
175
+ requirements:
176
+ - - ! '>='
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
182
179
  requirements: []
183
-
184
180
  rubyforge_project:
185
181
  rubygems_version: 1.6.2
186
182
  signing_key:
187
183
  specification_version: 3
188
- summary: Client library and CLI that provides access to the VMware Cloud Application Platform.
184
+ summary: Client library and CLI that provides access to the VMware Cloud Application
185
+ Platform.
189
186
  test_files: []
190
-