diff --git a/src/python/dm/common/utility/ldapLinuxPlatformUtility.py b/src/python/dm/common/utility/ldapLinuxPlatformUtility.py index 4db4845577f4b25d4d44ae666ed51701a4b01f98..0b5a06ae18d00a768f553b7876cd516c2b6f7542 100755 --- a/src/python/dm/common/utility/ldapLinuxPlatformUtility.py +++ b/src/python/dm/common/utility/ldapLinuxPlatformUtility.py @@ -165,10 +165,25 @@ class LdapLinuxPlatformUtility: logger.error('Could not add user %s to group %s: %s' % (username, groupName, ex)) raise InternalError(exception=ex) + @classmethod + def createLocalGroup(cls, name): + """ Create local group if it does not exist. """ + logger = cls.getLogger() + try: + group = grp.getgrnam(name) + logger.debug('Group %s already exists' % name) + return + except KeyError, ex: + # ok, we need to create group + pass + logger.debug('Creating group %s' % name) + cmd = '%s %s' % (cls.GROUPADD_CMD, name) + cls.executeSudoCommand(cmd) @classmethod def addLocalUserToGroup(cls, username, groupName): """ Add local user to group. """ + createLocalGroup(groupName) logger = cls.getLogger() logger.debug('Adding local user %s to group %s' % (username, groupName)) cmd = '%s -a %s %s' % (cls.GPASSWD_CMD, username, groupName)