summaryrefslogtreecommitdiff
path: root/lib/chef/provider
diff options
context:
space:
mode:
authorkaustubh-d <kaustubh@clogeny.com>2013-12-12 04:57:11 -0600
committerkaustubh-d <kaustubh@clogeny.com>2014-07-31 11:13:48 +0530
commitddc266c2ebe3c4b5028865262cc18189e108eb49 (patch)
treefdfb1fd9e2ec8477b56c2e16c8ee5b39200a9135 /lib/chef/provider
parent55a7c9b97b94a49caf8d286f294648827fd42d90 (diff)
downloadchef-ddc266c2ebe3c4b5028865262cc18189e108eb49.tar.gz
aix: fix aix group provider to add/remove group members.
Diffstat (limited to 'lib/chef/provider')
-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|