Class: CFoundry::BaseClient
- Inherits:
-
Object
- Object
- CFoundry::BaseClient
show all
- Extended by:
- Forwardable
- Defined in:
- lib/cfoundry/baseclient.rb
Overview
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(target = "https://api.cloudfoundry.com", token = nil) ⇒ BaseClient
Returns a new instance of BaseClient.
18
19
20
21
22
23
|
# File 'lib/cfoundry/baseclient.rb', line 18
def initialize(target = "https://api.cloudfoundry.com", token = nil)
@rest_client = CFoundry::RestClient.new(target, token)
self.trace = false
self.backtrace = false
self.log = false
end
|
Instance Attribute Details
#rest_client ⇒ Object
Returns the value of attribute rest_client.
12
13
14
|
# File 'lib/cfoundry/baseclient.rb', line 12
def rest_client
@rest_client
end
|
Instance Method Details
#delete(*args) ⇒ Object
67
68
69
|
# File 'lib/cfoundry/baseclient.rb', line 67
def delete(*args)
request("DELETE", *args)
end
|
#get(*args) ⇒ Object
63
64
65
|
# File 'lib/cfoundry/baseclient.rb', line 63
def get(*args)
request("GET", *args)
end
|
#info ⇒ Object
59
60
61
|
# File 'lib/cfoundry/baseclient.rb', line 59
def info
get("info", :accept => :json)
end
|
#password_score(password) ⇒ Object
40
41
42
|
# File 'lib/cfoundry/baseclient.rb', line 40
def password_score(password)
uaa ? uaa.password_score(password) : :unknown
end
|
#post(*args) ⇒ Object
71
72
73
|
# File 'lib/cfoundry/baseclient.rb', line 71
def post(*args)
request("POST", *args)
end
|
#put(*args) ⇒ Object
75
76
77
|
# File 'lib/cfoundry/baseclient.rb', line 75
def put(*args)
request("PUT", *args)
end
|
#refresh_token! ⇒ Object
94
95
96
|
# File 'lib/cfoundry/baseclient.rb', line 94
def refresh_token!
self.token = uaa.try_to_refresh_token!
end
|
#request(method, *args) ⇒ Object
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/cfoundry/baseclient.rb', line 79
def request(method, *args)
if needs_token_refresh?
token. = nil
refresh_token!
end
path, options = normalize_arguments(args)
request, response = request_raw(method, path, options)
handle_response(response, options, request)
end
|
#request_raw(method, path, options) ⇒ Object
90
91
92
|
# File 'lib/cfoundry/baseclient.rb', line 90
def request_raw(method, path, options)
@rest_client.request(method, path, options)
end
|
#stream_url(url, &blk) ⇒ Object
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
# File 'lib/cfoundry/baseclient.rb', line 98
def stream_url(url, &blk)
uri = URI.parse(url)
Net::HTTP.start(uri.host, uri.port) do |http|
http.read_timeout = 5
req = Net::HTTP::Get.new(uri.request_uri)
req["Authorization"] = token. if token
http.request(req) do |response|
case response
when Net::HTTPOK
response.read_body(&blk)
when Net::HTTPNotFound
raise CFoundry::NotFound.new(response.body, 404)
when Net::HTTPForbidden
raise CFoundry::Denied.new(response.body, 403)
else
raise CFoundry::BadResponse.new(response.body, response.code)
end
end
end
end
|
#token=(token) ⇒ Object
44
45
46
47
48
49
50
51
|
# File 'lib/cfoundry/baseclient.rb', line 44
def token=(token)
if token.is_a?(String)
token = CFoundry::AuthToken.new(token)
end
@rest_client.token = token
@uaa.token = token if @uaa
end
|
#trace=(trace) ⇒ Object
53
54
55
56
|
# File 'lib/cfoundry/baseclient.rb', line 53
def trace=(trace)
@rest_client.trace = trace
@uaa.trace = trace if @uaa
end
|
#uaa ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/cfoundry/baseclient.rb', line 25
def uaa
@uaa ||= begin
endpoint = info[:authorization_endpoint]
if endpoint
uaa = CFoundry::UAAClient.new(endpoint)
uaa.trace = trace
uaa.token = token
uaa
else
nil
end
end
end
|