class Chef::Provider::HttpRequest

Attributes

http[RW]

Public Instance Methods

action_delete() click to toggle source

Send a DELETE request to new_resource.url

# File lib/chef/provider/http_request.rb, line 108
def action_delete
  converge_by("#{new_resource} DELETE to #{new_resource.url}") do
    body = @http.delete(
      (new_resource.url).to_s,
      new_resource.headers
    )
    new_resource.updated_by_last_action(true)
    logger.info("#{new_resource} DELETE to #{new_resource.url} successful")
    logger.trace("#{new_resource} DELETE request response: #{body}")
  end
end
action_get() click to toggle source

Send a GET request to new_resource.url

# File lib/chef/provider/http_request.rb, line 52
def action_get
  converge_by("#{new_resource} GET to #{new_resource.url}") do

    message = check_message(new_resource.message)
    body = @http.get(
      (new_resource.url).to_s,
      new_resource.headers
    )
    logger.info("#{new_resource} GET to #{new_resource.url} successful")
    logger.trace("#{new_resource} GET request response: #{body}")
  end
end
action_head() click to toggle source

Send a HEAD request to new_resource.url

# File lib/chef/provider/http_request.rb, line 35
def action_head
  message = check_message(new_resource.message)
  # CHEF-4762: we expect a nil return value from Chef::HTTP for a "200 Success" response
  # and false for a "304 Not Modified" response
  modified = @http.head(
    (new_resource.url).to_s,
    new_resource.headers
  )
  logger.info("#{new_resource} HEAD to #{new_resource.url} successful")
  logger.trace("#{new_resource} HEAD request response: #{modified}")
  # :head is usually used to trigger notifications, which converge_by now does
  if modified != false
    converge_by("#{new_resource} HEAD to #{new_resource.url} returned modified, trigger notifications") {}
  end
end
action_patch() click to toggle source

Send a PATCH request to new_resource.url, with the message as the payload

# File lib/chef/provider/http_request.rb, line 66
def action_patch
  converge_by("#{new_resource} PATCH to #{new_resource.url}") do
    message = check_message(new_resource.message)
    body = @http.patch(
      (new_resource.url).to_s,
      message,
      new_resource.headers
    )
    logger.info("#{new_resource} PATCH to #{new_resource.url} successful")
    logger.trace("#{new_resource} PATCH request response: #{body}")
  end
end
action_post() click to toggle source

Send a POST request to new_resource.url, with the message as the payload

# File lib/chef/provider/http_request.rb, line 94
def action_post
  converge_by("#{new_resource} POST to #{new_resource.url}") do
    message = check_message(new_resource.message)
    body = @http.post(
      (new_resource.url).to_s,
      message,
      new_resource.headers
    )
    logger.info("#{new_resource} POST to #{new_resource.url} message: #{message.inspect} successful")
    logger.trace("#{new_resource} POST request response: #{body}")
  end
end
action_put() click to toggle source

Send a PUT request to new_resource.url, with the message as the payload

# File lib/chef/provider/http_request.rb, line 80
def action_put
  converge_by("#{new_resource} PUT to #{new_resource.url}") do
    message = check_message(new_resource.message)
    body = @http.put(
      (new_resource.url).to_s,
      message,
      new_resource.headers
    )
    logger.info("#{new_resource} PUT to #{new_resource.url} successful")
    logger.trace("#{new_resource} PUT request response: #{body}")
  end
end
load_current_resource() click to toggle source
# File lib/chef/provider/http_request.rb, line 30
def load_current_resource
  @http = Chef::HTTP::Simple.new(new_resource.url)
end

Private Instance Methods

check_message(message) click to toggle source
# File lib/chef/provider/http_request.rb, line 122
def check_message(message)
  if message.kind_of?(Proc)
    message.call
  else
    message
  end
end