From f05ffa521aef7488dcbcb78209919d0be1754a11 Mon Sep 17 00:00:00 2001 From: Seth Foster Date: Thu, 8 Apr 2021 11:36:40 -0400 Subject: [PATCH] the returned self.elapsed should be decimal, instead of float, to match django model field type --- awx/main/models/unified_jobs.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/awx/main/models/unified_jobs.py b/awx/main/models/unified_jobs.py index a8d20e1788..d33f54ce1a 100644 --- a/awx/main/models/unified_jobs.py +++ b/awx/main/models/unified_jobs.py @@ -4,6 +4,7 @@ # Python from io import StringIO import datetime +import decimal import codecs import json import logging @@ -842,8 +843,9 @@ class UnifiedJob( if 'finished' not in update_fields: update_fields.append('finished') + dq = decimal.Decimal('1.000') if self.elapsed is None: - self.elapsed = 0.0 + self.elapsed = decimal.Decimal(0.0).quantize(dq) if 'elapsed' not in update_fields: update_fields.append('elapsed') @@ -851,7 +853,8 @@ class UnifiedJob( # out the time that elapsed, do so. if self.started and self.finished and self.elapsed == 0.0: td = self.finished - self.started - self.elapsed = str((td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 ** 6) / (10 ** 6 * 1.0)) + elapsed = decimal.Decimal(td.total_seconds()) + self.elapsed = elapsed.quantize(dq) if 'elapsed' not in update_fields: update_fields.append('elapsed')