Merge branch 'master' of ssh://git.fedorahosted.org/git/fedora-infrastructure
This commit is contained in:
commit
7e9dade9f9
2 changed files with 48 additions and 10 deletions
|
@ -200,13 +200,8 @@ class MakeShellAccounts(BaseClient):
|
||||||
print >> sys.stderr, 'Could not determine shell for %s. Defaulting to /sbin/nologin' % username
|
print >> sys.stderr, 'Could not determine shell for %s. Defaulting to /sbin/nologin' % username
|
||||||
return '/sbin/nologin'
|
return '/sbin/nologin'
|
||||||
|
|
||||||
def aliases_txt(self):
|
def install_aliases_txt(self):
|
||||||
''' update your mail aliases file '''
|
move(self.temp + '/aliases', '/tmp/aliases')
|
||||||
self.emails = self.email_list()
|
|
||||||
email_file = codecs.open(self.temp + '/aliases', mode='w', encoding='utf-8')
|
|
||||||
for person in self.emails:
|
|
||||||
email_file.write("%s: %s" % (person, self.emails[person]))
|
|
||||||
email_file.close()
|
|
||||||
|
|
||||||
def passwd_text(self, people=None):
|
def passwd_text(self, people=None):
|
||||||
i = 0
|
i = 0
|
||||||
|
@ -243,6 +238,17 @@ class MakeShellAccounts(BaseClient):
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def usernames(self):
|
||||||
|
usernames = {}
|
||||||
|
if not self.people:
|
||||||
|
self.people_list()
|
||||||
|
for person in self.people:
|
||||||
|
uid = person['id']
|
||||||
|
if self.valid_user_group(uid):
|
||||||
|
username = person['username']
|
||||||
|
usernames[uid] = username
|
||||||
|
return usernames
|
||||||
|
|
||||||
def groups_text(self, groups=None, people=None):
|
def groups_text(self, groups=None, people=None):
|
||||||
i = 0
|
i = 0
|
||||||
file = open(self.temp + '/group.txt', 'w')
|
file = open(self.temp + '/group.txt', 'w')
|
||||||
|
@ -252,17 +258,16 @@ class MakeShellAccounts(BaseClient):
|
||||||
people = self.people_list()
|
people = self.people_list()
|
||||||
|
|
||||||
''' First create all of our users/groups combo '''
|
''' First create all of our users/groups combo '''
|
||||||
usernames = {}
|
|
||||||
for person in people:
|
for person in people:
|
||||||
uid = person['id']
|
uid = person['id']
|
||||||
if self.valid_user_group(uid):
|
if self.valid_user_group(uid):
|
||||||
username = person['username']
|
username = person['username']
|
||||||
usernames[uid] = username
|
|
||||||
file.write("=%i %s:x:%i:\n" % (uid, username, uid))
|
file.write("=%i %s:x:%i:\n" % (uid, username, uid))
|
||||||
file.write("0%i %s:x:%i:\n" % (i, username, uid))
|
file.write("0%i %s:x:%i:\n" % (i, username, uid))
|
||||||
file.write(".%s %s:x:%i:\n" % (username, username, uid))
|
file.write(".%s %s:x:%i:\n" % (username, username, uid))
|
||||||
i = i + 1
|
i = i + 1
|
||||||
|
|
||||||
|
usernames = self.usernames()
|
||||||
for group in groups:
|
for group in groups:
|
||||||
gid = group['id']
|
gid = group['id']
|
||||||
name = group['name']
|
name = group['name']
|
||||||
|
@ -373,6 +378,35 @@ class MakeShellAccounts(BaseClient):
|
||||||
os.chmod(os.path.join(ssh_dir, 'authorized_keys'), 0600)
|
os.chmod(os.path.join(ssh_dir, 'authorized_keys'), 0600)
|
||||||
os.path.walk(ssh_dir, _chown, [person['id'], person['id']])
|
os.path.walk(ssh_dir, _chown, [person['id'], person['id']])
|
||||||
|
|
||||||
|
def make_aliases_txt(self):
|
||||||
|
''' update your mail aliases file '''
|
||||||
|
if not self.groups:
|
||||||
|
groups = self.group_list()
|
||||||
|
|
||||||
|
self.emails = self.email_list()
|
||||||
|
email_file = codecs.open(self.temp + '/aliases', mode='w', encoding='utf-8')
|
||||||
|
email_template = codecs.open(config.get('host', 'aliases_template').strip('"'))
|
||||||
|
email_file.write("# Generated by fasClient\n")
|
||||||
|
for line in email_template.readlines():
|
||||||
|
email_file.write(line)
|
||||||
|
sorted = self.emails.keys()
|
||||||
|
sorted.sort()
|
||||||
|
for person in sorted:
|
||||||
|
email_file.write("%s: %s\n" % (person, self.emails[person]))
|
||||||
|
usernames = self.usernames()
|
||||||
|
for group in self.groups:
|
||||||
|
name = group['name']
|
||||||
|
members = {}
|
||||||
|
for membership in self.memberships[name]:
|
||||||
|
role_type = membership['role_type']
|
||||||
|
person = usernames[membership['person_id']]
|
||||||
|
try:
|
||||||
|
members[role_type].append(person)
|
||||||
|
except KeyError:
|
||||||
|
members[role_type] = [person]
|
||||||
|
for role in members:
|
||||||
|
print "%s-%s: %s" % (name, role, members[role])
|
||||||
|
email_file.close()
|
||||||
|
|
||||||
def enable():
|
def enable():
|
||||||
temp = tempfile.mkdtemp('-tmp', 'fas-', config.get('global', 'temp').strip('"'))
|
temp = tempfile.mkdtemp('-tmp', 'fas-', config.get('global', 'temp').strip('"'))
|
||||||
|
@ -447,7 +481,9 @@ if __name__ == '__main__':
|
||||||
except AuthError, e:
|
except AuthError, e:
|
||||||
print >> sys.stderr, e
|
print >> sys.stderr, e
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
fas.create_aliases()
|
fas.mk_tempdir()
|
||||||
|
fas.make_aliases_txt()
|
||||||
|
fas.install_aliases_txt()
|
||||||
|
|
||||||
if not (opts.install or opts.enable or opts.disable or opts.aliases):
|
if not (opts.install or opts.enable or opts.disable or opts.aliases):
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
|
|
|
@ -142,9 +142,11 @@ for role in c.fetchall():
|
||||||
session.flush()
|
session.flush()
|
||||||
except ProgrammingError, e:
|
except ProgrammingError, e:
|
||||||
print "\tERROR - The role %s -> %s could not be created - %s" % (person_id, project_group_id, e)
|
print "\tERROR - The role %s -> %s could not be created - %s" % (person_id, project_group_id, e)
|
||||||
|
session.close()
|
||||||
except IntegrityError, e:
|
except IntegrityError, e:
|
||||||
if e.message.find('dupilcate key'):
|
if e.message.find('dupilcate key'):
|
||||||
print "\tERROR - The role %s -> %s already exists! Skipping" % (person_id, project_group_id)
|
print "\tERROR - The role %s -> %s already exists! Skipping" % (person_id, project_group_id)
|
||||||
|
session.close()
|
||||||
continue
|
continue
|
||||||
print "\tERROR - The role %s -> %s could not be created - %s" % (person_id, project_group_id, e)
|
print "\tERROR - The role %s -> %s could not be created - %s" % (person_id, project_group_id, e)
|
||||||
session.close()
|
session.close()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue