Skip to content

Commit 76ba322

Browse files
authored
Simplify the Project.add_message method for object_instance (#1363)
Signed-off-by: tdruez <tdruez@nexb.com>
1 parent 2dd0784 commit 76ba322

File tree

6 files changed

+40
-26
lines changed

6 files changed

+40
-26
lines changed

scanpipe/models.py

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1231,8 +1231,7 @@ def add_message(
12311231
model="",
12321232
details=None,
12331233
exception=None,
1234-
resource=None,
1235-
package=None,
1234+
object_instance=None,
12361235
):
12371236
"""
12381237
Create a ProjectMessage record for this Project.
@@ -1255,13 +1254,16 @@ def add_message(
12551254

12561255
details = details or {}
12571256

1258-
# Do not change the following field names as those have special behavior in
1259-
# templates.
1260-
if resource:
1261-
details["resource_path"] = resource.path
1262-
if package:
1257+
# The following field names have a special behavior in templates.
1258+
if isinstance(object_instance, CodebaseResource):
1259+
details["resource_path"] = object_instance.path
1260+
1261+
elif isinstance(object_instance, DiscoveredPackage):
12631262
details.update(
1264-
{"package_url": package.package_url, "package_uuid": package.uuid}
1263+
{
1264+
"package_url": object_instance.package_url,
1265+
"package_uuid": object_instance.uuid,
1266+
}
12651267
)
12661268

12671269
return ProjectMessage.objects.create(
@@ -1279,13 +1281,17 @@ def add_info(
12791281
model="",
12801282
details=None,
12811283
exception=None,
1282-
resource=None,
1283-
package=None,
1284+
object_instance=None,
12841285
):
12851286
"""Create an INFO ProjectMessage record for this project."""
12861287
severity = ProjectMessage.Severity.INFO
12871288
return self.add_message(
1288-
severity, description, model, details, exception, resource, package
1289+
severity,
1290+
description,
1291+
model,
1292+
details,
1293+
exception,
1294+
object_instance,
12891295
)
12901296

12911297
def add_warning(
@@ -1294,13 +1300,17 @@ def add_warning(
12941300
model="",
12951301
details=None,
12961302
exception=None,
1297-
resource=None,
1298-
package=None,
1303+
object_instance=None,
12991304
):
13001305
"""Create a WARNING ProjectMessage record for this project."""
13011306
severity = ProjectMessage.Severity.WARNING
13021307
return self.add_message(
1303-
severity, description, model, details, exception, resource, package
1308+
severity,
1309+
description,
1310+
model,
1311+
details,
1312+
exception,
1313+
object_instance,
13041314
)
13051315

13061316
def add_error(
@@ -1309,13 +1319,17 @@ def add_error(
13091319
model="",
13101320
details=None,
13111321
exception=None,
1312-
resource=None,
1313-
package=None,
1322+
object_instance=None,
13141323
):
13151324
"""Create an ERROR ProjectMessage record using for this project."""
13161325
severity = ProjectMessage.Severity.ERROR
13171326
return self.add_message(
1318-
severity, description, model, details, exception, resource, package
1327+
severity,
1328+
description,
1329+
model,
1330+
details,
1331+
exception,
1332+
object_instance,
13191333
)
13201334

13211335
def get_absolute_url(self):
@@ -1608,7 +1622,7 @@ def add_error(self, exception):
16081622
model=self.__class__,
16091623
details=model_to_dict(self),
16101624
exception=exception,
1611-
resource=resource,
1625+
object_instance=resource,
16121626
)
16131627

16141628
def add_errors(self, exceptions):
@@ -2831,7 +2845,7 @@ def create_and_add_package(self, package_data):
28312845
model=DiscoveredPackage,
28322846
details=package_data,
28332847
exception=exception,
2834-
resource=self,
2848+
object_instance=self,
28352849
)
28362850
else:
28372851
self.add_package(package)

scanpipe/pipelines/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ def add_error(self, exception, resource=None):
204204
self.project.add_error(
205205
model=self.pipeline_name,
206206
exception=exception,
207-
resource=resource,
207+
object_instance=resource,
208208
)
209209

210210
@contextmanager

scanpipe/pipes/d2d.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -834,7 +834,7 @@ def create_indexes(cls, project, from_about_files, logger=None):
834834
description="Cannot create package from ABOUT file",
835835
model="map_about_files",
836836
details=error_message_details,
837-
resource=about_file_resource,
837+
object_instance=about_file_resource,
838838
)
839839
continue
840840

@@ -846,7 +846,7 @@ def create_indexes(cls, project, from_about_files, logger=None):
846846
description="ABOUT file does not have about_resource",
847847
model="map_about_files",
848848
details=error_message_details,
849-
resource=about_file_resource,
849+
object_instance=about_file_resource,
850850
)
851851
continue
852852
else:

scanpipe/pipes/purldb.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -491,7 +491,7 @@ def enrich_package(package):
491491
try:
492492
purldb_entries = collect_data_for_purl(package_url, raise_on_error=True)
493493
except PurlDBException as exception:
494-
project.add_error(model="PurlDB", exception=exception, package=package)
494+
project.add_error(model="PurlDB", exception=exception, object_instance=package)
495495
return
496496

497497
if not purldb_entries:
@@ -507,7 +507,7 @@ def enrich_package(package):
507507
f'Multiple entries found in the PurlDB for "{package_url}". '
508508
f"Using data from the most recent version."
509509
),
510-
package=package,
510+
object_instance=package,
511511
)
512512
# Do not set version-specific fields, such as the download_url.
513513
purldb_entry = {

scanpipe/pipes/resolve.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def get_packages(project, package_registry, manifest_resources, model=None):
8181
project.add_error(
8282
description="No packages could be resolved",
8383
model=model,
84-
resource=resource,
84+
object_instance=resource,
8585
)
8686

8787
if sboms_headers:

scanpipe/pipes/scancode.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ def add_resource_to_package(package_uid, resource, project):
428428
except ObjectDoesNotExist as error:
429429
details = {"package_uid": str(package_uid)}
430430
project.add_error(
431-
error, model="assemble_package", details=details, resource=resource
431+
error, model="assemble_package", details=details, object_instance=resource
432432
)
433433
return
434434

0 commit comments

Comments
 (0)