]> git-server-git.apps.pok.os.sepia.ceph.com Git - teuthology.git/commitdiff
util.time.parse_timestamp(): Add alt. format
authorZack Cerza <zack@cerza.org>
Wed, 5 Mar 2025 00:03:39 +0000 (17:03 -0700)
committerZack Cerza <zack@cerza.org>
Wed, 5 Mar 2025 01:05:46 +0000 (18:05 -0700)
Paddles uses this format.

Signed-off-by: Zack Cerza <zack@cerza.org>
teuthology/util/time.py

index 8e0525fcc3649f685cab6dcdc5d1b25fe040d175..eb74696025604c912722eed8f9e254f9b1cd7271 100644 (file)
@@ -4,18 +4,23 @@ from datetime import datetime, timedelta, timezone
 
 # When we're not using ISO format, we're using this
 TIMESTAMP_FMT = "%Y-%m-%d_%H:%M:%S"
+# Or this, in the case of paddles timestamps
+TIMESTAMP_FMT_ALT = "%Y-%m-%d %H:%M:%S.%f"
 
 def parse_timestamp(timestamp: str) -> datetime:
     """
-    timestamp: A string either in ISO 8601 format or TIMESTAMP_FMT.
-               If no timezone is specified, UTC is assumed.
+    timestamp: A string either in ISO 8601 format, TIMESTAMP_FMT or
+               TIMESTAMP_FMT_ALT. If no timezone is specified, UTC is assumed.
 
     :returns: a datetime object
     """
     try:
         dt = datetime.fromisoformat(timestamp)
     except ValueError:
-        dt = datetime.strptime(timestamp, TIMESTAMP_FMT)
+        try:
+            dt = datetime.strptime(timestamp, TIMESTAMP_FMT)
+        except ValueError:
+            dt = datetime.strptime(timestamp, TIMESTAMP_FMT_ALT)
     if dt.tzinfo is None:
         dt = dt.replace(tzinfo=timezone.utc)
     return dt