def initialize(end_point, username, password, use_debug=false, preferred_api_versions = CLIENT_API_VERSIONS)
@debug = use_debug
@end_point = end_point
@server_api_versions = []
@username, @password = username, password
debug "Connecting to #{end_point}"
add_headers(headers)
RestClient.proxy = URI.parse(ENV['http_proxy']).to_s if ENV['http_proxy']
begin
debug "Client supports API versions #{preferred_api_versions.join(', ')}"
@client_api_versions = preferred_api_versions
default_request = new_request(:url => @end_point, :method => :get, :headers => @@headers)
@server_api_versions, links = api_info(default_request)
debug "Server supports API versions #{@server_api_versions.join(', ')}"
if api_version_negotiated
unless server_api_version_current?
debug "Client API version #{api_version_negotiated} is not current. Refetching API"
@@headers["Accept"] = "application/json; version=#{api_version_negotiated}"
req = new_request(:url => @end_point, :method => :get, :headers => @@headers)
@server_api_versions, links = api_info req
end
else
warn_about_api_versions
end
rescue RHC::Rest::ResourceNotFoundException => e
raise ApiEndpointNotFound.new(
"The OpenShift server is not responding correctly. Check "\
"that '#{end_point}' is the correct URL for your server. "\
"The server may be offline or misconfigured.")
end
super({:links => links}, use_debug)
end