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
# 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
# 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