class Chef::Provider::Group::Suse
Public Instance Methods
add_member(member)
click to toggle source
# File lib/chef/provider/group/suse.rb, line 67 def add_member(member) shell_out!("groupmod", "-A", member, new_resource.group_name) end
define_resource_requirements()
click to toggle source
Calls superclass method
Chef::Provider::Group::Groupadd#define_resource_requirements
# File lib/chef/provider/group/suse.rb, line 32 def define_resource_requirements super requirements.assert(:all_actions) do |a| a.assertion { ::File.exist?("/usr/sbin/groupmod") } a.failure_message Chef::Exceptions::Group, "Could not find binary /usr/sbin/groupmod for #{new_resource.name}" # No whyrun alternative: this component should be available in the base install of any given system that uses it end requirements.assert(:create, :manage, :modify) do |a| a.assertion do to_add(new_resource.members).all? { |member| Etc.getpwnam(member) } rescue false end a.failure_message Chef::Exceptions::Group, "Could not add users #{to_add(new_resource.members).join(", ")} to #{new_resource.group_name}: one of these users does not exist" a.whyrun "Could not find one of these users: #{to_add(new_resource.members).join(", ")}. Assuming it will be created by a prior step" end end
load_current_resource()
click to toggle source
Calls superclass method
Chef::Provider::Group::Groupadd#load_current_resource
# File lib/chef/provider/group/suse.rb, line 28 def load_current_resource super end
remove_member(member)
click to toggle source
# File lib/chef/provider/group/suse.rb, line 75 def remove_member(member) shell_out!("groupmod", "-R", member, new_resource.group_name) end
set_members(members)
click to toggle source
# File lib/chef/provider/group/suse.rb, line 53 def set_members(members) to_remove(members).each do |member| remove_member(member) end to_add(members).each do |member| add_member(member) end end
to_add(members)
click to toggle source
# File lib/chef/provider/group/suse.rb, line 63 def to_add(members) members - current_resource.members end
to_remove(members)
click to toggle source
# File lib/chef/provider/group/suse.rb, line 71 def to_remove(members) current_resource.members - members end