summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChris Aumann <me@chr4.org>2014-07-08 16:58:06 +0200
committerChris Aumann <me@chr4.org>2014-07-08 16:58:06 +0200
commit8002809642c3e6ede964fabac45d4e17137852f4 (patch)
tree44fb96445f04a308f6c056eab91898efcb7a8644 /lib
parente51545d4af1d1d152bbf651a9898a96dab46c51d (diff)
downloadchef-8002809642c3e6ede964fabac45d4e17137852f4.tar.gz
Add "force" attribute to resource/user, passing "-f" to userdel
This allows removal of logged in users.
Diffstat (limited to 'lib')
-rw-r--r--lib/chef/provider/user/useradd.rb1
-rw-r--r--lib/chef/resource/user.rb9
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/chef/provider/user/useradd.rb b/lib/chef/provider/user/useradd.rb
index 201bcbe542..7ad59a9b5e 100644
--- a/lib/chef/provider/user/useradd.rb
+++ b/lib/chef/provider/user/useradd.rb
@@ -49,6 +49,7 @@ class Chef
def remove_user
command = [ "userdel" ]
command << "-r" if managing_home_dir?
+ command << "-f" if new_resource.force
command << new_resource.username
shell_out!(*command)
end
diff --git a/lib/chef/resource/user.rb b/lib/chef/resource/user.rb
index 357d6d12ea..05c076229f 100644
--- a/lib/chef/resource/user.rb
+++ b/lib/chef/resource/user.rb
@@ -38,6 +38,7 @@ class Chef
@password = nil
@system = false
@manage_home = false
+ @force = false
@non_unique = false
@action = :create
@supports = {
@@ -121,6 +122,14 @@ class Chef
)
end
+ def force(arg=nil)
+ set_or_return(
+ :force,
+ arg,
+ :kind_of => [ TrueClass, FalseClass ]
+ )
+ end
+
def non_unique(arg=nil)
set_or_return(
:non_unique,