bosh_cli 1.2311.0 → 1.2334.0
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/client/director.rb +36 -28
- data/lib/cli/task_tracking/event_log_renderer.rb +4 -2
- data/lib/cli/version.rb +1 -1
- metadata +8 -8
data/lib/cli/client/director.rb
CHANGED
@@ -598,22 +598,26 @@ module Bosh
|
|
598
598
|
@director_name ||= get_status['name']
|
599
599
|
end
|
600
600
|
|
601
|
-
def request(method, uri, content_type = nil, payload = nil,
|
602
|
-
headers =
|
603
|
-
headers = headers.dup
|
604
|
-
tmp_file = nil
|
605
|
-
|
601
|
+
def request(method, uri, content_type = nil, payload = nil, headers = {}, options = {})
|
602
|
+
headers = headers.dup
|
606
603
|
headers['Content-Type'] = content_type if content_type
|
607
604
|
|
605
|
+
tmp_file = nil
|
606
|
+
response_reader = nil
|
608
607
|
if options[:file]
|
609
608
|
tmp_file = File.open(File.join(Dir.mktmpdir, 'streamed-response'), 'w')
|
610
|
-
|
611
609
|
response_reader = lambda { |part| tmp_file.write(part) }
|
612
|
-
else
|
613
|
-
response_reader = nil
|
614
610
|
end
|
615
611
|
|
616
|
-
response = try_to_perform_http_request(
|
612
|
+
response = try_to_perform_http_request(
|
613
|
+
method,
|
614
|
+
"#{@scheme}://#{@director_ip}:#{@port}#{uri}",
|
615
|
+
payload,
|
616
|
+
headers,
|
617
|
+
num_retries,
|
618
|
+
retry_wait_interval,
|
619
|
+
&response_reader
|
620
|
+
)
|
617
621
|
|
618
622
|
if options[:file]
|
619
623
|
tmp_file.close
|
@@ -640,7 +644,6 @@ module Bosh
|
|
640
644
|
|
641
645
|
[response.code, body, headers]
|
642
646
|
|
643
|
-
|
644
647
|
rescue SystemCallError => e
|
645
648
|
raise DirectorError, "System call error while talking to director: #{e}"
|
646
649
|
end
|
@@ -659,6 +662,19 @@ module Bosh
|
|
659
662
|
end
|
660
663
|
end
|
661
664
|
|
665
|
+
def try_to_perform_http_request(method, uri, payload, headers, num_retries, retry_wait_interval, &response_reader)
|
666
|
+
num_retries.downto(1) do |n|
|
667
|
+
begin
|
668
|
+
return perform_http_request(method, uri, payload, headers, &response_reader)
|
669
|
+
|
670
|
+
rescue DirectorInaccessible
|
671
|
+
warning("cannot access director, trying #{n-1} more times...") if n != 1
|
672
|
+
raise if n == 1
|
673
|
+
sleep(retry_wait_interval)
|
674
|
+
end
|
675
|
+
end
|
676
|
+
end
|
677
|
+
|
662
678
|
def perform_http_request(method, uri, payload = nil, headers = {}, &block)
|
663
679
|
http_client = HTTPClient.new
|
664
680
|
|
@@ -676,31 +692,23 @@ module Bosh
|
|
676
692
|
Base64.encode64("#{@user}:#{@password}").strip
|
677
693
|
end
|
678
694
|
|
679
|
-
http_client.request(method, uri,
|
680
|
-
|
695
|
+
http_client.request(method, uri, {
|
696
|
+
:body => payload,
|
697
|
+
:header => headers,
|
698
|
+
}, &block)
|
699
|
+
|
700
|
+
rescue URI::Error, SocketError, Errno::ECONNREFUSED, Timeout::Error, HTTPClient::TimeoutError => e
|
701
|
+
raise DirectorInaccessible, "cannot access director (#{e.message})"
|
681
702
|
|
682
703
|
rescue HTTPClient::BadResponseError => e
|
683
704
|
err("Received bad HTTP response from director: #{e}")
|
684
|
-
|
685
|
-
|
686
|
-
rescue => e
|
687
|
-
# httpclient (sadly) doesn't have a generic exception
|
705
|
+
|
706
|
+
# HTTPClient doesn't have a root exception but instead subclasses RuntimeError
|
707
|
+
rescue RuntimeError => e
|
688
708
|
puts "Perform request #{method}, #{uri}, #{headers.inspect}, #{payload.inspect}"
|
689
709
|
err("REST API call exception: #{e}")
|
690
710
|
end
|
691
711
|
|
692
|
-
def try_to_perform_http_request(method, uri, payload, headers, num_retries, retry_wait_interval, &response_reader)
|
693
|
-
num_retries.downto(1) do |n|
|
694
|
-
begin
|
695
|
-
return perform_http_request(method, uri, payload, headers, &response_reader)
|
696
|
-
rescue URI::Error, SocketError, Errno::ECONNREFUSED => e
|
697
|
-
warning("cannot access director, trying #{n-1} more times...") if n != 1
|
698
|
-
raise DirectorInaccessible, "cannot access director (#{e.message})" if n == 1
|
699
|
-
sleep retry_wait_interval
|
700
|
-
end
|
701
|
-
end
|
702
|
-
end
|
703
|
-
|
704
712
|
def get_json(url)
|
705
713
|
status, body = get_json_with_status(url)
|
706
714
|
raise AuthError if status == 401
|
@@ -64,8 +64,10 @@ module Bosh::Cli::TaskTracking
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def add_event(event)
|
67
|
-
|
68
|
-
|
67
|
+
unless event['time'] == 0
|
68
|
+
@total_duration.started_at = event['time']
|
69
|
+
@total_duration.finished_at = event['time']
|
70
|
+
end
|
69
71
|
|
70
72
|
if event['type'] == 'deprecation'
|
71
73
|
show_deprecation(event)
|
data/lib/cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bosh_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2334.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-04-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bosh_common
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.
|
21
|
+
version: 1.2334.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 1.
|
29
|
+
version: 1.2334.0
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: json_pure
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - ~>
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: 1.2334.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
requirements:
|
123
123
|
- - ~>
|
124
124
|
- !ruby/object:Gem::Version
|
125
|
-
version: 1.
|
125
|
+
version: 1.2334.0
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: net-ssh
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
@@ -269,7 +269,7 @@ dependencies:
|
|
269
269
|
version: '0'
|
270
270
|
description: ! 'BOSH CLI
|
271
271
|
|
272
|
-
|
272
|
+
839055'
|
273
273
|
email: support@cloudfoundry.com
|
274
274
|
executables:
|
275
275
|
- bosh
|
@@ -380,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
380
380
|
version: '0'
|
381
381
|
segments:
|
382
382
|
- 0
|
383
|
-
hash:
|
383
|
+
hash: 4124968515230087242
|
384
384
|
requirements: []
|
385
385
|
rubyforge_project:
|
386
386
|
rubygems_version: 1.8.23
|