Remove tombstone support from the code, importing drafts with their
version number unhacked - Legacy-Id: 3803
This commit is contained in:
parent
06b1ecf90c
commit
dceedbf53d
|
@ -203,17 +203,6 @@ def expire_idREDESIGN(doc):
|
|||
for t in file_types:
|
||||
move_file("%s-%s.%s" % (doc.name, doc.rev, t))
|
||||
|
||||
# make tombstone
|
||||
new_revision = "%02d" % (int(doc.rev) + 1)
|
||||
|
||||
new_file = open(os.path.join(settings.IDSUBMIT_REPOSITORY_PATH, "%s-%s.txt" % (doc.name, new_revision)), 'w')
|
||||
txt = render_to_string("idrfc/expire_textREDESIGN.txt",
|
||||
dict(doc=doc,
|
||||
authors=[(e.get_name(), e.address) for e in doc.authors.all()],
|
||||
expire_days=InternetDraft.DAYS_TO_EXPIRE))
|
||||
new_file.write(txt)
|
||||
new_file.close()
|
||||
|
||||
# now change the state
|
||||
|
||||
save_document_in_history(doc)
|
||||
|
@ -233,7 +222,6 @@ def expire_idREDESIGN(doc):
|
|||
e.desc = "Document has expired"
|
||||
e.save()
|
||||
|
||||
doc.rev = new_revision # FIXME: incrementing the revision like this is messed up
|
||||
doc.set_state(State.objects.get(type="draft", slug="expired"))
|
||||
doc.time = datetime.datetime.now()
|
||||
doc.save()
|
||||
|
@ -300,7 +288,7 @@ def clean_up_id_files():
|
|||
|
||||
def clean_up_id_filesREDESIGN():
|
||||
"""Move unidentified and old files out of the Internet Draft directory."""
|
||||
cut_off = datetime.date.today() - datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE)
|
||||
cut_off = datetime.date.today()
|
||||
|
||||
pattern = os.path.join(settings.IDSUBMIT_REPOSITORY_PATH, "draft-*.*")
|
||||
files = []
|
||||
|
@ -340,21 +328,19 @@ def clean_up_id_filesREDESIGN():
|
|||
try:
|
||||
doc = Document.objects.get(name=filename, rev=revision)
|
||||
|
||||
if doc.get_state_slug() == "rfc":
|
||||
state = doc.get_state_slug()
|
||||
|
||||
if state == "rfc":
|
||||
if ext != ".txt":
|
||||
move_file_to("unknown_ids")
|
||||
elif doc.get_state_slug() in ("expired", "repl", "auth-rm", "ietf-rm"):
|
||||
if doc.expires and doc.expires.date() < cut_off:
|
||||
# Expired, Withdrawn by Author, Replaced, Withdrawn by IETF,
|
||||
# and expired more than DAYS_TO_EXPIRE ago
|
||||
if os.path.getsize(path) < 1500:
|
||||
move_file_to("deleted_tombstones")
|
||||
# revert version after having deleted tombstone
|
||||
doc.rev = "%02d" % (int(revision) - 1) # FIXME: messed up
|
||||
doc.save()
|
||||
doc.tags.add(DocTagName.objects.get(slug='exp-tomb'))
|
||||
else:
|
||||
move_file_to("expired_without_tombstone")
|
||||
elif state in ("expired", "repl", "auth-rm", "ietf-rm") and doc.expires and doc.expires.date() < cut_off:
|
||||
# Expired, Replaced, Withdrawn by Author/IETF, and expired
|
||||
if os.path.getsize(path) < 1500:
|
||||
# we don't make tombstones any more so this should
|
||||
# go away in the future
|
||||
move_file_to("deleted_tombstones")
|
||||
else:
|
||||
move_file_to("expired_without_tombstone")
|
||||
|
||||
except Document.DoesNotExist:
|
||||
move_file_to("unknown_ids")
|
||||
|
|
|
@ -913,19 +913,14 @@ class ExpireIDsTestCase(django.test.TestCase):
|
|||
txt = "%s-%s.txt" % (draft.name, draft.rev)
|
||||
self.write_id_file(txt, 5000)
|
||||
|
||||
revision_before = draft.rev
|
||||
|
||||
expire_id(draft)
|
||||
|
||||
draft = Document.objects.get(name=draft.name)
|
||||
self.assertEquals(draft.get_state_slug(), "expired")
|
||||
self.assertEquals(int(draft.rev), int(revision_before) + 1)
|
||||
self.assertEquals(draft.get_state_slug("draft-iesg"), "dead")
|
||||
self.assertTrue(draft.latest_event(type="expired_document"))
|
||||
self.assertTrue(not os.path.exists(os.path.join(self.id_dir, txt)))
|
||||
self.assertTrue(os.path.exists(os.path.join(self.archive_dir, txt)))
|
||||
new_txt = "%s-%s.txt" % (draft.name, draft.rev)
|
||||
self.assertTrue(os.path.exists(os.path.join(self.id_dir, new_txt)))
|
||||
|
||||
def test_clean_up_id_files(self):
|
||||
draft = make_test_data()
|
||||
|
@ -1004,10 +999,6 @@ class ExpireIDsTestCase(django.test.TestCase):
|
|||
self.assertTrue(not os.path.exists(os.path.join(self.id_dir, txt)))
|
||||
self.assertTrue(os.path.exists(os.path.join(self.archive_dir, "deleted_tombstones", txt)))
|
||||
|
||||
draft = Document.objects.get(name=draft.name)
|
||||
self.assertEquals(int(draft.rev), int(revision_before) - 1)
|
||||
self.assertTrue(draft.tags.filter(slug="exp-tomb"))
|
||||
|
||||
class ExpireLastCallTestCase(django.test.TestCase):
|
||||
fixtures = ['names']
|
||||
|
||||
|
|
|
@ -96,7 +96,6 @@ def perform_postREDESIGN(request, submission):
|
|||
try:
|
||||
draft = Document.objects.get(name=submission.filename)
|
||||
save_document_in_history(draft)
|
||||
draft.tags.remove(DocTagName.objects.get(slug="exp-tomb"))
|
||||
except Document.DoesNotExist:
|
||||
draft = Document(name=submission.filename)
|
||||
draft.intended_std_level = None
|
||||
|
|
|
@ -158,7 +158,6 @@ class Document(DocumentInfo):
|
|||
return u"<%s>" % self.filename_with_rev()
|
||||
|
||||
def filename_with_rev(self):
|
||||
# FIXME: compensate for tombstones?
|
||||
return u"%s-%s.txt" % (self.name, self.rev)
|
||||
|
||||
def latest_event(self, *args, **filter_args):
|
||||
|
|
|
@ -173,7 +173,7 @@ class InternetDraft(Document):
|
|||
#expired_tombstone = models.BooleanField()
|
||||
@property
|
||||
def expired_tombstone(self):
|
||||
return bool(self.tags.filter(slug='exp-tomb'))
|
||||
return False
|
||||
|
||||
def calc_process_start_end(self):
|
||||
import datetime
|
||||
|
@ -238,10 +238,7 @@ class InternetDraft(Document):
|
|||
def idstate(self):
|
||||
return self.docstate()
|
||||
def revision_display(self):
|
||||
r = int(self.revision)
|
||||
if self.get_state_slug() != 'active' and not self.expired_tombstone:
|
||||
r = max(r - 1, 0)
|
||||
return "%02d" % r
|
||||
return self.rev
|
||||
def expiration(self):
|
||||
return self.expires.date()
|
||||
def can_expire(self):
|
||||
|
|
|
@ -141,7 +141,6 @@ substate_mapping = {
|
|||
|
||||
tag_review_by_rfc_editor = name(DocTagName, 'rfc-rev', "Review by RFC Editor")
|
||||
tag_via_rfc_editor = name(DocTagName, 'via-rfc', "Via RFC Editor")
|
||||
tag_expired_tombstone = name(DocTagName, 'exp-tomb', "Expired tombstone")
|
||||
tag_approved_in_minute = name(DocTagName, 'app-min', "Approved in minute")
|
||||
tag_has_errata = name(DocTagName, 'errata', "Has errata")
|
||||
|
||||
|
@ -815,7 +814,7 @@ for index, o in enumerate(all_drafts.iterator()):
|
|||
except State.MultipleObjectsReturned:
|
||||
d.set_state(State.objects.get(type="draft-stream-%s" % d.stream_id, name=s.name))
|
||||
|
||||
d.rev = o.revision
|
||||
d.rev = o.revision_display()
|
||||
d.abstract = o.abstract
|
||||
d.pages = o.txt_page_count
|
||||
d.intended_std_level = intended_std_level_mapping[o.intended_status.intended_status]
|
||||
|
@ -991,7 +990,6 @@ for index, o in enumerate(all_drafts.iterator()):
|
|||
|
||||
# tags
|
||||
sync_tag(d, o.review_by_rfc_editor, tag_review_by_rfc_editor)
|
||||
sync_tag(d, o.expired_tombstone, tag_expired_tombstone)
|
||||
|
||||
ctype = ContentType.objects.get_for_model(o)
|
||||
used_tags = AnnotationTag.objects.filter(annotationtagobjectrelation__content_type=ctype, annotationtagobjectrelation__content_id=o.pk).values_list('name', flat=True)
|
||||
|
|
Loading…
Reference in a new issue