cfoundry 4.0.4.rc2 → 4.1.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/cfoundry/baseclient.rb +4 -2
- data/lib/cfoundry/client.rb +2 -0
- data/lib/cfoundry/concerns/proxy_options.rb +17 -0
- data/lib/cfoundry/rest_client.rb +5 -14
- data/lib/cfoundry/uaaclient.rb +21 -7
- data/lib/cfoundry/version.rb +1 -1
- data/spec/cfoundry/baseclient_spec.rb +28 -1
- data/spec/cfoundry/rest_client_spec.rb +4 -40
- data/spec/cfoundry/uaaclient_spec.rb +24 -0
- data/spec/spec_helper.rb +1 -0
- metadata +64 -11
- checksums.yaml +0 -15
data/lib/cfoundry/baseclient.rb
CHANGED
@@ -7,6 +7,8 @@ require "forwardable"
|
|
7
7
|
|
8
8
|
module CFoundry
|
9
9
|
class BaseClient # :nodoc:
|
10
|
+
include CFoundry::ProxyOptions
|
11
|
+
|
10
12
|
extend Forwardable
|
11
13
|
|
12
14
|
attr_reader :rest_client
|
@@ -27,7 +29,7 @@ module CFoundry
|
|
27
29
|
endpoint = info[:authorization_endpoint]
|
28
30
|
|
29
31
|
if endpoint
|
30
|
-
uaa = CFoundry::UAAClient.new(endpoint)
|
32
|
+
uaa = CFoundry::UAAClient.new(endpoint, "cf", http_proxy: http_proxy, https_proxy: https_proxy)
|
31
33
|
uaa.trace = trace
|
32
34
|
uaa.token = token
|
33
35
|
uaa
|
@@ -105,7 +107,7 @@ module CFoundry
|
|
105
107
|
opts[:verify_mode] = OpenSSL::SSL::VERIFY_NONE
|
106
108
|
end
|
107
109
|
|
108
|
-
Net::HTTP.start(uri.host, uri.port, opts) do |http|
|
110
|
+
Net::HTTP.start(uri.host, uri.port, *proxy_options_for(uri), opts) do |http|
|
109
111
|
http.read_timeout = 5
|
110
112
|
|
111
113
|
req = Net::HTTP::Get.new(uri.request_uri)
|
data/lib/cfoundry/client.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
module CFoundry
|
2
|
+
module ProxyOptions
|
3
|
+
def proxy_options_for(uri)
|
4
|
+
ssl = uri.is_a?(URI::HTTPS)
|
5
|
+
proxy_to_use = (ssl ? https_proxy : http_proxy)
|
6
|
+
|
7
|
+
if proxy_to_use.blank?
|
8
|
+
[]
|
9
|
+
else
|
10
|
+
proxy_to_use = "proto://#{proxy_to_use}" unless proxy_to_use =~ /:\/\//
|
11
|
+
proxy_uri = URI.parse(proxy_to_use)
|
12
|
+
proxy_user, proxy_password = proxy_uri.userinfo.split(/:/) if proxy_uri.userinfo
|
13
|
+
[proxy_uri.host, proxy_uri.port, proxy_user, proxy_password]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/cfoundry/rest_client.rb
CHANGED
@@ -7,20 +7,10 @@ require "fileutils"
|
|
7
7
|
module CFoundry
|
8
8
|
class RestClient
|
9
9
|
class HTTPFactory
|
10
|
-
def self.create(uri,
|
11
|
-
|
12
|
-
proxy_to_use = (scheme == "http" ? http_proxy : https_proxy)
|
13
|
-
|
14
|
-
if proxy_to_use
|
15
|
-
proxy_uri = URI.parse(proxy_to_use)
|
16
|
-
proxy_user, proxy_pass = proxy_uri.userinfo.split(/:/) if proxy_uri.userinfo
|
17
|
-
http = Net::HTTP::Proxy(proxy_uri.host, proxy_uri.port, proxy_user, proxy_pass).
|
18
|
-
new(uri.host, uri.port)
|
19
|
-
else
|
20
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
21
|
-
end
|
10
|
+
def self.create(uri, proxy_options = [])
|
11
|
+
http = Net::HTTP.new(uri.host, uri.port, *proxy_options)
|
22
12
|
|
23
|
-
if
|
13
|
+
if uri.is_a?(URI::HTTPS)
|
24
14
|
http.use_ssl = true
|
25
15
|
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
26
16
|
end
|
@@ -30,6 +20,7 @@ module CFoundry
|
|
30
20
|
end
|
31
21
|
|
32
22
|
include CFoundry::TraceHelpers
|
23
|
+
include CFoundry::ProxyOptions
|
33
24
|
|
34
25
|
LOG_LENGTH = 10
|
35
26
|
|
@@ -148,7 +139,7 @@ module CFoundry
|
|
148
139
|
|
149
140
|
add_headers(request, headers)
|
150
141
|
|
151
|
-
http = HTTPFactory.create(uri,
|
142
|
+
http = HTTPFactory.create(uri, proxy_options_for(uri))
|
152
143
|
|
153
144
|
# TODO remove this when staging returns streaming responses
|
154
145
|
http.read_timeout = 300
|
data/lib/cfoundry/uaaclient.rb
CHANGED
@@ -3,17 +3,19 @@ require "uaa"
|
|
3
3
|
|
4
4
|
module CFoundry
|
5
5
|
class UAAClient
|
6
|
-
attr_accessor :target, :client_id, :token, :trace
|
6
|
+
attr_accessor :target, :client_id, :token, :trace, :http_proxy, :https_proxy
|
7
7
|
|
8
|
-
def initialize(target, client_id = "cf")
|
8
|
+
def initialize(target, client_id = "cf", options = {})
|
9
9
|
@target = target
|
10
10
|
@client_id = client_id
|
11
|
-
|
11
|
+
@http_proxy = options[:http_proxy]
|
12
|
+
@https_proxy = options[:https_proxy]
|
13
|
+
@uaa_info_client = uaa_info_client_for(target)
|
12
14
|
end
|
13
15
|
|
14
16
|
def prompts
|
15
17
|
wrap_uaa_errors do
|
16
|
-
|
18
|
+
@uaa_info_client.server[:prompts]
|
17
19
|
end
|
18
20
|
end
|
19
21
|
|
@@ -44,7 +46,7 @@ module CFoundry
|
|
44
46
|
|
45
47
|
def password_score(password)
|
46
48
|
wrap_uaa_errors do
|
47
|
-
response =
|
49
|
+
response = uaa_info_client_for(uaa_url).password_strength(password)
|
48
50
|
|
49
51
|
required_score = response[:requiredScore] || 0
|
50
52
|
case (response[:score] || 0)
|
@@ -90,8 +92,20 @@ module CFoundry
|
|
90
92
|
|
91
93
|
private
|
92
94
|
|
95
|
+
def uaa_info_client_for(url)
|
96
|
+
CF::UAA::Info.new(url,
|
97
|
+
:symbolize_keys => true,
|
98
|
+
:http_proxy => http_proxy,
|
99
|
+
:https_proxy => https_proxy
|
100
|
+
)
|
101
|
+
end
|
102
|
+
|
93
103
|
def token_issuer
|
94
|
-
@token_issuer ||= CF::UAA::TokenIssuer.new(target, client_id, nil,
|
104
|
+
@token_issuer ||= CF::UAA::TokenIssuer.new(target, client_id, nil,
|
105
|
+
:symbolize_keys => true,
|
106
|
+
:http_proxy => @http_proxy,
|
107
|
+
:https_proxy => @https_proxy
|
108
|
+
)
|
95
109
|
@token_issuer.logger.level = @trace ? Logger::Severity::TRACE : 1
|
96
110
|
@token_issuer
|
97
111
|
end
|
@@ -104,7 +118,7 @@ module CFoundry
|
|
104
118
|
end
|
105
119
|
|
106
120
|
def uaa_url
|
107
|
-
@uaa_url ||=
|
121
|
+
@uaa_url ||= @uaa_info_client.discover_uaa
|
108
122
|
end
|
109
123
|
|
110
124
|
def authenticate_with_password_grant(credentials)
|
data/lib/cfoundry/version.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe CFoundry::BaseClient do
|
4
|
+
let(:authorization_endpoint) { "http://uaa.example.com" }
|
4
5
|
subject(:client) { CFoundry::BaseClient.new("http://api.example.com") }
|
5
6
|
describe "#request" do
|
6
7
|
before do
|
@@ -104,7 +105,7 @@ describe CFoundry::BaseClient do
|
|
104
105
|
|
105
106
|
describe "UAAClient" do
|
106
107
|
context "with a valid uaa endpoint" do
|
107
|
-
let(:info) { { :authorization_endpoint =>
|
108
|
+
let(:info) { { :authorization_endpoint => authorization_endpoint } }
|
108
109
|
|
109
110
|
before do
|
110
111
|
subject.stub(:info) { info }
|
@@ -134,6 +135,22 @@ describe CFoundry::BaseClient do
|
|
134
135
|
expect(subject.uaa.target).to eq "foo"
|
135
136
|
end
|
136
137
|
end
|
138
|
+
|
139
|
+
context "when proxy is set" do
|
140
|
+
before do
|
141
|
+
subject.http_proxy = 'http-proxy.example.com'
|
142
|
+
subject.https_proxy = 'https-proxy.example.com'
|
143
|
+
end
|
144
|
+
|
145
|
+
it "passes the proxy to the uaa client" do
|
146
|
+
CFoundry::UAAClient.stub(:new).and_call_original
|
147
|
+
subject.uaa
|
148
|
+
expect(CFoundry::UAAClient).to have_received(:new).with(anything, anything, hash_including(
|
149
|
+
http_proxy: 'http-proxy.example.com',
|
150
|
+
https_proxy: 'https-proxy.example.com'
|
151
|
+
))
|
152
|
+
end
|
153
|
+
end
|
137
154
|
end
|
138
155
|
|
139
156
|
describe "#token=" do
|
@@ -219,6 +236,16 @@ describe CFoundry::BaseClient do
|
|
219
236
|
expect(chunks).to eq(["https result"])
|
220
237
|
end
|
221
238
|
|
239
|
+
it "sets proxy options if available" do
|
240
|
+
stub_request(:get, "https://example.com/something")
|
241
|
+
subject.https_proxy = "user:password@https-proxy.example.com:1234"
|
242
|
+
Net::HTTP.stub(:start).and_call_original
|
243
|
+
|
244
|
+
subject.stream_url("https://example.com/something")
|
245
|
+
|
246
|
+
expect(Net::HTTP).to have_received(:start).with(anything, anything, 'https-proxy.example.com', 1234, 'user', 'password', anything)
|
247
|
+
end
|
248
|
+
|
222
249
|
it "raises NotFound if response is 404" do
|
223
250
|
stub_request(:get, "http://example.com/something").to_return(
|
224
251
|
:status => 404, :body => "result")
|
@@ -289,11 +289,10 @@ describe CFoundry::RestClient do
|
|
289
289
|
|
290
290
|
describe CFoundry::RestClient::HTTPFactory do
|
291
291
|
describe ".create" do
|
292
|
-
let(:
|
293
|
-
let(:https_proxy) { '' }
|
292
|
+
let(:proxy_options) { [] }
|
294
293
|
let(:target_uri) { "http://api.example.com" }
|
295
294
|
|
296
|
-
subject { CFoundry::RestClient::HTTPFactory.create(URI.parse(target_uri),
|
295
|
+
subject { CFoundry::RestClient::HTTPFactory.create(URI.parse(target_uri), proxy_options) }
|
297
296
|
|
298
297
|
context "when no proxy URI is set" do
|
299
298
|
it "should return an instance of the plain Net:HTTP class" do
|
@@ -313,7 +312,7 @@ describe CFoundry::RestClient do
|
|
313
312
|
end
|
314
313
|
|
315
314
|
context "when a http proxy URI without user/password is set " do
|
316
|
-
let(:
|
315
|
+
let(:proxy_options) { ["exapmle.com", 8080, nil, nil] }
|
317
316
|
|
318
317
|
it "should return an instance of the proxy class" do
|
319
318
|
expect(subject.proxy?).to be_true
|
@@ -323,7 +322,7 @@ describe CFoundry::RestClient do
|
|
323
322
|
end
|
324
323
|
|
325
324
|
context "when a http proxy URI with user/password is set " do
|
326
|
-
let(:
|
325
|
+
let(:proxy_options) { ["exapmle.com", "8080", "user", "pass"] }
|
327
326
|
|
328
327
|
it "should return an instance of the proxy class" do
|
329
328
|
expect(subject.proxy?).to be_true
|
@@ -331,41 +330,6 @@ describe CFoundry::RestClient do
|
|
331
330
|
expect(subject.proxy_pass).to eql("pass")
|
332
331
|
end
|
333
332
|
end
|
334
|
-
|
335
|
-
context "when a https proxy URI is set and the target is an https URI" do
|
336
|
-
let(:target_uri) { "https://example.com" }
|
337
|
-
let(:https_proxy) { "http://exapmle.com:8080" }
|
338
|
-
|
339
|
-
it "should return an instance of the proxy class" do
|
340
|
-
expect(subject.proxy?).to be_true
|
341
|
-
end
|
342
|
-
end
|
343
|
-
|
344
|
-
context "when a https proxy URI is set and the target is an http URI" do
|
345
|
-
let(:target_uri) { "http://example.com" }
|
346
|
-
let(:https_proxy) { "http://exapmle.com:8080" }
|
347
|
-
|
348
|
-
it "should return an instance of the plain Net:HTTP class" do
|
349
|
-
expect(subject.proxy?).to be_nil
|
350
|
-
end
|
351
|
-
end
|
352
|
-
|
353
|
-
context "when a http proxy URI is set and the target is an https URI" do
|
354
|
-
let(:target_uri) { "https://example.com" }
|
355
|
-
let(:http_proxy) { "http://exapmle.com:8080" }
|
356
|
-
|
357
|
-
it "should return an instance of the plain Net:HTTP class" do
|
358
|
-
expect(subject.proxy?).to be_nil
|
359
|
-
end
|
360
|
-
end
|
361
|
-
|
362
|
-
context "when an invalid proxy URI is set" do
|
363
|
-
let(:http_proxy) { "invalid URI" }
|
364
|
-
|
365
|
-
it "should raise an error" do
|
366
|
-
expect { subject }.to raise_error(URI::InvalidURIError)
|
367
|
-
end
|
368
|
-
end
|
369
333
|
end
|
370
334
|
end
|
371
335
|
|
@@ -25,6 +25,17 @@ EOF
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
describe '#initialize' do
|
29
|
+
it "passes proxy info to the UAA info client" do
|
30
|
+
CF::UAA::Info.stub(:new)
|
31
|
+
CFoundry::UAAClient.new(target, 'cf', http_proxy: 'http-proxy.example.com', https_proxy: 'https-proxy.example.com')
|
32
|
+
expect(CF::UAA::Info).to have_received(:new).with(anything, hash_including(
|
33
|
+
http_proxy: 'http-proxy.example.com',
|
34
|
+
https_proxy: 'https-proxy.example.com'
|
35
|
+
))
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
28
39
|
describe '#prompts' do
|
29
40
|
subject { uaa.prompts }
|
30
41
|
|
@@ -338,6 +349,19 @@ EOF
|
|
338
349
|
uaa.trace = false
|
339
350
|
expect(uaa.send(:token_issuer).logger.level).to eq 1
|
340
351
|
end
|
352
|
+
|
353
|
+
it "passes proxy info to the token issuer" do
|
354
|
+
CF::UAA::TokenIssuer.stub(:new).and_call_original
|
355
|
+
uaa.http_proxy = 'http-proxy.example.com'
|
356
|
+
uaa.https_proxy = 'https-proxy.example.com'
|
357
|
+
|
358
|
+
uaa.send(:token_issuer)
|
359
|
+
|
360
|
+
expect(CF::UAA::TokenIssuer).to have_received(:new).with(anything, anything, anything, hash_including(
|
361
|
+
http_proxy: 'http-proxy.example.com',
|
362
|
+
https_proxy: 'https-proxy.example.com'
|
363
|
+
))
|
364
|
+
end
|
341
365
|
end
|
342
366
|
|
343
367
|
describe "#scim" do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cfoundry
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0
|
4
|
+
version: 4.1.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Cloud Foundry Team
|
@@ -9,11 +10,12 @@ authors:
|
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
13
|
+
date: 2013-08-07 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: activemodel
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
17
19
|
requirements:
|
18
20
|
- - ~>
|
19
21
|
- !ruby/object:Gem::Version
|
@@ -21,6 +23,7 @@ dependencies:
|
|
21
23
|
type: :runtime
|
22
24
|
prerelease: false
|
23
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
24
27
|
requirements:
|
25
28
|
- - ~>
|
26
29
|
- !ruby/object:Gem::Version
|
@@ -28,20 +31,23 @@ dependencies:
|
|
28
31
|
- !ruby/object:Gem::Dependency
|
29
32
|
name: cf-uaa-lib
|
30
33
|
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
31
35
|
requirements:
|
32
36
|
- - ~>
|
33
37
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
38
|
+
version: 2.0.0
|
35
39
|
type: :runtime
|
36
40
|
prerelease: false
|
37
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
38
43
|
requirements:
|
39
44
|
- - ~>
|
40
45
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
46
|
+
version: 2.0.0
|
42
47
|
- !ruby/object:Gem::Dependency
|
43
48
|
name: multi_json
|
44
49
|
requirement: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
45
51
|
requirements:
|
46
52
|
- - ~>
|
47
53
|
- !ruby/object:Gem::Version
|
@@ -49,6 +55,7 @@ dependencies:
|
|
49
55
|
type: :runtime
|
50
56
|
prerelease: false
|
51
57
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
52
59
|
requirements:
|
53
60
|
- - ~>
|
54
61
|
- !ruby/object:Gem::Version
|
@@ -56,6 +63,7 @@ dependencies:
|
|
56
63
|
- !ruby/object:Gem::Dependency
|
57
64
|
name: multipart-post
|
58
65
|
requirement: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
59
67
|
requirements:
|
60
68
|
- - ~>
|
61
69
|
- !ruby/object:Gem::Version
|
@@ -63,6 +71,7 @@ dependencies:
|
|
63
71
|
type: :runtime
|
64
72
|
prerelease: false
|
65
73
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
66
75
|
requirements:
|
67
76
|
- - ~>
|
68
77
|
- !ruby/object:Gem::Version
|
@@ -70,6 +79,7 @@ dependencies:
|
|
70
79
|
- !ruby/object:Gem::Dependency
|
71
80
|
name: rubyzip
|
72
81
|
requirement: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
73
83
|
requirements:
|
74
84
|
- - ~>
|
75
85
|
- !ruby/object:Gem::Version
|
@@ -77,6 +87,7 @@ dependencies:
|
|
77
87
|
type: :runtime
|
78
88
|
prerelease: false
|
79
89
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
80
91
|
requirements:
|
81
92
|
- - ~>
|
82
93
|
- !ruby/object:Gem::Version
|
@@ -84,6 +95,7 @@ dependencies:
|
|
84
95
|
- !ruby/object:Gem::Dependency
|
85
96
|
name: anchorman
|
86
97
|
requirement: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
87
99
|
requirements:
|
88
100
|
- - ! '>='
|
89
101
|
- !ruby/object:Gem::Version
|
@@ -91,6 +103,7 @@ dependencies:
|
|
91
103
|
type: :development
|
92
104
|
prerelease: false
|
93
105
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
94
107
|
requirements:
|
95
108
|
- - ! '>='
|
96
109
|
- !ruby/object:Gem::Version
|
@@ -98,6 +111,7 @@ dependencies:
|
|
98
111
|
- !ruby/object:Gem::Dependency
|
99
112
|
name: factory_girl
|
100
113
|
requirement: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
101
115
|
requirements:
|
102
116
|
- - ! '>='
|
103
117
|
- !ruby/object:Gem::Version
|
@@ -105,6 +119,7 @@ dependencies:
|
|
105
119
|
type: :development
|
106
120
|
prerelease: false
|
107
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
none: false
|
108
123
|
requirements:
|
109
124
|
- - ! '>='
|
110
125
|
- !ruby/object:Gem::Version
|
@@ -112,6 +127,7 @@ dependencies:
|
|
112
127
|
- !ruby/object:Gem::Dependency
|
113
128
|
name: gem-release
|
114
129
|
requirement: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
115
131
|
requirements:
|
116
132
|
- - ! '>='
|
117
133
|
- !ruby/object:Gem::Version
|
@@ -119,6 +135,7 @@ dependencies:
|
|
119
135
|
type: :development
|
120
136
|
prerelease: false
|
121
137
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
122
139
|
requirements:
|
123
140
|
- - ! '>='
|
124
141
|
- !ruby/object:Gem::Version
|
@@ -126,6 +143,7 @@ dependencies:
|
|
126
143
|
- !ruby/object:Gem::Dependency
|
127
144
|
name: json_pure
|
128
145
|
requirement: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
129
147
|
requirements:
|
130
148
|
- - ~>
|
131
149
|
- !ruby/object:Gem::Version
|
@@ -133,6 +151,7 @@ dependencies:
|
|
133
151
|
type: :development
|
134
152
|
prerelease: false
|
135
153
|
version_requirements: !ruby/object:Gem::Requirement
|
154
|
+
none: false
|
136
155
|
requirements:
|
137
156
|
- - ~>
|
138
157
|
- !ruby/object:Gem::Version
|
@@ -140,6 +159,7 @@ dependencies:
|
|
140
159
|
- !ruby/object:Gem::Dependency
|
141
160
|
name: rake
|
142
161
|
requirement: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
143
163
|
requirements:
|
144
164
|
- - ! '>='
|
145
165
|
- !ruby/object:Gem::Version
|
@@ -147,6 +167,7 @@ dependencies:
|
|
147
167
|
type: :development
|
148
168
|
prerelease: false
|
149
169
|
version_requirements: !ruby/object:Gem::Requirement
|
170
|
+
none: false
|
150
171
|
requirements:
|
151
172
|
- - ! '>='
|
152
173
|
- !ruby/object:Gem::Version
|
@@ -154,20 +175,23 @@ dependencies:
|
|
154
175
|
- !ruby/object:Gem::Dependency
|
155
176
|
name: rspec
|
156
177
|
requirement: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
157
179
|
requirements:
|
158
180
|
- - ~>
|
159
181
|
- !ruby/object:Gem::Version
|
160
|
-
version: '2.
|
182
|
+
version: '2.14'
|
161
183
|
type: :development
|
162
184
|
prerelease: false
|
163
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
|
+
none: false
|
164
187
|
requirements:
|
165
188
|
- - ~>
|
166
189
|
- !ruby/object:Gem::Version
|
167
|
-
version: '2.
|
190
|
+
version: '2.14'
|
168
191
|
- !ruby/object:Gem::Dependency
|
169
192
|
name: shoulda-matchers
|
170
193
|
requirement: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
171
195
|
requirements:
|
172
196
|
- - ~>
|
173
197
|
- !ruby/object:Gem::Version
|
@@ -175,6 +199,7 @@ dependencies:
|
|
175
199
|
type: :development
|
176
200
|
prerelease: false
|
177
201
|
version_requirements: !ruby/object:Gem::Requirement
|
202
|
+
none: false
|
178
203
|
requirements:
|
179
204
|
- - ~>
|
180
205
|
- !ruby/object:Gem::Version
|
@@ -182,6 +207,7 @@ dependencies:
|
|
182
207
|
- !ruby/object:Gem::Dependency
|
183
208
|
name: timecop
|
184
209
|
requirement: !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
185
211
|
requirements:
|
186
212
|
- - ~>
|
187
213
|
- !ruby/object:Gem::Version
|
@@ -189,6 +215,7 @@ dependencies:
|
|
189
215
|
type: :development
|
190
216
|
prerelease: false
|
191
217
|
version_requirements: !ruby/object:Gem::Requirement
|
218
|
+
none: false
|
192
219
|
requirements:
|
193
220
|
- - ~>
|
194
221
|
- !ruby/object:Gem::Version
|
@@ -196,6 +223,7 @@ dependencies:
|
|
196
223
|
- !ruby/object:Gem::Dependency
|
197
224
|
name: webmock
|
198
225
|
requirement: !ruby/object:Gem::Requirement
|
226
|
+
none: false
|
199
227
|
requirements:
|
200
228
|
- - ~>
|
201
229
|
- !ruby/object:Gem::Version
|
@@ -203,10 +231,27 @@ dependencies:
|
|
203
231
|
type: :development
|
204
232
|
prerelease: false
|
205
233
|
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
none: false
|
206
235
|
requirements:
|
207
236
|
- - ~>
|
208
237
|
- !ruby/object:Gem::Version
|
209
238
|
version: '1.9'
|
239
|
+
- !ruby/object:Gem::Dependency
|
240
|
+
name: putsinator
|
241
|
+
requirement: !ruby/object:Gem::Requirement
|
242
|
+
none: false
|
243
|
+
requirements:
|
244
|
+
- - ! '>='
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '0'
|
247
|
+
type: :development
|
248
|
+
prerelease: false
|
249
|
+
version_requirements: !ruby/object:Gem::Requirement
|
250
|
+
none: false
|
251
|
+
requirements:
|
252
|
+
- - ! '>='
|
253
|
+
- !ruby/object:Gem::Version
|
254
|
+
version: '0'
|
210
255
|
description:
|
211
256
|
email:
|
212
257
|
- vcap-dev@googlegroups.com
|
@@ -236,6 +281,7 @@ files:
|
|
236
281
|
- lib/cfoundry/chatty_hash.rb
|
237
282
|
- lib/cfoundry/client.rb
|
238
283
|
- lib/cfoundry/concerns/login_helpers.rb
|
284
|
+
- lib/cfoundry/concerns/proxy_options.rb
|
239
285
|
- lib/cfoundry/errors.rb
|
240
286
|
- lib/cfoundry/rest_client.rb
|
241
287
|
- lib/cfoundry/test_support.rb
|
@@ -384,26 +430,33 @@ files:
|
|
384
430
|
- spec/support/test_model_builder.rb
|
385
431
|
homepage: http://github.com/cloudfoundry/cfoundry
|
386
432
|
licenses: []
|
387
|
-
metadata: {}
|
388
433
|
post_install_message:
|
389
434
|
rdoc_options: []
|
390
435
|
require_paths:
|
391
436
|
- lib
|
392
437
|
required_ruby_version: !ruby/object:Gem::Requirement
|
438
|
+
none: false
|
393
439
|
requirements:
|
394
440
|
- - ! '>='
|
395
441
|
- !ruby/object:Gem::Version
|
396
442
|
version: '0'
|
443
|
+
segments:
|
444
|
+
- 0
|
445
|
+
hash: -3532839030076498984
|
397
446
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
447
|
+
none: false
|
398
448
|
requirements:
|
399
|
-
- - ! '
|
449
|
+
- - ! '>='
|
400
450
|
- !ruby/object:Gem::Version
|
401
|
-
version:
|
451
|
+
version: '0'
|
452
|
+
segments:
|
453
|
+
- 0
|
454
|
+
hash: -3532839030076498984
|
402
455
|
requirements: []
|
403
456
|
rubyforge_project: cfoundry
|
404
|
-
rubygems_version:
|
457
|
+
rubygems_version: 1.8.25
|
405
458
|
signing_key:
|
406
|
-
specification_version:
|
459
|
+
specification_version: 3
|
407
460
|
summary: High-level library for working with the Cloud Foundry API.
|
408
461
|
test_files:
|
409
462
|
- spec/cc_api_stub/applications_spec.rb
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
MzcyYjhmZjYxNzg5Yzg5NDFhZDJiZThlZmQzMjdiOGE4ZTg3ODEzMQ==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
MTFlMTk5ODQ5YTQxMTM2NmJkYjQ2YmFkZDRkOTM5ZDhmNmE1N2JjYQ==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
NTUwNTA2ZmRiN2JhM2MzNjIxZWQ5MzJlMzAwMTRmNGFmN2I4OWQ0MmU0MWFl
|
10
|
-
Y2YwOWMxMTk1NGUzOWQ3NjJhODgwOTA5ZjY2Y2E5YjRlODJmMjY2ODQ4MDI5
|
11
|
-
YWYzYjM0MzUwZTkwY2U2NTVjZDNmYjdlNjI1NGY2YTEyZGMxMDQ=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZmMyYTBjMDM0MmNmY2ZjMzVlMzQwY2JmMWY4NDlmMzRjMjlhMzllMzI4N2Uy
|
14
|
-
MWRjNGEyOGM3ZjM4NjZkOGE0NGRkOTFlODkxZWIwMGExYzcyZTU0NTZhMjU4
|
15
|
-
MTRmNWE0NjBlMmZkNDQ1ZWIyMzM2NTlkZmIxMzYxNzIxMmY3M2Q=
|