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

Simplifed code to add arugments.

parent 54ebad74
No related branches found
No related tags found
No related merge requests found
#!/bin/env python #!/bin/env python
from mailmanclient import Client
import os import os
import sys import sys
import argparse import argparse
...@@ -8,52 +7,30 @@ try: ...@@ -8,52 +7,30 @@ try:
except ImportError: except ImportError:
import simplejson as json import simplejson as json
ml.settings[setting] = value
def dump(ml):
print json.dumps(dict(ml.settings), indent=2)
def set_value(ml, setting, value):
ml.settings[setting] = value
ml.settings.save()
def update_settings(ml, updated_settings):
print json.dumps(updated_settings, indent=2)
for setting in updated_settings.keys():
ml.settings[setting] = updated_settings[setting]
ml.save()
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Manipulate mailing list settings") parser = argparse.ArgumentParser(description="Dump Mailing List based on alias.")
CORE_URI = os.environ.get('MAILMAN_CORE_URI', CORE_URI = os.environ.get('MAILMAN_CORE_URI','http://mailman-core:8001/3.1')
'http://mailman-core:8001/3.1')
CORE_USER = os.environ.get('MAILMAN_REST_USER', 'restadmin') CORE_USER = os.environ.get('MAILMAN_REST_USER', 'restadmin')
CORE_PASS = os.environ.get('MAILMAN_REST_PASSWORD', 'restpass') CORE_PASS = os.environ.get('MAILMAN_REST_PASSWORD', 'restpass')
LIST_NAME= 'apachesvn@lists.med.stanford.edu' LIST_NAME= 'apachesvn@lists.med.stanford.edu' # just a tesing default
#parser.add_argument('list_fqdn')
action_group = parser.add_mutually_exclusive_group()
action_group.add_argument('--dump', action='store_true', default=False)
action_group.add_argument(
'--set', help='set single setting in a form: <setting_name>=<setting_value>')
action_group.add_argument('--update', help='update settings with contents of the file provided')
parser.add_argument('--core-uri', dest='core_uri', # user invoked variables
default=CORE_URI) parser.add_argument('--dump', action='store_true', default=False)
parser.add_argument('--rest-user', dest='core_user', parser.add_argument('--listname')
default=CORE_USER)
parser.add_argument('--rest-password', dest='core_password',
default=CORE_PASS)
args = parser.parse_args()
client = Client(args.core_uri, args.core_user, args.core_password) # 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)
#ml_fqdn = args.list_fqdn args = parser.parse_args()
client = Client(CORE_URI, CORE_USER, CORE_PASS)
#ml = client.get_list(ml_fqdn)
ml = client.get_list(LIST_NAME) ml = client.get_list(LIST_NAME)
if args.dump: if args.dump:
...@@ -66,18 +43,16 @@ if __name__ == '__main__': ...@@ -66,18 +43,16 @@ if __name__ == '__main__':
members_hash['dump'] = member.rest_data members_hash['dump'] = member.rest_data
#held_data[held.request_id] = held.rest_data #held_data[held.request_id] = held.rest_data
#members_hash['preferences']= member.preferences #members_hash['preferences']= member.preferences
print json.dumps(members_hash, indent=2)
print json.dumps(members_hash, indent=2)
#json.dumps(ml.members) # elif args.set:
elif args.set: # (setting, value) = args.set.split('=', 1)
(setting, value) = args.set.split('=', 1) # set_value(ml, setting, value)
set_value(ml, setting, value) # elif args.update:
elif args.update: # if args.update == '-':
if args.update == '-': # f = sys.stdin
f = sys.stdin # else:
else: # f = open(args.update, 'r')
f = open(args.update, 'r') # updated_settings = json.loads(f.read())
updated_settings = json.loads(f.read()) # update_settings(ml, updated_settings)
update_settings(ml, updated_settings) # if args.update != '-':
if args.update != '-':
f.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