From 5aa3e8cf3bcbaeee2f724d07b578f82f080f3813 Mon Sep 17 00:00:00 2001 From: Chris Meyers Date: Tue, 3 Feb 2026 08:22:02 -0500 Subject: [PATCH] Make tz aware * Note, this doesn't change the logic or output, but maybe makes someones life easier later. * https://sonarcloud.io/project/issues?open=AZDmRade2PiUXMD3dXnx&id=ansible_awx --- awx/main/notifications/grafana_backend.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/awx/main/notifications/grafana_backend.py b/awx/main/notifications/grafana_backend.py index 286619108a..b1ac6ab335 100644 --- a/awx/main/notifications/grafana_backend.py +++ b/awx/main/notifications/grafana_backend.py @@ -76,10 +76,12 @@ class GrafanaBackend(AWXBaseEmailBackend, CustomNotificationBase): grafana_headers = {} if 'started' in m.body: try: - epoch = datetime.datetime.utcfromtimestamp(0) - grafana_data['time'] = grafana_data['timeEnd'] = int((dp.parse(m.body['started']).replace(tzinfo=None) - epoch).total_seconds() * 1000) + epoch = datetime.datetime.fromtimestamp(0, tz=datetime.timezone.utc) + grafana_data['time'] = grafana_data['timeEnd'] = int( + (dp.parse(m.body['started']).replace(tzinfo=datetime.timezone.utc) - epoch).total_seconds() * 1000 + ) if m.body.get('finished'): - grafana_data['timeEnd'] = int((dp.parse(m.body['finished']).replace(tzinfo=None) - epoch).total_seconds() * 1000) + grafana_data['timeEnd'] = int((dp.parse(m.body['finished']).replace(tzinfo=datetime.timezone.utc) - epoch).total_seconds() * 1000) except ValueError: logger.error(smart_str(_("Error converting time {} or timeEnd {} to int.").format(m.body['started'], m.body['finished']))) if not self.fail_silently: