class Chef::Provider::Reboot

Use the reboot resource to reboot a node, a necessary step with some installations on certain platforms. This resource is supported for use on the Microsoft Windows, macOS, and Linux platforms.

In using this resource via notifications, it's important to only use immediate notifications. Delayed notifications produce unintuitive and probably undesired results.

@since 12.0.0

Public Instance Methods

action_cancel() click to toggle source
# File lib/chef/provider/reboot.rb, line 70
def action_cancel
  converge_by("cancel any existing end-of-run reboot request") do
    logger.warn "Reboot canceled: '#{new_resource.name}'"
    node.run_context.cancel_reboot
  end
end
action_reboot_now() click to toggle source
# File lib/chef/provider/reboot.rb, line 62
def action_reboot_now
  converge_by("rebooting the system immediately") do
    logger.warn "Rebooting system immediately, requested by '#{new_resource.name}'"
    request_reboot
    throw :end_client_run_early
  end
end
action_request_reboot() click to toggle source
# File lib/chef/provider/reboot.rb, line 55
def action_request_reboot
  converge_by("request a system reboot to occur if the run succeeds") do
    logger.warn "Reboot requested:'#{new_resource.name}'"
    request_reboot
  end
end
load_current_resource() click to toggle source

@return [void]

# File lib/chef/provider/reboot.rb, line 37
def load_current_resource
  @current_resource ||= Chef::Resource::Reboot.new(new_resource.name)
  current_resource.reason(new_resource.reason)
  current_resource.delay_mins(new_resource.delay_mins)
  current_resource
end
request_reboot() click to toggle source

add a reboot to the node run_context @return [void]

# File lib/chef/provider/reboot.rb, line 46
def request_reboot
  node.run_context.request_reboot(
    :delay_mins => new_resource.delay_mins,
    :reason => new_resource.reason,
    :timestamp => Time.now,
    :requested_by => new_resource.name
    )
end