Skip to content
Snippets Groups Projects
Commit 28b8b910 authored by Conrad Holmberg's avatar Conrad Holmberg
Browse files

Adding some procedures for main functioanlity.

parent 054c0fe4
No related branches found
No related tags found
No related merge requests found
......@@ -9,14 +9,54 @@ try:
except ImportError:
import simplejson as json
def get_ml_fqdns(ml_fqdns):
"""Get the entire email list members"""
members = ''
for ml_fqdn in ml_fqdns:
members += ml_fqdn+"\n"
return members
def get_ml_fqdns(client):
ml_fqdns = []
for mlist in client.lists:
ml_fqdns.append(mlist.fqdn_listname)
return ml_fqdns
def print_all_fqdn(client):
# grabs users per page
"""Prints all the members of the mailman with pagination."""
page = client.get_user_page(count=100, page=1)
# loop through each page
while len(page) > 0:
for member in page:
print json.dumps(member.addresses.rest_data, indent=2)
time.sleep(.100) #pause between pages
page = page.next
# end get_all_fqdns
def print_all_fqdns(client,ml_fqdn ):
"""Prints the members of a email list"""
# Get members from email list
member_list = client.get_list(ml_fqdn)
members_hash = {}
data = {}
members_hash['members'] = []
# Get json data from each member
for member in member_list.members:
# members_hash['user']=member.user
#members_hash['address']= member.address
#members_hash['list_id']= member.list_id
members_hash['members'].append({
'list_fqdn': args.list_fqdn,
'email': member.email,
'display_name': member.user.display_name
})
#held_data[held.request_id] = held.rest_data
#members_hash['preferences']= member.preferences
#print "S###########################"
#print json.dumps(member.rest_data, indent=2)
#print json.dumps(member.user.rest_data, indent=2)
#print json.dumps(members_hash, indent=2)
#print "E###########################"
#print("debug"+str(member))
print json.dumps(members_hash, indent=2)
# end print_fqdns
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Manage Users in Mailman Email Lists.")
......@@ -32,7 +72,7 @@ if __name__ == '__main__':
# user invoked variables
parser.add_argument('-l','--list_fqdn')
parser.add_argument('-r','--restore')
# Add arguments for env variables
# Add arguments for env variables
parser.add_argument('--core-uri', dest='core_uri', default=CORE_URI)
parser.add_argument('--rest-user', dest='core_user', default=CORE_USER)
parser.add_argument('--rest-password', dest='core_password', default=CORE_PASS)
......@@ -45,68 +85,24 @@ if __name__ == '__main__':
client = Client(args.core_uri, args.core_user, args.core_password)
# append the mail lists to an array from client
ml_fqdns = []
for mlist in client.lists:
ml_fqdns.append(mlist.fqdn_listname)
ml_fqdns = get_ml_fqdns(client)
# lists members of a list
if args.list_fqdn:
# used to store members
members_hash = {}
# obtain email list from argument
ml_fqdn = args.list_fqdn
# get lists
# get members from list
if ml_fqdn in ml_fqdns:
# Get members from email list
member_list = client.get_list(ml_fqdn)
members_hash = {}
data = {}
members_hash['members'] = []
# Get json data from each member
for member in member_list.members:
# members_hash['user']=member.user
#members_hash['address']= member.address
#members_hash['list_id']= member.list_id
members_hash['members'].append({
'list_fqdn': args.list_fqdn,
'email': member.email,
'display_name': member.user.display_name
})
#held_data[held.request_id] = held.rest_data
#members_hash['preferences']= member.preferences
#print "S###########################"
#print json.dumps(member.rest_data, indent=2)
#print json.dumps(member.user.rest_data, indent=2)
#print json.dumps(members_hash, indent=2)
#print "E###########################"
#print("debug"+str(member))
print json.dumps(members_hash, indent=2)
print_fqdns(client,ml_fqdn)
# Get all the members
elif ml_fqdn.upper() == 'ALL':
members_hash={}
print "I couldn't get this to finsih!!!."
members_hash = {}
# grabs users per page
page = client.get_user_page(count=100, page=1)
# loop through each page
while len(page) > 0:
for member in page:
print json.dumps(member.addresses.rest_data, indent=2)
time.sleep(.100) #pause between pages
page = page.next
# # Get json data from each member
# for member in client.members:
# members_hash['email']= member.email
# print json.dumps(members_hash, indent=2)
print_all_fqdns(client)
else:
sys.exit('Error: Email list"'+ml_fqdn+'" does not exist in domain '+args.core_uri +
"\nSee List\n"+get_ml_fqdns(ml_fqdns))
elif args.restore:
#end if
elif args.restore:
#Open user list dump file
print "restoring file."
if args.restore == '-':
......@@ -119,8 +115,8 @@ elif args.restore:
for member in data['members']:
#print(str(member))
print('list_fqdn:'+ member['list_fqdn'])
#print('display_name'+ member['display_name'])
#print('email'+ member['email'])
print('display_name'+ member['display_name'])
print('email'+ member['email'])
#new_member_list.append(member_email)
if args.restore != '-':
json_file.close()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment