class Seiso::Connector::RestConnector
- Author
-
Willie Wheeler (wwheeler@expedia.com)
- Copyright
-
Copyright © 2014-2015 Expedia, Inc.
- License
-
Apache 2.0
Constants
- HN_ACCEPT
- HN_CONTENT_TYPE
- MT_TEXT_URI_LIST
Public Class Methods
new(host, port, use_ssl, ignore_cert, username, password, media_type)
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 17 def initialize(host, port, use_ssl, ignore_cert, username, password, media_type) @host = host @port = port @use_ssl = use_ssl @ignore_cert = ignore_cert @username = username @password = password @media_type = media_type # FIXME Not secure @verify_mode = OpenSSL::SSL::VERIFY_NONE if @use_ssl end
Public Instance Methods
delete(uri)
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 88 def delete(uri) puts "DELETE #{uri}" request = Net::HTTP::Delete.new uri.request_uri request.basic_auth(@username, @password) do_request(http, request) end
get(uri)
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 30 def get(uri) request = Net::HTTP::Get.new uri.request_uri request[HN_ACCEPT] = @media_type request.basic_auth(@username, @password) do_request(http, request) end
post(uri, resource)
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 37 def post(uri, resource) request = Net::HTTP::Post.new uri.request_uri request[HN_CONTENT_TYPE] = @media_type request.basic_auth(@username, @password) request.body = resource.to_json do_request(http, request) end
post_uri_list(uri, uri_list)
click to toggle source
-
uri: collection resource we’re posting the URI list to
-
uri_list: list of strings, not URI objects
# File lib/seiso/connector/rest_connector.rb, line 47 def post_uri_list(uri, uri_list) request_body = "" uri_list.each do |uri| request_body << "#{uri}\n" end request = Net::HTTP::Post.new uri.request_uri request[HN_CONTENT_TYPE] = MT_TEXT_URI_LIST request.basic_auth(@username, @password) request.body = request_body do_request(http, request) end
put(uri, resource)
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 80 def put(uri, resource) request = Net::HTTP::Put.new uri.request_uri request[HN_CONTENT_TYPE] = @media_type request.basic_auth(@username, @password) request.body = resource.to_json do_request(http, request) end
put_all(uri_resource_pairs)
click to toggle source
Puts all resources using a keepalive connection
# File lib/seiso/connector/rest_connector.rb, line 61 def put_all(uri_resource_pairs) Net::HTTP.start( @host, @port, :use_ssl => @use_ssl, :verify_mode => @verify_mode) do |http| uri_resource_pairs.each do |pair| pair_uri = pair['uri'] pair_resource = pair['resource'] request = Net::HTTP::Put.new pair_uri.request_uri request[HN_CONTENT_TYPE] = @media_type request.basic_auth(@username, @password) request.body = pair_resource.to_json do_request(http, request) end end end
Private Instance Methods
do_request(http, request)
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 105 def do_request(http, request) response = http.request request if response.code.start_with?("4") || response.code.start_with?("5") details = "(#{JSON.parse response.body})" end puts "#{request.method} #{request.path} => #{response.code} #{response.message} #{details}" response end
http()
click to toggle source
# File lib/seiso/connector/rest_connector.rb, line 97 def http # Not sure if I can reuse this, so for now I'm just creating a new one every time. http = Net::HTTP.new(@host, @port) http.use_ssl = @use_ssl http.verify_mode = @verify_mode http end