diff --git a/src/borgmanager/borg/outputhandler.py b/src/borgmanager/borg/outputhandler.py index 6cacb16..baf4885 100644 --- a/src/borgmanager/borg/outputhandler.py +++ b/src/borgmanager/borg/outputhandler.py @@ -22,4 +22,4 @@ class OutputHandler(object): return repo, archive, cache def get_borg_error(self): - return Error(self.borg_output, datetime.now()) + return Error(self.borg_output, datetime.utcnow()) diff --git a/src/borgmanager/database/borgdatabase.py b/src/borgmanager/database/borgdatabase.py index 9b3618a..09a6798 100644 --- a/src/borgmanager/database/borgdatabase.py +++ b/src/borgmanager/database/borgdatabase.py @@ -1,5 +1,4 @@ from .connection import RepoConn, ArchiveConn, ErrorConn, LabelConn, CacheConn -from .object import Repo, Archive, Label, Error from .object.label import Label from pathlib import Path diff --git a/src/borgmanager/database/connection/errorconn.py b/src/borgmanager/database/connection/errorconn.py index 3e8d29a..9debc27 100644 --- a/src/borgmanager/database/connection/errorconn.py +++ b/src/borgmanager/database/connection/errorconn.py @@ -35,7 +35,7 @@ class ErrorConn(DatabaseConnection): statement = f"INSERT INTO {self._sql_table}"\ f" ('label_id', 'error', 'time')"\ f" VALUES (?, ?, ?);" - args = (label_id, record.error, datetime.now()) + args = (label_id, record.error, datetime.utcnow()) cursor.execute(statement, args) self.sql_commit() return cursor.lastrowid diff --git a/src/borgmanager/database/object/archive.py b/src/borgmanager/database/object/archive.py index 5ecca3f..09955bf 100644 --- a/src/borgmanager/database/object/archive.py +++ b/src/borgmanager/database/object/archive.py @@ -1,5 +1,5 @@ from . import DBObject -from datetime import datetime +from datetime import datetime, timezone class Archive(DBObject): @@ -19,8 +19,8 @@ class Archive(DBObject): def from_json(cls, json: dict): fingerprint = json['id'] name = json['name'] - start = datetime.fromisoformat(json['start']) - end = datetime.fromisoformat(json['end']) + start = datetime.fromisoformat(json['start']).astimezone(tz=timezone.utc).replace(tzinfo=None) + end = datetime.fromisoformat(json['end']).astimezone(tz=timezone.utc).replace(tzinfo=None) stats_json = json['stats'] file_count = stats_json['nfiles'] @@ -48,6 +48,6 @@ class Archive(DBObject): # region GET def seconds_since(self) -> float: - return (datetime.now() - self.start).total_seconds() + return (datetime.utcnow() - self.start).total_seconds() # endregion diff --git a/src/borgmanager/database/object/error.py b/src/borgmanager/database/object/error.py index bbe68d3..e61dd35 100644 --- a/src/borgmanager/database/object/error.py +++ b/src/borgmanager/database/object/error.py @@ -1,5 +1,5 @@ from . import DBObject -from datetime import datetime +from datetime import datetime, timezone class Error(DBObject): @@ -11,7 +11,7 @@ class Error(DBObject): @classmethod def from_json(cls, json: dict): error = json['error'] - time = datetime.fromisoformat(json['time']) + time = datetime.fromisoformat(json['time']).astimezone(tz=timezone.utc).replace(tzinfo=None) return cls(error, time) @classmethod diff --git a/src/borgmanager/database/object/repo.py b/src/borgmanager/database/object/repo.py index c91e4df..1c200f1 100644 --- a/src/borgmanager/database/object/repo.py +++ b/src/borgmanager/database/object/repo.py @@ -1,5 +1,5 @@ from . import DBObject -from datetime import datetime +from datetime import datetime, timezone from pathlib import Path @@ -16,7 +16,9 @@ class Repo(DBObject): def from_json(cls, json: dict): uuid = json['id'] location = Path(json['location']) - last_modified = datetime.fromisoformat(json['last_modified']) + last_modified = datetime.fromisoformat(json['last_modified'])\ + .astimezone(tz=timezone.utc)\ + .replace(tzinfo=None) return cls(uuid, location, last_modified) @classmethod @@ -28,6 +30,6 @@ class Repo(DBObject): # region GET def seconds_since(self) -> float: - return (datetime.now() - self.last_modified).total_seconds() + return (datetime.utcnow() - self.last_modified).total_seconds() # endregion