Skip to content

Commit 927833f

Browse files
committed
Make Alias vulnerability field optional
Signed-off-by: Keshav Priyadarshi <git@keshav.space>
1 parent 75f92e0 commit 927833f

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

vulnerabilities/migrations/0089_migrate_advisory_aliases.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from aboutcode.pipeline import LoopProgress
1111
from django.db import migrations
1212
from django.db import models
13+
import django.db.models.deletion
1314

1415
"""
1516
Model and data migration for converting the Advisory aliases
@@ -85,6 +86,19 @@ def reverse_populate_new_advisory_aliases_field(apps, schema_editor):
8586
)
8687

8788
operations = [
89+
# Make vulnerability relation optional
90+
migrations.AlterField(
91+
model_name="alias",
92+
name="vulnerability",
93+
field=models.ForeignKey(
94+
blank=True,
95+
null=True,
96+
on_delete=django.db.models.deletion.SET_NULL,
97+
related_name="aliases",
98+
to="vulnerabilities.vulnerability",
99+
),
100+
),
101+
88102
# Rename aliases field to old_aliases
89103
migrations.AlterModelOptions(
90104
name="advisory",
@@ -109,7 +123,7 @@ def reverse_populate_new_advisory_aliases_field(apps, schema_editor):
109123
code=populate_new_advisory_aliases_field,
110124
reverse_code=reverse_populate_new_advisory_aliases_field,
111125
),
112-
# Delete old_alias field
126+
# Delete JSON aliases field
113127
migrations.RemoveField(
114128
model_name="advisory",
115129
name="old_aliases",

vulnerabilities/models.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1275,8 +1275,10 @@ class Alias(models.Model):
12751275

12761276
vulnerability = models.ForeignKey(
12771277
Vulnerability,
1278-
on_delete=models.CASCADE,
12791278
related_name="aliases",
1279+
on_delete=models.SET_NULL,
1280+
null=True,
1281+
blank=True,
12801282
)
12811283

12821284
objects = AliasQuerySet.as_manager()
@@ -1378,7 +1380,7 @@ def to_advisory_data(self) -> "AdvisoryData":
13781380
from vulnerabilities.importer import Reference
13791381

13801382
return AdvisoryData(
1381-
aliases=self.aliases,
1383+
aliases=[item.alias for item in self.aliases.all()],
13821384
summary=self.summary,
13831385
affected_packages=[
13841386
AffectedPackage.from_dict(pkg) for pkg in self.affected_packages if pkg

0 commit comments

Comments
 (0)