From f2d3d4213a645030772b62f5282e7a2d30bb9eb0 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Tue, 11 Nov 2014 01:09:30 +0000 Subject: [PATCH] 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 --- ietf/bin/generate-draft-aliases | 5 +++-- ietf/bin/generate-wg-aliases | 11 ++++++----- ietf/settings.py | 2 ++ ietf/utils/aliases.py | 14 +++++++------- 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/ietf/bin/generate-draft-aliases b/ietf/bin/generate-draft-aliases index 997d6ff83..a5f247561 100755 --- a/ietf/bin/generate-draft-aliases +++ b/ietf/bin/generate-draft-aliases @@ -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)) diff --git a/ietf/bin/generate-wg-aliases b/ietf/bin/generate-wg-aliases index 98c545bb4..6475b8353 100755 --- a/ietf/bin/generate-wg-aliases +++ b/ietf/bin/generate-wg-aliases @@ -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)) diff --git a/ietf/settings.py b/ietf/settings.py index 1e277820c..f4f63a474 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -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" diff --git a/ietf/utils/aliases.py b/ietf/utils/aliases.py index edfce0b06..7747af7ac 100644 --- a/ietf/utils/aliases.py +++ b/ietf/utils/aliases.py @@ -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