diff options
Diffstat (limited to 'lib/chef/provider/group')
-rw-r--r-- | lib/chef/provider/group/aix.rb | 2 | ||||
-rw-r--r-- | lib/chef/provider/group/dscl.rb | 9 | ||||
-rw-r--r-- | lib/chef/provider/group/groupadd.rb | 1 | ||||
-rw-r--r-- | lib/chef/provider/group/groupmod.rb | 2 | ||||
-rw-r--r-- | lib/chef/provider/group/pw.rb | 6 | ||||
-rw-r--r-- | lib/chef/provider/group/suse.rb | 4 | ||||
-rw-r--r-- | lib/chef/provider/group/usermod.rb | 1 | ||||
-rw-r--r-- | lib/chef/provider/group/windows.rb | 2 |
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) |