Knife-Zero doesn't include Berkshelf support, so vendoring everything in the repo is convenient again
49 lines
1.3 KiB
Ruby
49 lines
1.3 KiB
Ruby
# Chef Provider for creating a user and group for Elasticsearch
|
|
class ElasticsearchCookbook::UserProvider < Chef::Provider::LWRPBase
|
|
include ElasticsearchCookbook::Helpers
|
|
|
|
provides :elasticsearch_user
|
|
|
|
def whyrun_supported?
|
|
true # we only use core Chef resources that also support whyrun
|
|
end
|
|
|
|
def action_create
|
|
group_r = group new_resource.groupname do
|
|
gid new_resource.gid
|
|
action :nothing
|
|
system true
|
|
end
|
|
group_r.run_action(:create)
|
|
new_resource.updated_by_last_action(true) if group_r.updated_by_last_action?
|
|
|
|
user_r = user new_resource.username do
|
|
comment new_resource.comment
|
|
shell new_resource.shell
|
|
uid new_resource.uid
|
|
gid new_resource.groupname
|
|
|
|
manage_home false
|
|
action :nothing
|
|
system true
|
|
end
|
|
user_r.run_action(:create)
|
|
new_resource.updated_by_last_action(true) if user_r.updated_by_last_action?
|
|
end
|
|
|
|
def action_remove
|
|
# delete user before deleting the group
|
|
user_r = user new_resource.username do
|
|
action :nothing
|
|
end
|
|
user_r.run_action(:remove)
|
|
new_resource.updated_by_last_action(true) if user_r.updated_by_last_action?
|
|
|
|
group_r = group new_resource.groupname do
|
|
action :nothing
|
|
end
|
|
group_r.run_action(:remove)
|
|
new_resource.updated_by_last_action(true) if group_r.updated_by_last_action?
|
|
end
|
|
end
|