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
# Get the entire email list
Conrad Holmberg
committed
def get_email_lists(email_lists):
members = ''
for email_list in email_lists:
members += email_list+"\n"
Conrad Holmberg
committed
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
Conrad Holmberg
committed
parser.add_argument('list_fqdn', default=LIST_NAME)
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)
if args.list_fqdn:
members_hash = {}
Conrad Holmberg
committed
# obtain email list from argument
email_list = args.list_fqdn
# get lists
if email_list in email_lists:
#member_list = client.get_list(LIST_NAME)
Conrad Holmberg
committed
# 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
json.dumps(members_hash, indent=2)
# Get all the member
elif email_list.upper() == 'ALL':
print "I couldn't get this to finsih!!!."
Conrad Holmberg
committed
# members_hash={}
# # Get json data from each member
# for member in client.members:
# members_hash['email']= member.email
# print json.dumps(members_hash, indent=2)
sys.exit('Error: Email list"'+email_list+'" does not exist in domain '+args.core_uri +
"\nSee List\n"+get_email_lists(email_lists))