Commit 3b3afe22 by trbs

Add support for Open and NetBSD platforms for user and group modules, including…

Add support for Open and NetBSD platforms for user and group modules, including a new login_class parameter for FreeBSD, OpenBSD and NetBSD.
parent 9122efb2
...@@ -228,13 +228,13 @@ class FreeBsdGroup(Group): ...@@ -228,13 +228,13 @@ class FreeBsdGroup(Group):
cmd = [self.module.get_bin_path('pw', True), 'groupdel', self.name] cmd = [self.module.get_bin_path('pw', True), 'groupdel', self.name]
return self.execute_command(cmd) return self.execute_command(cmd)
def group_add(self,**kwargs): def group_add(self, **kwargs):
cmd = [self.module.get_bin_path('pw', True), 'groupadd', self.name] cmd = [self.module.get_bin_path('pw', True), 'groupadd', self.name]
if self.gid is not None: if self.gid is not None:
cmd.append('-g %d' % int(self.gid)) cmd.append('-g %d' % int(self.gid))
return self.execute_command(cmd) return self.execute_command(cmd)
def group_mod(self,**kwargs): def group_mod(self, **kwargs):
cmd = [self.module.get_bin_path('pw', True), 'groupmod', self.name] cmd = [self.module.get_bin_path('pw', True), 'groupmod', self.name]
info = self.group_info() info = self.group_info()
cmd_len = len(cmd) cmd_len = len(cmd)
...@@ -242,8 +242,94 @@ class FreeBsdGroup(Group): ...@@ -242,8 +242,94 @@ class FreeBsdGroup(Group):
cmd.append('-g %d' % int(self.gid)) cmd.append('-g %d' % int(self.gid))
# modify the group if cmd will do anything # modify the group if cmd will do anything
if cmd_len != len(cmd): if cmd_len != len(cmd):
if self.module.check_mode:
return (True, '', '')
return self.execute_command(cmd)
return (None, '', '')
# ===========================================
class OpenBsdGroup(Group):
"""
This is a OpenBSD Group manipulation class.
This overrides the following methods from the generic class:-
- group_del()
- group_add()
- group_mod()
"""
platform = 'OpenBSD'
distribution = None
GROUPFILE = '/etc/group'
def group_del(self):
cmd = [self.module.get_bin_path('groupdel', True), self.name]
return self.execute_command(cmd)
def group_add(self, **kwargs):
cmd = [self.module.get_bin_path('groupadd', True)]
if self.gid is not None:
cmd.append('-g')
cmd.append('%d' % int(self.gid))
cmd.append(self.name)
return self.execute_command(cmd)
def group_mod(self, **kwargs):
cmd = [self.module.get_bin_path('groupmod', True)]
info = self.group_info()
cmd_len = len(cmd)
if self.gid is not None and int(self.gid) != info[2]:
cmd.append('-g')
cmd.append('%d' % int(self.gid))
if len(cmd) == 1:
return (None, '', '')
if self.module.check_mode:
return (True, '', '')
cmd.append(self.name)
return self.execute_command(cmd)
# ===========================================
class NetBsdGroup(Group):
"""
This is a NetBSD Group manipulation class.
This overrides the following methods from the generic class:-
- group_del()
- group_add()
- group_mod()
"""
platform = 'NetBSD'
distribution = None
GROUPFILE = '/etc/group'
def group_del(self):
cmd = [self.module.get_bin_path('groupdel', True), self.name]
return self.execute_command(cmd) return self.execute_command(cmd)
def group_add(self, **kwargs):
cmd = [self.module.get_bin_path('groupadd', True)]
if self.gid is not None:
cmd.append('-g')
cmd.append('%d' % int(self.gid))
cmd.append(self.name)
return self.execute_command(cmd)
def group_mod(self, **kwargs):
cmd = [self.module.get_bin_path('groupmod', True)]
info = self.group_info()
cmd_len = len(cmd)
if self.gid is not None and int(self.gid) != info[2]:
cmd.append('-g')
cmd.append('%d' % int(self.gid))
if len(cmd) == 1:
return (None, '', '') return (None, '', '')
if self.module.check_mode:
return (True, '', '')
cmd.append(self.name)
return self.execute_command(cmd)
# =========================================== # ===========================================
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment