Skip to content

Commit

Permalink
Add migrations to remove corrupted advisories
Browse files Browse the repository at this point in the history
Signed-off-by: Tushar Goel <tushar.goel.dav@gmail.com>
  • Loading branch information
TG1999 committed Jan 25, 2023
1 parent 59fd972 commit 9b335c4
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions vulnerabilities/migrations/0037_auto_20230120_1204.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from django.db import migrations
from packageurl import PackageURL

from vulnerabilities.severity_systems import SCORING_SYSTEMS

class Migration(migrations.Migration):

def remove_advisories(apps, schema_editor):
Advisory = apps.get_model("vulnerabilities", "Advisory")
deletables = []
for advisory in Advisory.objects.iterator(chunk_size=1000):
print(advisory.pk)
for ref in advisory.references:
if not ref["url"]:
deletables.append(advisory.pk)
break
for sev in ref["severities"]:
if sev["system"] not in SCORING_SYSTEMS:
deletables.append(advisory.pk)
break
Advisory.objects.filter(pk__in=deletables).delete()

dependencies = [
("vulnerabilities", "0036_alter_package_package_url_and_more"),
]

operations = [
migrations.RunPython(remove_advisories, reverse_code=migrations.RunPython.noop),
]

0 comments on commit 9b335c4

Please sign in to comment.