Generate all mailing files
This commit is contained in:
parent
bd42ba5e7d
commit
4737e7ea88
3 changed files with 61 additions and 0 deletions
48
main.py
Normal file
48
main.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
from configparser import ConfigParser
|
||||
import socket
|
||||
import datetime
|
||||
|
||||
from re2oapi import Re2oAPIClient
|
||||
|
||||
config = ConfigParser()
|
||||
config.read('config.ini')
|
||||
|
||||
api_hostname = config.get('Re2o', 'hostname')
|
||||
api_password = config.get('Re2o', 'password')
|
||||
api_username = config.get('Re2o', 'username')
|
||||
|
||||
|
||||
fallback = config.getboolean('DEFAULT', 'activate', fallback=False)
|
||||
|
||||
|
||||
def write_generic_members_file(ml_name, members):
|
||||
if config.getboolean(ml_name, 'activate', fallback=fallback):
|
||||
members = "\n".join(m['email'] for m in members)
|
||||
filename = 'ml.{name}.list'.format(name=ml_name)
|
||||
with open(filename, 'w+') as f:
|
||||
f.write(members)
|
||||
|
||||
|
||||
def write_standard_members_files(api_client):
|
||||
for ml in api_client.list_mailingstandard():
|
||||
write_generic_members_file(ml['name'], ml['members'])
|
||||
|
||||
|
||||
def write_club_members_files(api_client):
|
||||
fallback = config.get('DEFAULT', 'activate', fallback=False)
|
||||
for ml in api_client.list_mailingclub():
|
||||
write_generic_members_file(ml['name'], ml['members'])
|
||||
write_generic_members_file(ml['name']+'-admin', ml['members'])
|
||||
|
||||
|
||||
api_client = Re2oAPIClient(api_hostname, api_username, api_password)
|
||||
client_hostname = socket.gethostname().split('.', 1)[0]
|
||||
|
||||
|
||||
for service in api_client.list_servicesregen():
|
||||
# if service['hostname'] == client_hostname and \
|
||||
# service['service_name'] == 'dns' and \
|
||||
# service['need_regen']:
|
||||
write_standard_members_files(api_client)
|
||||
write_club_members_files(api_client)
|
||||
# api_client.patch(service['api_url'], data={'need_regen': False})
|
Loading…
Add table
Add a link
Reference in a new issue