@@ -18,13 +18,30 @@ def drop_malformed_advisory_v2(apps, _):
1818 "talos-" , "srcclr-sid-" , "bit-" , "gnutls-" , "rustsec-" , "snyk-" ,
1919 "temp-" , "TYPO3-" , "wnpa-sec-" , "sa-core-" , "skcsirt-" , "flow-" , "gsd-"
2020 ]
21+
22+ target_importers = ["alpine_linux_importer_v2" ,
23+ "fireeye_importer_v2" ,
24+ "istio_importer_v2" ,
25+ "mattermost_importer_v2" ]
2126 query = Q ()
2227 for alias_prefix in valid_alias_prefix :
2328 query |= Q (alias__istartswith = alias_prefix )
2429
25- malformed_aliases = AdvisoryAlias .objects .exclude (query )
26- AdvisoryV2 .objects .filter (aliases__in = malformed_aliases , datasource_id__in = ["alpine_linux_importer_v2" , "fireeye_importer_v2" , "istio_importer_v2" , "mattermost_importer_v2" ]).delete ()
27- malformed_aliases .delete ()
30+ malformed_alias_ids = list (
31+ AdvisoryAlias .objects .filter (
32+ advisories__datasource_id__in = target_importers
33+ ).exclude (query ).values_list ('id' , flat = True ).distinct ()
34+ )
35+
36+ AdvisoryV2 .objects .filter (
37+ datasource_id__in = target_importers ,
38+ aliases__id__in = malformed_alias_ids
39+ ).delete ()
40+
41+ AdvisoryAlias .objects .filter (
42+ id__in = malformed_alias_ids ,
43+ advisories__isnull = True
44+ ).delete ()
2845
2946 operations = [
3047 migrations .RunPython (drop_malformed_advisory_v2 , reverse_code = migrations .RunPython .noop ),
0 commit comments