From d6298adacb1a55f2077685f1160262cf17e548d8 Mon Sep 17 00:00:00 2001 From: Robert Sparks Date: Fri, 18 Feb 2022 16:27:00 +0000 Subject: [PATCH] Use tempfiles while rebuilding group and doc alias files. Fixes #3521. Commit ready for merge. - Legacy-Id: 19949 --- .../commands/generate_draft_aliases.py | 15 +++++++++++++-- .../commands/generate_group_aliases.py | 16 +++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/ietf/doc/management/commands/generate_draft_aliases.py b/ietf/doc/management/commands/generate_draft_aliases.py index a16805ba4..35ba69d58 100755 --- a/ietf/doc/management/commands/generate_draft_aliases.py +++ b/ietf/doc/management/commands/generate_draft_aliases.py @@ -9,6 +9,8 @@ import io import os import re import time + +from tempfile import mkstemp from django.conf import settings from django.core.management.base import BaseCommand @@ -102,8 +104,13 @@ class Command(BaseCommand): date = time.strftime("%Y-%m-%d_%H:%M:%S") signature = '# Generated by %s at %s\n' % (os.path.abspath(__file__), date) - afile = io.open(settings.DRAFT_ALIASES_PATH, "w") - vfile = io.open(settings.DRAFT_VIRTUAL_PATH, "w") + ahandle, aname = mkstemp() + os.close(ahandle) + afile = io.open(aname,"w") + + vhandle, vname = mkstemp() + os.close(vhandle) + vfile = io.open(vname,"w") afile.write(signature) vfile.write(signature) @@ -160,4 +167,8 @@ class Command(BaseCommand): afile.close() vfile.close() + + os.rename(aname, settings.DRAFT_ALIASES_PATH) + os.rename(vname, settings.DRAFT_VIRTUAL_PATH) + \ No newline at end of file diff --git a/ietf/group/management/commands/generate_group_aliases.py b/ietf/group/management/commands/generate_group_aliases.py index d6b4af234..ed2c198ea 100755 --- a/ietf/group/management/commands/generate_group_aliases.py +++ b/ietf/group/management/commands/generate_group_aliases.py @@ -8,6 +8,8 @@ import datetime import io import os import time + +from tempfile import mkstemp from django.conf import settings from django.core.management.base import BaseCommand @@ -40,8 +42,13 @@ class Command(BaseCommand): date = time.strftime("%Y-%m-%d_%H:%M:%S") signature = '# Generated by %s at %s\n' % (os.path.abspath(__file__), date) - afile = io.open(settings.GROUP_ALIASES_PATH, "w") - vfile = io.open(settings.GROUP_VIRTUAL_PATH, "w") + ahandle, aname = mkstemp() + os.close(ahandle) + afile = io.open(aname,"w") + + vhandle, vname = mkstemp() + os.close(vhandle) + vfile = io.open(vname,"w") afile.write(signature) vfile.write(signature) @@ -86,4 +93,7 @@ class Command(BaseCommand): dump_sublist(afile, vfile, group.acronym+'-chairs', IETF_DOMAIN, settings.GROUP_VIRTUAL_DOMAIN, get_group_role_emails(group, ['chair', 'delegate'])) afile.close() - vfile.close() \ No newline at end of file + vfile.close() + + os.rename(aname, settings.GROUP_ALIASES_PATH) + os.rename(vname, settings.GROUP_VIRTUAL_PATH)