File indexing completed on 2026-11-09 10:47:24
0001
0002 """segfault-findings-serials.py — permanent ids for the findings written
0003 before serials existed.
0004
0005 A finding draws its serial (data['serial'], shown as f-n) once, when it is
0006 written (monitor_app/segfaults.py, set_finding). The findings written
0007 before 2026-09-12 have none; this assigns them in creation order and
0008 prints what it assigned. Idempotent: a finding with a serial is left as
0009 it is.
0010
0011 Django-bootstrap standalone script, by hand::
0012
0013 cd /data/wenauseic/github/swf-monitor/src
0014 ../../swf-testbed/.venv/bin/python ../scripts/segfault-findings-serials.py --by wenaus
0015 """
0016 import argparse
0017 import os
0018 import sys
0019
0020 THIS_DIR = os.path.dirname(os.path.abspath(__file__))
0021 sys.path.insert(0, os.path.join(THIS_DIR, '..', 'src'))
0022 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'swf_monitor_project.settings')
0023
0024 import django
0025 django.setup()
0026
0027 from monitor_app.segfaults import assign_finding_serials, finding_id
0028
0029
0030 def main():
0031 ap = argparse.ArgumentParser(description=__doc__.split('\n\n')[0])
0032 ap.add_argument('--by', default='operator', help='the version stamp on each finding written')
0033 args = ap.parse_args()
0034 assigned = assign_finding_serials(args.by)
0035 for name, serial in assigned:
0036 print(f'{finding_id(serial)} {name}')
0037 print(f'{len(assigned)} finding(s) given a serial')
0038 return 0
0039
0040
0041 if __name__ == '__main__':
0042 sys.exit(main())