summaryrefslogtreecommitdiff
path: root/lib/chef/provider/group/aix.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/chef/provider/group/aix.rb')
-rw-r--r--lib/chef/provider/group/aix.rb19
1 files changed, 17 insertions, 2 deletions
diff --git a/lib/chef/provider/group/aix.rb b/lib/chef/provider/group/aix.rb
index 9dedef351a..6ac9d03357 100644
--- a/lib/chef/provider/group/aix.rb
+++ b/lib/chef/provider/group/aix.rb
@@ -16,16 +16,18 @@
# limitations under the License.
#
-require 'chef/provider/group/usermod'
+require 'chef/provider/group/groupadd'
+require 'chef/mixin/shell_out'
class Chef
class Provider
class Group
- class Aix < Chef::Provider::Group::Usermod
+ class Aix < Chef::Provider::Group::Groupadd
def required_binaries
[ "/usr/bin/mkgroup",
"/usr/bin/chgroup",
+ "/usr/bin/chgrpmem",
"/usr/sbin/rmgroup" ]
end
@@ -51,6 +53,19 @@ class Chef
run_command(:command => "rmgroup #{@new_resource.group_name}")
end
+ def add_member(member)
+ shell_out!("chgrpmem -m + #{member} #{@new_resource.group_name}")
+ end
+
+ def set_members(members)
+ return if members.empty?
+ shell_out!("chgrpmem -m = #{members.join(',')} #{@new_resource.group_name}")
+ end
+
+ def remove_member(member)
+ shell_out!("chgrpmem -m - #{member} #{@new_resource.group_name}")
+ end
+
def set_options
opts = ""
{ :gid => "id" }.sort { |a,b| a[0] <=> b[0] }.each do |field, option|