Class: Chef::ServerAPI

Inherits:
HTTP
  • Object
show all
Defined in:
lib/chef/server_api.rb

Instance Attribute Summary

Attributes inherited from HTTP

#keepalives, #middlewares, #options, #redirect_limit, #sign_on_redirect, #url

Instance Method Summary collapse

Methods inherited from HTTP

#delete, #get, #head, #http_client, #last_response, middlewares, #post, #put, #request, #streaming_request, #streaming_request_with_progress, use

Constructor Details

#initialize(url = Chef::Config[:chef_server_url], options = {}) ⇒ ServerAPI


32
33
34
35
36
37
38
# File 'lib/chef/server_api.rb', line 32

def initialize(url = Chef::Config[:chef_server_url], options = {})
  options[:client_name] ||= Chef::Config[:node_name]
  options[:signing_key_filename] ||= Chef::Config[:client_key] unless options[:raw_key]
  options[:signing_key_filename] = nil if chef_zero_uri?(url)
  options[:inflate_json_class] = false
  super(url, options)
end

Instance Method Details

#raw_request(method, path, headers = {}, data = false) ⇒ Object

Makes an HTTP request to +path+ with the given +method+, +headers+, and +data+ (if applicable). Does not apply any middleware, besides that needed for Authentication.


62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/chef/server_api.rb', line 62

def raw_request(method, path, headers = {}, data = false)
  url = create_url(path)
  method, url, headers, data = Chef::HTTP::Authenticator.new(options).handle_request(method, url, headers, data)
  method, url, headers, data = Chef::HTTP::RemoteRequestID.new(options).handle_request(method, url, headers, data)
  response, rest_request, return_value = send_http_request(method, url, headers, data)
  response.error! unless success_response?(response)
  return_value
rescue Exception => exception
  log_failed_request(response, return_value) unless response.nil?

  if exception.respond_to?(:chef_rest_request=)
    exception.chef_rest_request = rest_request
  end
  raise
end