#!/usr/bin/python -tt # # Script to pull email addresses for new group members from the Fedora # Account System. # # (C) 2008 Paul W. Frields. This script is licensed under the # GNU General Public License, version 2 or any later version. # # This script requires the python-fedora RPM. # # ChangeLog: # * 0.1 Paul W. Frields # - Initial version import os, sys from fedora.accounts.fas2 import * from getpass import getpass from datetime import datetime, timedelta def _debug_print(level, message): if _debuglevel > level: print message def parseFasDate(stamp): ## This assumes that FAS2 is using UTC... which it should. converted = stamp.split('.')[0] return datetime.strptime(converted, '%Y-%m-%d %H:%M:%S') fas = AccountSystem() fas.username = raw_input('Enter username: ') fas.password = getpass('Enter password: ') if fas.authenticate(fas.username, fas.password) is not True: _debug_print(1, 'Bad user/password combination.') sys.exit(-1) people = fas.people_by_id() groupname = raw_input('Enter account system group name: ') group = dict(fas.group_by_name(groupname)) days_ago = int(raw_input('How many days back for created accounts? ')) oldest_date = datetime.utcnow() - timedelta(days_ago) userids = [user[u'person_id'] for user in group[u'approved_roles'] + group[u'unapproved_roles'] if parseFasDate(user[u'creation']) > oldest_date] for userid in userids: person = people[userid] print '%s <%s>' % (person[u'human_name'], person[u'email'])