Skip to content

Commit bc5f2b9

Browse files
authored
Merge pull request #2291 from aboutcode-org/fix-malformed-alises-migration
fix: delete AdvisorySet associated with malformed aliases
2 parents 6973a54 + 70e899a commit bc5f2b9

1 file changed

Lines changed: 57 additions & 20 deletions

File tree

vulnerabilities/migrations/0124_advisoryv2_remove_malformed_aliases_and_dvisory_id.py

Lines changed: 57 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,75 @@ class Migration(migrations.Migration):
1010
def drop_malformed_advisory_v2(apps, _):
1111
AdvisoryV2 = apps.get_model("vulnerabilities", "AdvisoryV2")
1212
AdvisoryAlias = apps.get_model("vulnerabilities", "AdvisoryAlias")
13+
AdvisorySet = apps.get_model("vulnerabilities", "AdvisorySet")
1314

1415
valid_alias_prefix = [
15-
"cve-", "osv-", "xsa-", "vsv", "zbx-", "zf2", "vu#", "gms-", "usn-",
16-
"sw-", "ss-", "ts-", "osvdb-", "ysa-", "se-core-", "pysec-", "alpine-",
17-
"dw2", "go-", "mal-", "zdi-can", "asa-", "ezsa-", "ghsl-", "ghsa-",
18-
"talos-", "srcclr-sid-", "bit-", "gnutls-", "rustsec-", "snyk-",
19-
"temp-", "TYPO3-", "wnpa-sec-", "sa-core-", "skcsirt-", "flow-", "gsd-"
16+
"cve-",
17+
"osv-",
18+
"xsa-",
19+
"vsv",
20+
"zbx-",
21+
"zf2",
22+
"vu#",
23+
"gms-",
24+
"usn-",
25+
"sw-",
26+
"ss-",
27+
"ts-",
28+
"osvdb-",
29+
"ysa-",
30+
"se-core-",
31+
"pysec-",
32+
"alpine-",
33+
"dw2",
34+
"go-",
35+
"mal-",
36+
"zdi-can",
37+
"asa-",
38+
"ezsa-",
39+
"ghsl-",
40+
"ghsa-",
41+
"talos-",
42+
"srcclr-sid-",
43+
"bit-",
44+
"gnutls-",
45+
"rustsec-",
46+
"snyk-",
47+
"temp-",
48+
"TYPO3-",
49+
"wnpa-sec-",
50+
"sa-core-",
51+
"skcsirt-",
52+
"flow-",
53+
"gsd-",
2054
]
2155

22-
target_importers = ["alpine_linux_importer_v2",
23-
"fireeye_importer_v2",
24-
"istio_importer_v2",
25-
"mattermost_importer_v2"]
56+
target_importers = [
57+
"alpine_linux_importer_v2",
58+
"fireeye_importer_v2",
59+
"istio_importer_v2",
60+
"mattermost_importer_v2",
61+
]
2662
query = Q()
2763
for alias_prefix in valid_alias_prefix:
2864
query |= Q(alias__istartswith=alias_prefix)
2965

3066
malformed_alias_ids = list(
31-
AdvisoryAlias.objects.filter(
32-
advisories__datasource_id__in=target_importers
33-
).exclude(query).values_list('id', flat=True).distinct()
67+
AdvisoryAlias.objects.filter(advisories__datasource_id__in=target_importers)
68+
.exclude(query)
69+
.values_list("id", flat=True)
70+
.distinct()
71+
)
72+
73+
advisories_to_delete = AdvisoryV2.objects.filter(
74+
datasource_id__in=target_importers, aliases__id__in=malformed_alias_ids
3475
)
3576

36-
AdvisoryV2.objects.filter(
37-
datasource_id__in=target_importers,
38-
aliases__id__in=malformed_alias_ids
39-
).delete()
77+
AdvisorySet.objects.filter(primary_advisory__in=advisories_to_delete).delete()
78+
79+
advisories_to_delete.delete()
4080

41-
AdvisoryAlias.objects.filter(
42-
id__in=malformed_alias_ids,
43-
advisories__isnull=True
44-
).delete()
81+
AdvisoryAlias.objects.filter(id__in=malformed_alias_ids, advisories__isnull=True).delete()
4582

4683
operations = [
4784
migrations.RunPython(drop_malformed_advisory_v2, reverse_code=migrations.RunPython.noop),

0 commit comments

Comments
 (0)