Skip to content

Commit 711923a

Browse files
committed
Fix copying of job metrics for cached jobs
1 parent 1598d0b commit 711923a

File tree

2 files changed

+21
-2
lines changed

2 files changed

+21
-2
lines changed

lib/galaxy/model/__init__.py

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1484,6 +1484,15 @@ class JobMetricText(BaseJobMetric, RepresentById):
14841484
metric_name: Mapped[Optional[str]] = mapped_column(Unicode(255))
14851485
metric_value: Mapped[Optional[str]] = mapped_column(Unicode(JOB_METRIC_MAX_LENGTH))
14861486

1487+
def copy_to_job(self, job: "Job"):
1488+
job.text_metrics.append(
1489+
JobMetricText(
1490+
plugin=self.plugin,
1491+
metric_name=self.metric_name,
1492+
metric_value=self.metric_value,
1493+
)
1494+
)
1495+
14871496

14881497
class JobMetricNumeric(BaseJobMetric, RepresentById):
14891498
__tablename__ = "job_metric_numeric"
@@ -1494,6 +1503,15 @@ class JobMetricNumeric(BaseJobMetric, RepresentById):
14941503
metric_name: Mapped[Optional[str]] = mapped_column(Unicode(255))
14951504
metric_value: Mapped[Optional[Decimal]] = mapped_column(Numeric(JOB_METRIC_PRECISION, JOB_METRIC_SCALE))
14961505

1506+
def copy_to_job(self, job: "Job"):
1507+
job.numeric_metrics.append(
1508+
JobMetricNumeric(
1509+
plugin=self.plugin,
1510+
metric_name=self.metric_name,
1511+
metric_value=self.metric_value,
1512+
)
1513+
)
1514+
14971515

14981516
class TaskMetricText(BaseJobMetric, RepresentById):
14991517
__tablename__ = "task_metric_text"
@@ -1667,8 +1685,8 @@ def finished(self):
16671685

16681686
def copy_from_job(self, job: "Job", copy_outputs: bool = False):
16691687
self.copied_from_job_id = job.id
1670-
self.numeric_metrics = job.numeric_metrics
1671-
self.text_metrics = job.text_metrics
1688+
for metric in job.numeric_metrics + job.text_metrics:
1689+
metric.copy_to_job(self)
16721690
self.dependencies = job.dependencies
16731691
self.state = job.state
16741692
self.job_stderr = job.job_stderr

lib/galaxy_test/api/test_tools.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1052,6 +1052,7 @@ def test_run_cat1_use_cached_job(self):
10521052
for output in [outputs_one, outputs_two, outputs_three]:
10531053
output_id = output["outputs"][0]["id"]
10541054
dataset_details.append(self._get(f"datasets/{output_id}").json())
1055+
assert self._get(f"jobs/{output['jobs'][0]['id']}/metrics").json()
10551056
filenames = [dd["file_name"] for dd in dataset_details]
10561057
assert len(filenames) == 3, filenames
10571058
assert len(set(filenames)) <= 2, filenames

0 commit comments

Comments
 (0)