Skip to content

Commit ec71083

Browse files
committed
Only keep the first and most recent yang validator SubmissionCheck for any given submission. Fixes ietf-tools#3542. Commit ready for merge.
- Legacy-Id: 19952
1 parent 7e17801 commit ec71083

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Copyright The IETF Trust 2022 All Rights Reserved
2+
3+
from tqdm import tqdm
4+
5+
from django.core.management.base import BaseCommand
6+
from django.db import migrations
7+
8+
from ietf.submit.models import Submission, SubmissionCheck
9+
10+
class Command(BaseCommand):
11+
help = ("Remove all but the first and last yangchecks for each Submission")
12+
13+
def handle(self, *args, **options):
14+
print("Identifying purgeable SubmissionChecks")
15+
keep = set()
16+
for submission in tqdm(Submission.objects.all()):
17+
qs = submission.checks.filter(checker="yang validation")
18+
if qs.count() == 0:
19+
continue
20+
qs = qs.order_by("time")
21+
keep.add(qs.first().pk)
22+
keep.add(qs.last().pk)
23+
keep.discard(None)
24+
print("Purging SubmissionChecks")
25+
print(
26+
SubmissionCheck.objects.filter(checker="yang validation")
27+
.exclude(pk__in=list(keep))
28+
.delete()
29+
)

ietf/utils/management/commands/run_yang_model_checks.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ def check_yang(self, checker, draft, force=False):
5555
if new_res != old_res:
5656
if self.verbosity > 1:
5757
self.stdout.write(" Saving new yang checker results for %s-%s" % (draft.name, draft.rev))
58-
SubmissionCheck.objects.create(submission=submission, checker=checker.name, passed=passed,
58+
qs = submission.checks.filter(checker=checker.name).order_by('time')
59+
submission.checks.filter(checker=checker.name).exclude(pk=qs.first().pk).delete()
60+
submission.checks.create(submission=submission, checker=checker.name, passed=passed,
5961
message=message, errors=errors, warnings=warnings, items=items,
6062
symbol=checker.symbol)
6163
else:

0 commit comments

Comments
 (0)