Skip to content

Commit d6298ad

Browse files
committed
Use tempfiles while rebuilding group and doc alias files. Fixes ietf-tools#3521. Commit ready for merge.
- Legacy-Id: 19949
1 parent 358132d commit d6298ad

2 files changed

Lines changed: 26 additions & 5 deletions

File tree

ietf/doc/management/commands/generate_draft_aliases.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import os
1010
import re
1111
import time
12+
13+
from tempfile import mkstemp
1214

1315
from django.conf import settings
1416
from django.core.management.base import BaseCommand
@@ -102,8 +104,13 @@ def handle(self, *args, **options):
102104
date = time.strftime("%Y-%m-%d_%H:%M:%S")
103105
signature = '# Generated by %s at %s\n' % (os.path.abspath(__file__), date)
104106

105-
afile = io.open(settings.DRAFT_ALIASES_PATH, "w")
106-
vfile = io.open(settings.DRAFT_VIRTUAL_PATH, "w")
107+
ahandle, aname = mkstemp()
108+
os.close(ahandle)
109+
afile = io.open(aname,"w")
110+
111+
vhandle, vname = mkstemp()
112+
os.close(vhandle)
113+
vfile = io.open(vname,"w")
107114

108115
afile.write(signature)
109116
vfile.write(signature)
@@ -160,4 +167,8 @@ def handle(self, *args, **options):
160167

161168
afile.close()
162169
vfile.close()
170+
171+
os.rename(aname, settings.DRAFT_ALIASES_PATH)
172+
os.rename(vname, settings.DRAFT_VIRTUAL_PATH)
173+
163174

ietf/group/management/commands/generate_group_aliases.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import io
99
import os
1010
import time
11+
12+
from tempfile import mkstemp
1113

1214
from django.conf import settings
1315
from django.core.management.base import BaseCommand
@@ -40,8 +42,13 @@ def handle(self, *args, **options):
4042
date = time.strftime("%Y-%m-%d_%H:%M:%S")
4143
signature = '# Generated by %s at %s\n' % (os.path.abspath(__file__), date)
4244

43-
afile = io.open(settings.GROUP_ALIASES_PATH, "w")
44-
vfile = io.open(settings.GROUP_VIRTUAL_PATH, "w")
45+
ahandle, aname = mkstemp()
46+
os.close(ahandle)
47+
afile = io.open(aname,"w")
48+
49+
vhandle, vname = mkstemp()
50+
os.close(vhandle)
51+
vfile = io.open(vname,"w")
4552

4653
afile.write(signature)
4754
vfile.write(signature)
@@ -86,4 +93,7 @@ def handle(self, *args, **options):
8693
dump_sublist(afile, vfile, group.acronym+'-chairs', IETF_DOMAIN, settings.GROUP_VIRTUAL_DOMAIN, get_group_role_emails(group, ['chair', 'delegate']))
8794

8895
afile.close()
89-
vfile.close()
96+
vfile.close()
97+
98+
os.rename(aname, settings.GROUP_ALIASES_PATH)
99+
os.rename(vname, settings.GROUP_VIRTUAL_PATH)

0 commit comments

Comments
 (0)