cfoundry 4.0.4.rc2 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- 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=
|