bosh_cli 1.2981.0 → 1.2982.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8e1d3bf5c54dd7d88ea097bc989c0fee02b2481
4
- data.tar.gz: 52c1003f0a7f996c73e66987953a4087e58ccca8
3
+ metadata.gz: 6f9901f35b38a8d19557f025c539b6429ad6d1cb
4
+ data.tar.gz: c0b59a2d9ddfa2d1c5827d3cb899eb97cf278b27
5
5
  SHA512:
6
- metadata.gz: 9c16af5b713b12caa76ad0711b80905d9cfca32cb24fbf6f57a94bfd3588425b58c9aed8ef7b817ac91c466e6f5a04176fcc5a04ed61fb08527f1bd83b6af19f
7
- data.tar.gz: 3cdbb9050100b5f0ee45ce0ac2c957f682072aca593fcbe08ac29ad337433a203392110760ba156447086915a53f6cd3a4ee0b66bffb9a2af3b5d372539ff3c4
6
+ metadata.gz: f80da0368d9d91d331e37d0c225e250a287e9881a7ea5f587158487149a0e1bc1c16c34f4ecfdb9f401d5ee7eb8b2f48fe475d2289e5742865446de18ff75336
7
+ data.tar.gz: 08a5c19f09873e03bf20b6208330ca167549d248387df76d813746c92d672ef3c1f070c337cc91f543e4c42af5a4298f2e8c17932bbfdf1fbf0a98fbe30168bb
@@ -100,10 +100,6 @@ module Bosh::Cli
100
100
  end
101
101
 
102
102
  def credentials
103
- director_client = Client::Director.new(target)
104
- auth_info = Client::Uaa::AuthInfo.new(director_client, ENV, config.ca_cert(target))
105
- token_decoder = Client::Uaa::TokenDecoder.new
106
- uaa_token_provider = Client::Uaa::TokenProvider.new(auth_info, config, token_decoder, target)
107
103
  auth_token = uaa_token_provider.token
108
104
  return Client::UaaCredentials.new(auth_token) if auth_token
109
105
 
@@ -114,6 +110,15 @@ module Bosh::Cli
114
110
  nil
115
111
  end
116
112
 
113
+ def uaa_token_provider
114
+ @uaa_token_provider ||= begin
115
+ director_client = Client::Director.new(target)
116
+ auth_info = Client::Uaa::AuthInfo.new(director_client, ENV, config.ca_cert(target))
117
+ token_decoder = Client::Uaa::TokenDecoder.new
118
+ Client::Uaa::TokenProvider.new(auth_info, config, token_decoder, target)
119
+ end
120
+ end
121
+
117
122
  def target_name
118
123
  options[:target] || config.target_name || target_url
119
124
  end
@@ -5,18 +5,6 @@ module Bosh
5
5
  class AccessInfo
6
6
  EXPIRATION_DEADLINE_IN_SECONDS = 30
7
7
 
8
- def self.from_config(config_access_token, refresh_token, token_decoder)
9
- token_type, access_token = config_access_token.split(' ')
10
- return nil unless token_type && access_token
11
-
12
- token_info = CF::UAA::TokenInfo.new({
13
- access_token: access_token,
14
- refresh_token: refresh_token,
15
- token_type: token_type,
16
- })
17
- new(token_info, token_decoder)
18
- end
19
-
20
8
  def initialize(token_info, token_decoder)
21
9
  @token_info = token_info
22
10
  @token_decoder = token_decoder
@@ -58,6 +46,18 @@ module Bosh
58
46
  end
59
47
 
60
48
  class PasswordAccessInfo < AccessInfo
49
+ def self.create(full_access_token, refresh_token, token_decoder)
50
+ token_type, access_token = full_access_token.split(' ')
51
+ return nil unless token_type && access_token
52
+
53
+ token_info = CF::UAA::TokenInfo.new({
54
+ access_token: access_token,
55
+ refresh_token: refresh_token,
56
+ token_type: token_type,
57
+ })
58
+ new(token_info, token_decoder)
59
+ end
60
+
61
61
  def username
