Newer
Older
#!/bin/env python
from mailmanclient import Client
import os
import sys
import argparse
try:
import json
except ImportError:
import simplejson as json
Conrad Holmberg
committed
def get_email_lists(email_lists):
members = ''
for email_list in email_lists:
members += email_list
return members
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Dump Mailing List based on alias.")
CORE_URI = os.environ.get('MAILMAN_CORE_URI','http://mailman-core:8001/3.1')
CORE_USER = os.environ.get('MAILMAN_REST_USER', 'restadmin')
CORE_PASS = os.environ.get('MAILMAN_REST_PASSWORD', 'restpass')
LIST_NAME= 'apachesvn@lists.med.stanford.edu' # just a tesing default
parser.add_argument('--members', help='Dumps a full members list from an email list <setting_name>=<setting_value>')
parser.add_argument('--list', action='store_true', default=False, help='Shows the email lists. (i.e.,apachesvn@lists.med.stanford.edu )')
parser.add_argument('--file', help='Places input into a file.')
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)
# Parse out the command line arguments
client = Client(args.core_uri, args.core_user, args.core_password)
# append the mail lists to an array from client
email_lists = []
for mlist in client.lists:
email_lists.append(mlist.fqdn_listname)
# lists members of a list
if args.members:
members_hash={}
Conrad Holmberg
committed
# obtain email list from argument
email_list = args.members
# get lists
if email_list in email_lists:
Conrad Holmberg
committed
#ml = client.get_list(LIST_NAME)
# Get members from email list
member_list = client.get_list(email_list)
Conrad Holmberg
committed
# 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['email']= member.email
Conrad Holmberg
committed
members_hash['address'] = member.address.rest_data
#held_data[held.request_id] = held.rest_data
#members_hash['preferences']= member.preferences
print json.dumps(members_hash, indent=2)
Conrad Holmberg
committed
# Get all the member
elif email_list.upper() == 'ALL':
print "Watch out thsi prints all lists."
else:
sys.exit('Error: Email list"'+email_list+'" does not exist in domain '+args.core_uri+
Conrad Holmberg
committed
"\nSee List\n"+get_email_lists(email_lists))
Conrad Holmberg
committed
print get_email_lists(email_lists)