summaryrefslogtreecommitdiff
path: root/lib/chef/provider/group
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/provider/group')
-rw-r--r--lib/chef/provider/group/aix.rb2
-rw-r--r--lib/chef/provider/group/dscl.rb9
-rw-r--r--lib/chef/provider/group/groupadd.rb1
-rw-r--r--lib/chef/provider/group/groupmod.rb2
-rw-r--r--lib/chef/provider/group/pw.rb6
-rw-r--r--lib/chef/provider/group/suse.rb4
-rw-r--r--lib/chef/provider/group/usermod.rb1
-rw-r--r--lib/chef/provider/group/windows.rb2
8 files changed, 17 insertions, 10 deletions
diff --git a/lib/chef/provider/group/aix.rb b/lib/chef/provider/group/aix.rb
index 72bfc76d97..aa4d8ba4c4 100644
--- a/lib/chef/provider/group/aix.rb
+++ b/lib/chef/provider/group/aix.rb
@@ -54,6 +54,7 @@ class Chef
def set_members(members)
return if members.empty?
+
shell_out!("chgrpmem", "-m", "=", members.join(","), new_resource.group_name)
end
@@ -65,6 +66,7 @@ class Chef
opts = []
{ gid: "id" }.sort_by { |a| a[0] }.each do |field, option|
next unless current_resource.send(field) != new_resource.send(field)
+
if new_resource.send(field)
logger.trace("#{new_resource} setting #{field} to #{new_resource.send(field)}")
opts << "#{option}=#{new_resource.send(field)}"
diff --git a/lib/chef/provider/group/dscl.rb b/lib/chef/provider/group/dscl.rb
index a5c4d27ddb..decad69e40 100644
--- a/lib/chef/provider/group/dscl.rb
+++ b/lib/chef/provider/group/dscl.rb
@@ -40,6 +40,7 @@ class Chef
return "" if ( args.first =~ /^delete/ ) && ( result[1].exitstatus != 0 )
raise(Chef::Exceptions::Group, "dscl error: #{result.inspect}") unless result[1].exitstatus == 0
raise(Chef::Exceptions::Group, "dscl error: #{result.inspect}") if result[2] =~ /No such key: /
+
result[2]
end
@@ -88,6 +89,7 @@ class Chef
def gid_used?(gid)
return false unless gid
+
search_gids = safe_dscl("search", "/Groups", "PrimaryGroupID", gid.to_s)
# dscl -search should not return anything if the gid doesn't exist,
@@ -99,13 +101,14 @@ class Chef
def set_gid
new_resource.gid(get_free_gid) if [nil, ""].include? new_resource.gid
raise(Chef::Exceptions::Group, "gid is already in use") if gid_used?(new_resource.gid)
+
safe_dscl("create", "/Groups/#{new_resource.group_name}", "PrimaryGroupID", new_resource.gid)
end
def set_members
# First reset the memberships if the append is not set
unless new_resource.append
- logger.trace("#{new_resource} removing group members #{current_resource.members.join(' ')}") unless current_resource.members.empty?
+ logger.trace("#{new_resource} removing group members #{current_resource.members.join(" ")}") unless current_resource.members.empty?
safe_dscl("create", "/Groups/#{new_resource.group_name}", "GroupMembers", "") # clear guid list
safe_dscl("create", "/Groups/#{new_resource.group_name}", "GroupMembership", "") # clear user list
current_resource.members([ ])
@@ -118,7 +121,7 @@ class Chef
members_to_be_added << member unless current_resource.members.include?(member)
end
unless members_to_be_added.empty?
- logger.trace("#{new_resource} setting group members #{members_to_be_added.join(', ')}")
+ logger.trace("#{new_resource} setting group members #{members_to_be_added.join(", ")}")
safe_dscl("append", "/Groups/#{new_resource.group_name}", "GroupMembership", *members_to_be_added)
end
end
@@ -130,7 +133,7 @@ class Chef
members_to_be_removed << member if current_resource.members.include?(member)
end
unless members_to_be_removed.empty?
- logger.trace("#{new_resource} removing group members #{members_to_be_removed.join(', ')}")
+ logger.trace("#{new_resource} removing group members #{members_to_be_removed.join(", ")}")
safe_dscl("delete", "/Groups/#{new_resource.group_name}", "GroupMembership", *members_to_be_removed)
end
end
diff --git a/lib/chef/provider/group/groupadd.rb b/lib/chef/provider/group/groupadd.rb
index dd99a1c49a..eca104b565 100644
--- a/lib/chef/provider/group/groupadd.rb
+++ b/lib/chef/provider/group/groupadd.rb
@@ -111,6 +111,7 @@ class Chef
{ gid: "-g" }.sort_by { |a| a[0] }.each do |field, option|
next unless current_resource.send(field) != new_resource.send(field)
next unless new_resource.send(field)
+
opts << option
opts << new_resource.send(field)
logger.trace("#{new_resource} set #{field} to #{new_resource.send(field)}")
diff --git a/lib/chef/provider/group/groupmod.rb b/lib/chef/provider/group/groupmod.rb
index ac033e607d..c560e55f99 100644
--- a/lib/chef/provider/group/groupmod.rb
+++ b/lib/chef/provider/group/groupmod.rb
@@ -84,7 +84,7 @@ class Chef
# Adds a list of usernames to the group using `user mod`
def add_group_members(members)
- logger.trace("#{new_resource} adding members #{members.join(', ')}") unless members.empty?
+ logger.trace("#{new_resource} adding members #{members.join(", ")}") unless members.empty?
members.each do |user|
shell_out!("user", "mod", "-G", new_resource.group_name, user)
end
diff --git a/lib/chef/provider/group/pw.rb b/lib/chef/provider/group/pw.rb
index 2a1f294bde..c018de8d4d 100644
--- a/lib/chef/provider/group/pw.rb
+++ b/lib/chef/provider/group/pw.rb
@@ -44,7 +44,7 @@ class Chef
# new or existing group. Because pw groupadd does not support the -m
# and -d options used by manage_group, we treat group creation as a
# special case and use -M.
- logger.trace("#{new_resource} setting group members: #{new_resource.members.join(',')}")
+ logger.trace("#{new_resource} setting group members: #{new_resource.members.join(",")}")
command += [ "-M", new_resource.members.join(",") ]
end
@@ -119,12 +119,12 @@ class Chef
end
unless members_to_be_added.empty?
- logger.trace("#{new_resource} adding group members: #{members_to_be_added.join(',')}")
+ logger.trace("#{new_resource} adding group members: #{members_to_be_added.join(",")}")
opts << [ "-m", members_to_be_added.join(",") ]
end
unless members_to_be_removed.empty?
- logger.trace("#{new_resource} removing group members: #{members_to_be_removed.join(',')}")
+ logger.trace("#{new_resource} removing group members: #{members_to_be_removed.join(",")}")
opts << [ "-d", members_to_be_removed.join(",") ]
end
diff --git a/lib/chef/provider/group/suse.rb b/lib/chef/provider/group/suse.rb
index f17c1fc005..7bd9700a15 100644
--- a/lib/chef/provider/group/suse.rb
+++ b/lib/chef/provider/group/suse.rb
@@ -45,8 +45,8 @@ class Chef
false
end
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"
+ 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
diff --git a/lib/chef/provider/group/usermod.rb b/lib/chef/provider/group/usermod.rb
index 79a774a4c3..b4e93580ff 100644
--- a/lib/chef/provider/group/usermod.rb
+++ b/lib/chef/provider/group/usermod.rb
@@ -59,6 +59,7 @@ class Chef
unless new_resource.action.include?(:create)
raise Chef::Exceptions::UnsupportedAction, "Setting members directly is not supported by #{self}"
end
+
members.each do |member|
add_member(member)
end
diff --git a/lib/chef/provider/group/windows.rb b/lib/chef/provider/group/windows.rb
index fc4d7df96b..6dda6a7cc2 100644
--- a/lib/chef/provider/group/windows.rb
+++ b/lib/chef/provider/group/windows.rb
@@ -90,7 +90,7 @@ class Chef
end
def locally_qualified_name(account_name)
- account_name.include?("\\") ? account_name : "#{ENV['COMPUTERNAME']}\\#{account_name}"
+ account_name.include?("\\") ? account_name : "#{ENV["COMPUTERNAME"]}\\#{account_name}"
end
def validate_member!(member)