Last active
April 17, 2019 08:34
-
-
Save NAshwini/8d73a8d708857b1759d25ed4b88be758 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ git diff | |
diff --git a/attributes/default.rb b/attributes/default.rb | |
index 031205e..865ccef 100644 | |
--- a/attributes/default.rb | |
+++ b/attributes/default.rb | |
@@ -46,3 +46,6 @@ default['chef_client_updater']['product_name'] = nil | |
# download URL for Sysinternals handle.zip (Windows only) | |
default['chef_client_updater']['handle_zip_download_url'] = nil | |
+ | |
+# The Eventlog service will be restarted immediately prior to cleanup broken chef to release any open file locks. | |
+default['chef_client_updater']['event_log_service_restart'] = true | |
diff --git a/providers/default.rb b/providers/default.rb | |
index db75b4f..907a2f3 100644 | |
--- a/providers/default.rb | |
+++ b/providers/default.rb | |
@@ -243,6 +243,12 @@ def cleanup | |
FileUtils.rm_rf chef_upgrade_log | |
end | |
end | |
+ if ::File.exist?(chef_broken_dir) && new_resource.event_log_service_restart | |
+ event_log_ps_code | |
+ converge_by("remove #{chef_broken_dir} from previous chef-client run") do | |
+ FileUtils.rm_rf chef_broken_dir | |
+ end | |
+ end | |
# When running under init this cron job is created after an update | |
cron 'chef_client_updater' do | |
action :delete | |
@@ -365,6 +371,17 @@ def open_handle_functions | |
EOH | |
end | |
+def event_log_ps_code | |
+ powershell_script 'name' do | |
+ code <<-EOH | |
+ $windows_kernel_version = (Get-WmiObject -class Win32_OperatingSystem).Version | |
+ if (-Not ($windows_kernel_version.Contains('6.0') -or $windows_kernel_version.Contains('6.1'))) { | |
+ Get-Service EventLog | Restart-Service -Force | |
+ } | |
+ EOH | |
+ end | |
+end | |
+ | |
def execute_install_script(install_script) | |
if windows? | |
cur_version = Mixlib::Versioning.parse(current_version) | |
@@ -407,10 +424,6 @@ def execute_install_script(install_script) | |
Destroy-OpenChefHandles | |
} | |
- $windows_kernel_version = (Get-WmiObject -class Win32_OperatingSystem).Version | |
- if (-Not ($windows_kernel_version.Contains('6.0') -or $windows_kernel_version.Contains('6.1'))) { | |
- Get-Service EventLog | Restart-Service -Force | |
- } | |
Remove-Item "#{chef_install_dir}" -Recurse -Force | |
diff --git a/recipes/default.rb b/recipes/default.rb | |
index 6902719..8cf19a5 100644 | |
--- a/recipes/default.rb | |
+++ b/recipes/default.rb | |
@@ -27,4 +27,5 @@ chef_client_updater 'update chef-client' do | |
upgrade_delay node['chef_client_updater']['upgrade_delay'] unless node['chef_client_updater']['upgrade_delay'].nil? | |
product_name node['chef_client_updater']['product_name'] if node['chef_client_updater']['product_name'] | |
handle_zip_download_url node['chef_client_updater']['handle_zip_download_url'] if node['chef_client_updater']['handle_zip_download_url'] | |
+ event_log_service_restart node['chef_client_updater']['event_log_service_restart'] | |
end | |
diff --git a/resources/default.rb b/resources/default.rb | |
index e396e80..37a3bb3 100644 | |
--- a/resources/default.rb | |
+++ b/resources/default.rb | |
@@ -45,3 +45,4 @@ attribute :upgrade_delay, kind_of: Integer, default: 60 | |
attribute :product_name, kind_of: String, default: 'chef' | |
attribute :rubygems_url, kind_of: String | |
attribute :handle_zip_download_url, kind_of: String, default: 'https://download.sysinternals.com/files/Handle.zip' | |
+attribute :event_log_service_restart, kind_of: [TrueClass, FalseClass], default: true |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment