diff options
author | Tim Smith <tsmith@chef.io> | 2019-07-19 15:40:45 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-19 15:40:45 -0700 |
commit | ee70f2e5794cec20876ccab63aa40b4df698c2b2 (patch) | |
tree | 4bf8105409146d56745f18c0d3215ea8306ae279 | |
parent | fda15afa31772f594fadd995be05fc002821acf8 (diff) | |
parent | f617b243c25d9e68ddfc5ca66e60ae2574f772b4 (diff) | |
download | chef-ee70f2e5794cec20876ccab63aa40b4df698c2b2.tar.gz |
Merge pull request #8747 from tomdoherty/lkm_disable
Implement disable for disabling kernel_modules
-rw-r--r-- | lib/chef/resource/kernel_module.rb | 20 | ||||
-rw-r--r-- | spec/unit/resource/kernel_module_spec.rb | 1 |
2 files changed, 20 insertions, 1 deletions
diff --git a/lib/chef/resource/kernel_module.rb b/lib/chef/resource/kernel_module.rb index 882f9de975..1176990071 100644 --- a/lib/chef/resource/kernel_module.rb +++ b/lib/chef/resource/kernel_module.rb @@ -13,7 +13,7 @@ class Chef class KernelModule < Chef::Resource resource_name :kernel_module - description "Use the kernel_module resource to manage kernel modules on Linux systems. This resource can load, unload, blacklist, install, and uninstall modules." + description "Use the kernel_module resource to manage kernel modules on Linux systems. This resource can load, unload, blacklist, disable, install, and uninstall modules." introduced "14.3" property :modname, String, @@ -92,6 +92,24 @@ class Chef new_resource.run_action(:unload) end + action :disable do + description "Disable a kernel module." + + file "#{new_resource.unload_dir}/disable_#{new_resource.modname}.conf" do + content "install #{new_resource.modname} /bin/false" + notifies :run, "execute[update initramfs]", :delayed + end + + with_run_context :root do + find_resource(:execute, "update initramfs") do + command initramfs_command + action :nothing + end + end + + new_resource.run_action(:unload) + end + action :load do description "Load a kernel module." diff --git a/spec/unit/resource/kernel_module_spec.rb b/spec/unit/resource/kernel_module_spec.rb index 6cbc047e79..9242959bd6 100644 --- a/spec/unit/resource/kernel_module_spec.rb +++ b/spec/unit/resource/kernel_module_spec.rb @@ -36,6 +36,7 @@ describe Chef::Resource::KernelModule do expect { resource.action :install }.not_to raise_error expect { resource.action :uninstall }.not_to raise_error expect { resource.action :blacklist }.not_to raise_error + expect { resource.action :disable }.not_to raise_error expect { resource.action :load }.not_to raise_error expect { resource.action :unload }.not_to raise_error expect { resource.action :delete }.to raise_error(ArgumentError) |