62
62
  token_data['user_name']
63
63
  end
@@ -11,6 +11,7 @@ module Bosh
11
11
  class Client
12
12
  def initialize(target, auth_info, config)
13
13
  @target = target
14
+ @auth_info = auth_info
14
15
  token_decoder = TokenDecoder.new
15
16
  if auth_info.client_auth?
16
17
  token_issuer = ClientTokenIssuer.new(auth_info, token_decoder)
@@ -47,7 +48,7 @@ module Bosh
47
48
 
48
49
  def with_save
49
50
  access_info = yield
50
- if access_info.auth_header
51
+ if access_info.auth_header && !@auth_info.client_auth?
51
52
  @config.set_credentials(@target, access_info.to_hash)
52
53
  @config.save
53
54
  end
@@ -13,12 +13,10 @@ module Bosh
13
13
  end
14
14
 
15
15
  def token
16
- config_access_token = @config.access_token(@target)
17
-
18
16
  if @auth_info.client_auth?
19
- access_info = client_access_info(config_access_token)
17
+ access_info = client_access_info
20
18
  else
21
- access_info = password_access_info(config_access_token)
19
+ access_info = password_access_info
22
20
  end
23
21
 
24
22
  access_info.auth_header if access_info
@@ -30,24 +28,19 @@ module Bosh
30
28
  @uaa_client ||= Bosh::Cli::Client::Uaa::Client.new(@target, @auth_info, @config)
31
29
  end
32
30
 
33
- def client_access_info(config_access_token)
34
- unless config_access_token
35
- return uaa_client.access_info({})
36
- end
37
-
38
- access_info = ClientAccessInfo.from_config(config_access_token, nil, @token_decoder)
39
- return nil unless access_info
40
-
41
- if access_info.was_issued_for?(@auth_info.client_id)
42
- return refresh_if_needed(access_info)
31
+ def client_access_info
32
+ if !@client_access_info.nil? && @client_access_info.was_issued_for?(@auth_info.client_id)
33
+ @client_access_info = refresh_if_needed(@client_access_info)
34
+ else
35
+ @client_access_info = uaa_client.access_info({})
43
36
  end
44
- uaa_client.access_info({})
45
37
  end
46
38
 
47
- def password_access_info(config_access_token)
39
+ def password_access_info
40
+ config_access_token = @config.access_token(@target)
48
41
  return nil unless config_access_token
49
42
 
50
- access_info = PasswordAccessInfo.from_config(config_access_token, @config.refresh_token(@target), @token_decoder)
43
+ access_info = PasswordAccessInfo.create(config_access_token, @config.refresh_token(@target), @token_decoder)
51
44
  return nil unless access_info
52
45
 
53
46
  refresh_if_needed(access_info)
@@ -1,5 +1,5 @@
1
1
  module Bosh
2
2
  module Cli
3
- VERSION = '1.2981.0'
3
+ VERSION = '1.2982.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bosh_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2981.0
4
+ version: 1.2982.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - VMware
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-08 00:00:00.000000000 Z
11
+ date: 2015-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bosh_common
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2981.0
19
+ version: 1.2982.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.2981.0
26
+ version: 1.2982.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bosh-template
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.2981.0
33
+ version: 1.2982.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.2981.0
40
+ version: 1.2982.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: cf-uaa-lib
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +128,14 @@ dependencies:
128
128
  requirements:
129
129
  - - "~>"
130
130
  - !ruby/object:Gem::Version
131
- version: 1.2981.0
131
+ version: 1.2982.0
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 1.2981.0
138
+ version: 1.2982.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: net-ssh
141
141
  requirement: !ruby/object:Gem::Requirement
@@ -306,7 +306,7 @@ dependencies:
306
306
  version: '0'
307
307
  description: |-
308
308
  BOSH CLI
309
- 4246cc
309
+ 30e5c6
310
310
  email: support@cloudfoundry.com
311
311
  executables:
312
312
  - bosh