Skip to content

Commit 239fa97

Browse files
committed
Tweaked the utility script to find missing submission confirmation emails.
- Legacy-Id: 6492
1 parent 6928ff2 commit 239fa97

1 file changed

Lines changed: 30 additions & 22 deletions

File tree

ietf/bin/find-submission-confirmation-email-in-postfix-log

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ from ietf.doc.models import Document
3737

3838

3939
args = sys.argv[1:]
40-
if len(args) < 1:
41-
warn("Expected '$ %s DRAFTNAME', but found no arguments -- exiting" % program)
40+
if len(args) < 3:
41+
warn("Expected '$ %s DRAFTNAME USER.LOG POSTFIX.LOG', but found no arguments -- exiting" % program)
4242
sys.exit(1)
4343

4444
draft = args[0]
@@ -56,35 +56,43 @@ from_email = settings.IDSUBMIT_FROM_EMAIL
5656
if "<" in from_email:
5757
from_email = from_email.split("<")[1].split(">")[0]
5858

59-
submission = IdSubmissionDetail.objects.filter(filename=draft).order_by('-pk')[0]
59+
submission = IdSubmissionDetail.objects.filter(filename=draft).latest('submission_date')
6060
document = Document.objects.get(name=draft)
6161
emails = [ author.address for author in document.authors.all() ]
6262

63-
file = Path(settings.INTERNET_DRAFT_PATH) / ("%s-%s.txt"%(draft, submission.revision))
64-
65-
upload_time = time.localtime(file.mtime)
66-
timestr1 = time.strftime("%b %d %H:%M", upload_time)
67-
timestr2 = timestr1[:-1] + chr(((ord(timestr1[-1])-ord('0')+1)%10)+ord('0'))
68-
note("Looking for mail log lines timestamped %s, also checking %s ..." % (timestr1, timestr2))
63+
timestrings = []
64+
for file in [ Path(settings.INTERNET_DRAFT_PATH) / ("%s-%s.txt"%(draft, submission.revision)),
65+
Path(settings.IDSUBMIT_STAGING_PATH) / ("%s-%s.txt"%(draft, submission.revision)) ]:
66+
if os.path.exists(file):
67+
upload_time = time.localtime(file.mtime)
68+
ts = time.strftime("%b %d %H:%M", upload_time)
69+
timestrings += [ ts ]
70+
timestrings += [ ts[:-1] + chr(((ord(ts[-1])-ord('0')+1)%10)+ord('0')) ]
71+
print "Looking for mail log lines timestamped %s, also checking %s ..." % (timestrings[0], timestrings[1])
6972

7073
for log in logfiles:
71-
note("\n Checking %s ...\n" % log)
74+
print "\n Checking %s ...\n" % log
7275
if log.endswith('.gz'):
7376
import gzip
7477
logfile = gzip.open(log)
7578
else:
7679
logfile = open(log)
7780
queue_ids = []
7881
for line in logfile:
79-
if line.startswith(timestr1) or line.startswith(timestr2):
80-
if from_email in line:
81-
for to_email in emails:
82-
if to_email in line:
83-
sys.stdout.write(line)
84-
if "queued_as:" in line:
85-
queue_ids += [ line.split("queued_as:")[1].split(",")[0] ]
86-
elif queue_ids:
87-
for qi in queue_ids:
88-
if qi in line:
89-
sys.stdout.write(line)
90-
82+
if from_email in line and "Confirmation for Auto-Post of I-D "+draft in line:
83+
ts = line[:12]
84+
timestrings += [ ts ]
85+
print "Found a mention of %s, adding timestamp %s: \n %s" % (draft, ts, line)
86+
for ts in timestrings:
87+
if line.startswith(ts):
88+
if from_email in line:
89+
for to_email in emails:
90+
if to_email in line:
91+
sys.stdout.write(line)
92+
if "queued_as:" in line:
93+
queue_ids += [ line.split("queued_as:")[1].split(",")[0] ]
94+
elif queue_ids:
95+
for qi in queue_ids:
96+
if qi in line:
97+
sys.stdout.write(line)
98+

0 commit comments

Comments
 (0)