Added more logging during draft resurrection. Added a guard agains draft status changes while the draft expiration loop is running.

- Legacy-Id: 14488
This commit is contained in:
Henrik Levkowetz 2018-01-06 16:01:21 +00:00
parent 11ca8dcaf2
commit edcfcd11f1
2 changed files with 17 additions and 7 deletions

View file

@ -17,13 +17,18 @@ syslog.openlog(os.path.basename(__file__), syslog.LOG_PID, syslog.LOG_USER)
import django
django.setup()
from ietf.doc.expire import *
from ietf.doc.expire import ( in_draft_expire_freeze, get_expired_drafts, expirable_draft,
send_expire_notice_for_draft, expire_draft, clean_up_draft_files )
if not in_draft_expire_freeze():
syslog.syslog("Expiring drafts ...")
for doc in get_expired_drafts():
send_expire_notice_for_draft(doc)
expire_draft(doc)
syslog.syslog("Expired draft %s-%s" % (doc.name, doc.rev))
# verify expirability -- it might have changed after get_expired_drafts() was run
# (this whole loop took about 2 minutes on 04 Jan 2018)
if expirable_draft(doc) and doc.expires < datetime.date.today() + datetime.timedelta(1):
send_expire_notice_for_draft(doc)
expire_draft(doc)
syslog.syslog(" Expired draft %s-%s" % (doc.name, doc.rev))
syslog.syslog("Cleaning up draft files")
clean_up_draft_files()

View file

@ -27,7 +27,7 @@ from ietf.secr.utils.document import get_rfc_num, get_start_date
from ietf.submit.models import Submission, Preapproval, DraftSubmissionStateName, SubmissionEvent
from ietf.submit.mail import announce_new_version, announce_to_lists, announce_to_authors
from ietf.utils.draft import Draft
from ietf.utils.log import log
# -------------------------------------------------
# Helper Functions
@ -241,9 +241,14 @@ def do_resurrect(draft, request):
sorted_files = sorted(files)
latest,ext = os.path.splitext(sorted_files[-1])
files = glob.glob(os.path.join(settings.INTERNET_DRAFT_ARCHIVE_DIR,latest) + '.*')
log("Resurrecting %s. Moving files:" % draft.name)
for file in files:
shutil.move(file,settings.INTERNET_DRAFT_PATH)
try:
shutil.move(file, settings.INTERNET_DRAFT_PATH)
log(" Moved file %s to %s" % (file, settings.INTERNET_DRAFT_PATH))
except shutil.Error as e:
log(" Exception %s when attempting to move %s" % (e, file))
# Update draft record
draft.set_state(State.objects.get(type="draft", slug="active"))