Module: Chef::DSL::RebootPending
- Includes:
- PlatformIntrospection, RegistryHelper
- Included in:
- Recipe, Platform::Rebooter, Resource
- Defined in:
- lib/chef/dsl/reboot_pending.rb
Instance Method Summary collapse
-
#reboot_pending? ⇒ Boolean
Returns true if the system needs a reboot or is expected to reboot Note that we will silently miss any other platform-specific reboot notices besides Windows+Ubuntu.
Methods included from PlatformIntrospection
#older_than_win_2012_or_8?, #platform?, #platform_family?, #value_for_platform, #value_for_platform_family
Methods included from RegistryHelper
#registry_data_exists?, #registry_get_subkeys, #registry_get_values, #registry_has_subkeys?, #registry_key_exists?, #registry_value_exists?
Instance Method Details
#reboot_pending? ⇒ Boolean
Returns true if the system needs a reboot or is expected to reboot Note that we will silently miss any other platform-specific reboot notices besides Windows+Ubuntu.
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/chef/dsl/reboot_pending.rb', line 31 def reboot_pending? # don't break when used as a mixin in contexts without #node (e.g. specs). if respond_to?(:node, true) && node.run_context.reboot_requested? true elsif platform?("windows") # PendingFileRenameOperations contains pairs (REG_MULTI_SZ) of filenames that cannot be updated # due to a file being in use (usually a temporary file and a system file) # \??\c:\temp\test.sys!\??\c:\winnt\system32\test.sys # http://technet.microsoft.com/en-us/library/cc960241.aspx registry_value_exists?("HKLM\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", { name: "PendingFileRenameOperations" }) || # RebootRequired key contains Update IDs with a value of 1 if they require a reboot. # The existence of RebootRequired alone is sufficient on my Windows 8.1 workstation in Windows Update registry_key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired') || # Vista + Server 2008 and newer may have reboots pending from CBS registry_key_exists?('HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending') elsif platform_family?("debian") File.exist?("/var/run/reboot-required") else false end end |