Add group membership management functions

Add functions to list group members and add and remove users from
groups.

Change-Id: Id5d8915f2c0bf6f6057b414785b8ec1b18e810f2
This commit is contained in:
Clark Boylan 2017-09-22 10:24:53 -07:00
parent eb6588734c
commit 01a634014e
1 changed files with 30 additions and 0 deletions

View File

@ -211,6 +211,36 @@ class Gerrit(object):
out, err = self._ssh(cmd)
return err
def listMembers(self, group, recursive=False):
cmd = 'gerrit ls-members'
if recursive:
cmd = '%s --recursive' % cmd
cmd = '%s "%s"' % (cmd, group)
out, err = self._ssh(cmd)
ret = []
rows = out.split('\n')
if len(rows) > 1:
keys = rows[0].split('\t')
for row in rows[1:]:
ret.append(dict(zip(keys, row.split('\t'))))
return ret
def _setMember(self, verb, group, member):
cmd = 'gerrit set-members'
if verb == 'add':
cmd = '%s --add "%s"' % (cmd, member)
elif verb == 'remove':
cmd = '%s --remove "%s"' % (cmd, member)
cmd = '%s "%s"' % (cmd, group)
out, err = self._ssh(cmd)
return err
def addMember(self, group, member):
self._setMember('add', group, member)
def removeMember(self, group, member):
self._setMember('remove', group, member)
def createProject(self, project, require_change_id=True, empty_repo=False,
description=None):
cmd = 'gerrit create-project'