class Wright::Provider::Group
Group
provider. Used as a base class for {Resource::Group} providers.
Public Instance Methods
create()
click to toggle source
Creates or updates the group.
@return [void]
# File lib/wright/provider/group.rb, line 12 def create unless_uptodate(:create, "group already created: '#{group_name}'") do unless_dry_run("create group: '#{group_name}'") do ensure_group_exists set_members unless members_uptodate? end end end
remove()
click to toggle source
Removes the group.
@return [void]
# File lib/wright/provider/group.rb, line 24 def remove unless_uptodate(:remove, "group already removed: '#{group_name}'") do unless_dry_run("remove group: '#{group_name}'") do remove_group end end end
Private Instance Methods
add_member(_member, _group)
click to toggle source
# File lib/wright/provider/group.rb, line 113 def add_member(_member, _group) fail NotImplementedError end
create_group()
click to toggle source
# File lib/wright/provider/group.rb, line 101 def create_group fail NotImplementedError end
ensure_group_exists()
click to toggle source
# File lib/wright/provider/group.rb, line 50 def ensure_group_exists if group_exists? set_gid unless gid_uptodate? else create_group end end
gid()
click to toggle source
# File lib/wright/provider/group.rb, line 38 def gid resource.gid end
gid_uptodate?()
click to toggle source
# File lib/wright/provider/group.rb, line 82 def gid_uptodate? gid.nil? || group_data.gid == gid end
group_data()
click to toggle source
# File lib/wright/provider/group.rb, line 78 def group_data Wright::Util::User.safe_getgrnam(group_name) end
group_exists?()
click to toggle source
# File lib/wright/provider/group.rb, line 90 def group_exists? !group_data.nil? end
group_name()
click to toggle source
# File lib/wright/provider/group.rb, line 34 def group_name resource.name end
members()
click to toggle source
# File lib/wright/provider/group.rb, line 42 def members resource.members end
members_uptodate?()
click to toggle source
# File lib/wright/provider/group.rb, line 86 def members_uptodate? members.nil? || group_data.mem == members end
remove_group()
click to toggle source
# File lib/wright/provider/group.rb, line 105 def remove_group fail NotImplementedError end
remove_member(_member, _group)
click to toggle source
# File lib/wright/provider/group.rb, line 117 def remove_member(_member, _group) fail NotImplementedError end
set_gid()
click to toggle source
# File lib/wright/provider/group.rb, line 109 def set_gid fail NotImplementedError end
set_members()
click to toggle source
# File lib/wright/provider/group.rb, line 94 def set_members new_members = members - group_data.mem unwanted_members = group_data.mem - members new_members.each { |m| add_member(m, group_name) } unwanted_members.each { |m| remove_member(m, group_name) } end
system_group?()
click to toggle source
# File lib/wright/provider/group.rb, line 46 def system_group? resource.system end
uptodate?(action)
click to toggle source
@api public Checks if the group is up-to-date for a given action.
@param action [Symbol] the action. Currently supports
+:create+ and +:remove+.
@return [Bool] true
if the group is up-to-date and false
otherwise
@raise [ArgumentError] if the action is invalid
# File lib/wright/provider/group.rb, line 67 def uptodate?(action) case action when :create group_exists? && gid_uptodate? && members_uptodate? when :remove !group_exists? else fail ArgumentError, "invalid action '#{action}'" end end