Skip to content

Commit 984a0a8

Browse files
committed
Consolidate migrations #447
* Update DiscoveredDependency ordering * Update daglib test expectations Signed-off-by: Jono Yang <[email protected]>
1 parent 483228e commit 984a0a8

9 files changed

+65
-105
lines changed

scanpipe/migrations/0022_rename_dependencies_discoveredpackage_dependencies_data_and_more.py

+46
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,50 @@ class Migration(migrations.Migration):
4444
model_name='discovereddependency',
4545
constraint=models.UniqueConstraint(condition=models.Q(('dependency_uid', ''), _negated=True), fields=('project', 'dependency_uid'), name='scanpipe_discovereddependency_unique_dependency_uid_within_project'),
4646
),
47+
migrations.AddField(
48+
model_name='discovereddependency',
49+
name='name',
50+
field=models.CharField(blank=True, help_text='Name of the package.', max_length=100),
51+
),
52+
migrations.AddField(
53+
model_name='discovereddependency',
54+
name='namespace',
55+
field=models.CharField(blank=True, help_text='Package name prefix, such as Maven groupid, Docker image owner, GitHub user or organization, etc.', max_length=255),
56+
),
57+
migrations.AddField(
58+
model_name='discovereddependency',
59+
name='qualifiers',
60+
field=models.CharField(blank=True, help_text='Extra qualifying data for a package such as the name of an OS, architecture, distro, etc.', max_length=1024),
61+
),
62+
migrations.AddField(
63+
model_name='discovereddependency',
64+
name='subpath',
65+
field=models.CharField(blank=True, help_text='Extra subpath within a package, relative to the package root.', max_length=200),
66+
),
67+
migrations.AddField(
68+
model_name='discovereddependency',
69+
name='type',
70+
field=models.CharField(blank=True, help_text='A short code to identify the type of this package. For example: gem for a Rubygem, docker for a container, pypi for a Python Wheel or Egg, maven for a Maven Jar, deb for a Debian package, etc.', max_length=16),
71+
),
72+
migrations.AddField(
73+
model_name='discovereddependency',
74+
name='version',
75+
field=models.CharField(blank=True, help_text='Version of the package.', max_length=100),
76+
),
77+
migrations.AlterModelOptions(
78+
name="discovereddependency",
79+
options={
80+
"ordering": [
81+
"-is_runtime",
82+
"-is_resolved",
83+
"is_optional",
84+
"dependency_uid",
85+
"for_package",
86+
"datafile_resource",
87+
"datasource_id",
88+
],
89+
"verbose_name": "discovered dependency",
90+
"verbose_name_plural": "discovered dependencies",
91+
},
92+
),
4793
]

scanpipe/migrations/0023_migrate_dependencies.py

+8-11
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
# Generated by Django 4.0.6 on 2022-08-12 23:13
22

3+
from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
34
from django.db import migrations
4-
from django.db.models import F, Q
5-
from django.db.models.functions import Concat
65

76

87
def migrate_dependencies_to_discovereddependencies(apps, schema_editor):
@@ -19,19 +18,17 @@ def migrate_dependencies_to_discovereddependencies(apps, schema_editor):
1918
dependency_data.pop("extra_data", None)
2019
dependency_data.pop("resolved_package", None)
2120

22-
for_package = None
2321
for_package_uid = dependency_data.get("for_package_uid")
24-
p = project.discoveredpackages.filter(package_uid=for_package_uid)
25-
if p.exists():
26-
for_package = project.discoveredpackages.get(
27-
package_uid=for_package_uid
28-
)
22+
try:
23+
for_package = project.discoveredpackages.get(package_uid=for_package_uid)
24+
except (ObjectDoesNotExist, MultipleObjectsReturned):
25+
for_package = None
2926

30-
datafile_resource = None
3127
datafile_path = dependency_data.get("datafile_path")
32-
datafile = project.codebaseresources.filter(path=datafile_path)
33-
if datafile.exists():
28+
try:
3429
datafile_resource = project.codebaseresources.get(path=datafile_path)
30+
except (ObjectDoesNotExist, MultipleObjectsReturned):
31+
datafile_resource = None
3532

3633
DiscoveredDependency.objects.create(
3734
project=project,

scanpipe/migrations/0026_migrate_dependency_uid_to_purl_fields.py renamed to scanpipe/migrations/0024_migrate_dependency_uid_to_purl_fields.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ def migrate_dependency_uids_to_purl_fields(apps, schema_editor):
2323
class Migration(migrations.Migration):
2424

2525
dependencies = [
26-
('scanpipe', '0025_discovereddependency_name_and_more'),
26+
('scanpipe', '0023_migrate_dependencies'),
2727
]
2828

2929
operations = [

scanpipe/migrations/0024_remove_discoveredpackage_dependencies_data.py

-17
This file was deleted.

scanpipe/migrations/0025_discovereddependency_name_and_more.py

-43
This file was deleted.

scanpipe/migrations/0027_remove_discovereddependency_purl.py renamed to scanpipe/migrations/0025_remove_discovereddependency_purl_and_more.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,14 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('scanpipe', '0026_migrate_dependency_uid_to_purl_fields'),
9+
('scanpipe', '0024_migrate_dependency_uid_to_purl_fields'),
1010
]
1111

1212
operations = [
13+
migrations.RemoveField(
14+
model_name='discoveredpackage',
15+
name='dependencies_data',
16+
),
1317
migrations.RemoveField(
1418
model_name='discovereddependency',
1519
name='purl',

scanpipe/migrations/0028_alter_discovereddependency_options.py

-28
This file was deleted.

scanpipe/models.py

+1
Original file line numberDiff line numberDiff line change
@@ -2026,6 +2026,7 @@ class Meta:
20262026
"dependency_uid",
20272027
"for_package",
20282028
"datafile_resource",
2029+
"datasource_id",
20292030
]
20302031
constraints = [
20312032
models.UniqueConstraint(

scanpipe/tests/data/daglib-0.6.0-py3-none-any.whl_scan_codebase.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,8 @@
191191
"is_resolved": false,
192192
"dependency_uid": "pkg:pypi/networkx?uuid=fixed-uid-done-for-testing-5642512d1758",
193193
"for_package_uid": "pkg:pypi/[email protected]?uuid=fixed-uid-done-for-testing-5642512d1758",
194-
"datafile_path": "daglib-0.6.0-py3-none-any.whl",
195-
"datasource_id": "pypi_wheel"
194+
"datafile_path": "daglib-0.6.0-py3-none-any.whl-extract/daglib-0.6.0.dist-info/METADATA",
195+
"datasource_id": "pypi_wheel_metadata"
196196
},
197197
{
198198
"purl": "pkg:pypi/networkx",
@@ -204,8 +204,8 @@
204204
"is_resolved": false,
205205
"dependency_uid": "pkg:pypi/networkx?uuid=fixed-uid-done-for-testing-5642512d1758",
206206
"for_package_uid": "pkg:pypi/[email protected]?uuid=fixed-uid-done-for-testing-5642512d1758",
207-
"datafile_path": "daglib-0.6.0-py3-none-any.whl-extract/daglib-0.6.0.dist-info/METADATA",
208-
"datasource_id": "pypi_wheel_metadata"
207+
"datafile_path": "daglib-0.6.0-py3-none-any.whl",
208+
"datasource_id": "pypi_wheel"
209209
}
210210
],
211211
"files": [

0 commit comments

Comments
 (0)