diff --git a/lava_scheduler_app/api/__init__.py b/lava_scheduler_app/api/__init__.py index f5fefa598d16deddbbcf4b59cc28b08719c9339f..48e17e9349b9123df7c4d1c3ebc54f2ddbdf3923 100644 --- a/lava_scheduler_app/api/__init__.py +++ b/lava_scheduler_app/api/__init__.py @@ -310,15 +310,20 @@ class SchedulerAPI(ExposedV2API): health=Device.HEALTH_RETIRED ) + devices_jobs = (( + dev, + dev.current_job() if dev.state == Device.STATE_RUNNING else None + ) for dev in devices_list) + return [ [ dev.hostname, dev.device_type.name, build_device_status_display(dev.state, dev.health), - dev.current_job().pk if dev.current_job() else None, + job.pk if job else None, True, ] - for dev in devices_list + for dev, job in devices_jobs ] def all_device_types(self): diff --git a/lava_scheduler_app/tables.py b/lava_scheduler_app/tables.py index f19acae760e141ff4ac3e281f2616648fb108be5..bb5ed6c224ed9525a496fcda77a5efea53c716f0 100644 --- a/lava_scheduler_app/tables.py +++ b/lava_scheduler_app/tables.py @@ -85,6 +85,8 @@ class ExpandedStatusColumn(tables.Column): """ if record.state == Device.STATE_RUNNING: current_job = record.current_job() + if not current_job: + return mark_safe("(no current job)") return mark_safe( # nosec - internal data "Running job #%s - %s submitted by %s" % (pklink(current_job), current_job.description, current_job.submitter)