Class: Chef::Provider::Reboot

Inherits:
Chef::Provider show all
Defined in:
lib/chef/provider/reboot.rb

Overview

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

Instance Attribute Summary

Attributes inherited from Chef::Provider

#action, #cookbook_name, #current_resource, #new_resource, #recipe_name, #run_context

Instance Method Summary collapse

Methods inherited from Chef::Provider

action, #action_nothing, #check_resource_semantics!, #cleanup_after_converge, #compile_and_converge_action, #converge_by, #converge_if_changed, #define_resource_requirements, #events, include_resource_dsl?, include_resource_dsl_module, #initialize, #node, #process_resource_requirements, provides, provides?, #requirements, #resource_collection, #resource_updated?, #run_action, #set_updated_status, supports?, use_inline_resources, #whyrun_mode?, #whyrun_supported?

Methods included from Mixin::Provides

#provided_as, #provides, #provides?

Methods included from Mixin::DescendantsTracker

#descendants, descendants, direct_descendants, #direct_descendants, find_descendants_by_name, #find_descendants_by_name, #inherited, store_inherited

Methods included from Mixin::LazyModuleInclude

#descendants, #include, #included

Methods included from Mixin::NotifyingBlock

#notifying_block, #subcontext_block

Methods included from DSL::DeclareResource

#build_resource, #declare_resource, #delete_resource, #delete_resource!, #edit_resource, #edit_resource!, #find_resource, #find_resource!, #with_run_context

Methods included from Mixin::ShellOut

#a_to_s, #clean_array, #shell_out, #shell_out!, #shell_out_compact, #shell_out_compact!, #shell_out_compact_timeout, #shell_out_compact_timeout!, #shell_out_with_systems_locale, #shell_out_with_systems_locale!

Methods included from Mixin::PathSanity

#enforce_path_sanity, #sanitized_path

Methods included from Mixin::PowershellOut

#powershell_out, #powershell_out!

Methods included from Mixin::WindowsArchitectureHelper

#assert_valid_windows_architecture!, #disable_wow64_file_redirection, #forced_32bit_override_required?, #is_i386_process_on_x86_64_windows?, #node_supports_windows_architecture?, #node_windows_architecture, #restore_wow64_file_redirection, #valid_windows_architecture?, #with_os_architecture, #wow64_architecture_override_required?, #wow64_directory

Methods included from DSL::PlatformIntrospection

#docker?, #platform?, #platform_family?, #value_for_platform, #value_for_platform_family

Constructor Details

This class inherits a constructor from Chef::Provider

Instance Method Details

#action_cancelObject

Since:

  • 12.0.0



70
71
72
73
74
75
# File 'lib/chef/provider/reboot.rb', line 70

def action_cancel
  converge_by("cancel any existing end-of-run reboot request") do
    Chef::Log.warn "Reboot canceled: '#{new_resource.name}'"
    node.run_context.cancel_reboot
  end
end

#action_reboot_nowObject

Since:

  • 12.0.0



62
63
64
65
66
67
68
# File 'lib/chef/provider/reboot.rb', line 62

def action_reboot_now
  converge_by("rebooting the system immediately") do
    Chef::Log.warn "Rebooting system immediately, requested by '#{new_resource.name}'"
    request_reboot
    throw :end_client_run_early
  end
end

#action_request_rebootObject

Since:

  • 12.0.0



55
56
57
58
59
60
# 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
    Chef::Log.warn "Reboot requested:'#{new_resource.name}'"
    request_reboot
  end
end

#load_current_resourcevoid

This method returns an undefined value.

Since:

  • 12.0.0



37
38
39
40
41
42
# 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_rebootvoid

This method returns an undefined value.

add a reboot to the node run_context

Since:

  • 12.0.0



46
47
48
49
50
51
52
53
# 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