class Faraday::Response::OSDumper
Public Instance Methods
on_complete(env)
click to toggle source
# File lib/yao/faraday_middlewares.rb, line 81 def on_complete(env) require 'pp' body = if env.response_headers["content-type"].start_with?("application/json") JSON.parse(env.body) else env.body end body = conseal_token_in_body(body) request_headers = conseal_token_in_request_headers(env.request_headers.dup) response_headers= conseal_token_in_response_headers(env.response_headers.dup) params = [ env.url.to_s, body, request_headers, response_headers, env.method, env.status ].map(&:pretty_inspect) $stdout.puts(<<-FMT % params) ================================ OpenStack response inspection: ================================ Requested To: %s Body: %s Request Headers: %s Response Headers: %s Method: %s Status Code: %s ================================ FMT end
Private Instance Methods
conseal_token_in_body(body)
click to toggle source
# File lib/yao/faraday_middlewares.rb, line 123 def conseal_token_in_body(body) # for keystone v2.0 if body.is_a?(Hash) && token = body.dig("access", "token", "id") body["access"]["token"]["id"] = hashed_token(token) end body end
conseal_token_in_request_headers(headers)
click to toggle source
# File lib/yao/faraday_middlewares.rb, line 131 def conseal_token_in_request_headers(headers) if token = headers["X-Auth-Token"] headers["X-Auth-Token"] = hashed_token(token) end headers end
conseal_token_in_response_headers(headers)
click to toggle source
# File lib/yao/faraday_middlewares.rb, line 138 def conseal_token_in_response_headers(headers) if token = headers["x-subject-token"] headers["x-subject-token"] = hashed_token(token) end headers end
hashed_token(token)
click to toggle source
# File lib/yao/faraday_middlewares.rb, line 145 def hashed_token(token) require 'openssl' # This format was based on openstack client. "{SHA256}" + OpenSSL::Digest::SHA256.hexdigest(token) end