Reworked the generation of draft aliases and WG aliases, after trying out the output of the previous version for real. This code seems to work better, based on tests on ietfa.

- Legacy-Id: 8633
This commit is contained in:
Henrik Levkowetz 2014-11-11 01:09:30 +00:00
parent 69a7668d2e
commit f2d3d4213a
4 changed files with 18 additions and 14 deletions

View file

@ -103,8 +103,9 @@ if __name__ == '__main__':
afile.write(signature)
vfile.write(signature)
vfile.write("%s anything\n" % settings.DRAFT_VIRTUAL_DOMAIN)
drafts = Document.objects.all()
drafts = Document.objects.filter(name__startswith='draft-')
# Drafts with active status
active_drafts = drafts.filter(states__slug='active')
@ -122,7 +123,7 @@ if __name__ == '__main__':
alias = draft.name
all = []
def handle_sublist(afile, vfile, alias, emails):
all.extend( dump_sublist(afile, vfile, alias, emails) )
all.extend( dump_sublist(afile, vfile, alias, settings.DRAFT_VIRTUAL_DOMAIN, emails) )
#.authors (/and no suffix) = authors
# First, do no suffix case
handle_sublist(afile, vfile, alias, get_draft_authors_emails(draft))

View file

@ -54,6 +54,7 @@ if __name__ == '__main__':
afile.write(signature)
vfile.write(signature)
vfile.write("%s anything\n" % settings.GROUP_VIRTUAL_DOMAIN)
wgs = Group.objects.filter(type='wg').all()
@ -66,8 +67,8 @@ if __name__ == '__main__':
for wg in interesting_wgs.distinct().iterator():
name = wg.acronym
dump_sublist(afile, vfile, name+'-ads' , get_group_ads_emails(wg))
dump_sublist(afile, vfile, name+'-chairs', get_group_chairs_emails(wg))
dump_sublist(afile, vfile, name+'-ads', settings.GROUP_VIRTUAL_DOMAIN, get_group_ads_emails(wg))
dump_sublist(afile, vfile, name+'-chairs', settings.GROUP_VIRTUAL_DOMAIN, get_group_chairs_emails(wg))
# - status = Active
rgs = Group.objects.filter(type='rg').all()
@ -80,7 +81,7 @@ if __name__ == '__main__':
for rg in interesting_rgs.distinct().iterator():
name = rg.acronym
#dump_sublist('%s%s' % (name, '-ads'), get_group_ads_emails, rg, True)
dump_sublist(afile, vfile, name+'-chairs', get_group_chairs_emails(rg))
dump_sublist(afile, vfile, name+'-chairs', settings.GROUP_VIRTUAL_DOMAIN, get_group_chairs_emails(rg))
# Additionally, for areaz, we should list -ads and -chairs
# (for every chair in active groups within the area).
@ -88,6 +89,6 @@ if __name__ == '__main__':
active_areas = areas.filter(state__in=ACTIVE_STATES)
for area in active_areas:
name = area.acronym
dump_sublist(afile, vfile, name+'-ads' , get_area_ads_emails(area))
dump_sublist(afile, vfile, name+'-chairs', get_area_chairs_emails(area))
dump_sublist(afile, vfile, name+'-ads' , settings.GROUP_VIRTUAL_DOMAIN, get_area_ads_emails(area))
dump_sublist(afile, vfile, name+'-chairs', settings.GROUP_VIRTUAL_DOMAIN, get_area_chairs_emails(area))

View file

@ -455,9 +455,11 @@ SELENIUM_TESTS_ONLY = False
# Path to the email alias lists. Used by ietf.utils.aliases
DRAFT_ALIASES_PATH = "/a/postfix/draft-aliases"
DRAFT_VIRTUAL_PATH = "/a/postfix/draft-virtual"
DRAFT_VIRTUAL_DOMAIN = "virtual.ietf.org"
GROUP_ALIASES_PATH = "/a/postfix/group-aliases"
GROUP_VIRTUAL_PATH = "/a/postfix/group-virtual"
GROUP_VIRTUAL_DOMAIN = "virtual.ietf.org"
POSTCONFIRM_PATH = "/a/postconfirm/test-wrapper"

View file

@ -40,7 +40,7 @@ def rewrite_address_list(l):
h[address] = True
yield address
def dump_sublist(afile, vfile, alias, emails):
def dump_sublist(afile, vfile, alias, domain, emails):
if not emails:
return emails
# Nones in the list should be skipped
@ -56,13 +56,13 @@ def dump_sublist(afile, vfile, alias, emails):
if not emails:
return emails
try:
virtualname = 'xalias-%s' % (alias, )
expandname = 'expand-%s' % (alias)
aliasaddr = '%s@ietf.org' % (alias, )
aliasaddr = '%s@ietf.org' % (alias, ) # in virtual, --> filtername
filtername = 'xfilter-%s' % (alias, ) # in aliases, --> | expandname
expandname = 'expand-%s' % (alias, ) # in virtual, --> email list
vfile.write('%-64s %s\n' % (aliasaddr, virtualname))
afile.write('%-64s "|%s filter %s"\n' % (virtualname+':', settings.POSTCONFIRM_PATH, expandname))
afile.write('%-64s %s\n' % (expandname+':', ', '.join(emails)))
vfile.write('%-64s %s\n' % (aliasaddr, filtername))
afile.write('%-64s "|%s filter %s %s"\n' % (filtername+':', settings.POSTCONFIRM_PATH, expandname, domain))
vfile.write('%-64s %s\n' % ("%s@%s"%(expandname, domain), ', '.join(emails)))
except UnicodeEncodeError:
# If there's unicode in email address, something is badly