diff --git a/npbackup/__main__.py b/npbackup/__main__.py index c1e4943..fd06969 100644 --- a/npbackup/__main__.py +++ b/npbackup/__main__.py @@ -11,7 +11,7 @@ import sys from pathlib import Path import atexit from argparse import ArgumentParser -from datetime import datetime +from datetime import datetime, timezone import logging import json import ofunctions.logger_utils @@ -375,7 +375,7 @@ def main(): # Make sure we log execution time and error state at the end of the program atexit.register( execution_logs, - datetime.utcnow(), + datetime.now(timezone.utc), ) # kill_childs normally would not be necessary, but let's just be foolproof here (kills restic subprocess in all cases) atexit.register(kill_childs, os.getpid(), grace_period=30) diff --git a/npbackup/common.py b/npbackup/common.py index be4edce..2fee570 100644 --- a/npbackup/common.py +++ b/npbackup/common.py @@ -12,7 +12,7 @@ __license__ = "GPL-3.0-only" __build__ = "2023121801" -from datetime import datetime +from datetime import datetime, timezone from logging import getLogger import ofunctions.logger_utils @@ -35,7 +35,7 @@ def execution_logs(start_time: datetime) -> None: Makes sense ;) """ - end_time = datetime.utcnow() + end_time = datetime.now(timezone.utc) logger_worst_level = 0 for flt in logger.filters: diff --git a/npbackup/core/runner.py b/npbackup/core/runner.py index 294dd9d..3cc5a9c 100644 --- a/npbackup/core/runner.py +++ b/npbackup/core/runner.py @@ -16,7 +16,7 @@ import logging import tempfile import pidfile import queue -from datetime import datetime, timedelta +from datetime import datetime, timedelta, timezone from functools import wraps import queue from copy import deepcopy @@ -276,10 +276,10 @@ class NPBackupRunner: @wraps(fn) def wrapper(self, *args, **kwargs): - start_time = datetime.utcnow() + start_time = datetime.now(timezone.utc) # pylint: disable=E1102 (not-callable) result = fn(self, *args, **kwargs) - self.exec_time = (datetime.utcnow() - start_time).total_seconds() + self.exec_time = (datetime.now(timezone.utc) - start_time).total_seconds() # Optional patch result with exec time if ( self.restic_runner diff --git a/npbackup/gui/__main__.py b/npbackup/gui/__main__.py index ebf7aac..0d534e8 100644 --- a/npbackup/gui/__main__.py +++ b/npbackup/gui/__main__.py @@ -18,7 +18,7 @@ from argparse import ArgumentParser from pathlib import Path from logging import getLogger import ofunctions.logger_utils -from datetime import datetime +from datetime import datetime, timezone import dateutil from time import sleep from ruamel.yaml.comments import CommentedMap @@ -935,7 +935,7 @@ def _main_gui(viewer_mode: bool): def main_gui(viewer_mode=False): atexit.register( npbackup.common.execution_logs, - datetime.now(datetime.UTC), + datetime.now(timezone.utc), ) # kill_childs normally would not be necessary, but let's just be foolproof here (kills restic subprocess in all cases) atexit.register(kill_childs, os.getpid(), grace_period=30) diff --git a/npbackup/restic_metrics/__init__.py b/npbackup/restic_metrics/__init__.py index b806397..21df568 100644 --- a/npbackup/restic_metrics/__init__.py +++ b/npbackup/restic_metrics/__init__.py @@ -22,7 +22,7 @@ from typing import Union, List, Tuple import logging import platform import requests -from datetime import datetime +from datetime import datetime, timezone from argparse import ArgumentParser from ofunctions.misc import BytesConverter, convert_time_to_seconds @@ -236,7 +236,7 @@ def restic_json_to_prometheus( prom_metrics.append( 'restic_backup_failure{{{},timestamp="{}"}} {}'.format( - labels, int(datetime.utcnow().timestamp()), 1 if not good_backup else 0 + labels, int(datetime.now(timezone.utc).timestamp()), 1 if not good_backup else 0 ) ) @@ -431,7 +431,7 @@ def restic_output_2_metrics(restic_result, output, labels=None): metrics.append( 'restic_backup_failure{{{},timestamp="{}"}} {}'.format( - labels, int(datetime.utcnow().timestamp()), 1 if errors else 0 + labels, int(datetime.now(timezone.utc).timestamp()), 1 if errors else 0 ) ) return errors, metrics diff --git a/npbackup/restic_wrapper/__init__.py b/npbackup/restic_wrapper/__init__.py index 1f317a1..fd5fede 100644 --- a/npbackup/restic_wrapper/__init__.py +++ b/npbackup/restic_wrapper/__init__.py @@ -264,7 +264,7 @@ class ResticRunner: errors_allowed is needed since we're testing if repo is already initialized no_output_queues is needed since we don't want is_init output to be logged """ - start_time = datetime.utcnow() + start_time = datetime.now(timezone.utc) additional_parameters = ( f" {self.additional_parameters.strip()} " if self.additional_parameters @@ -298,7 +298,7 @@ class ResticRunner: # _executor_running = False is also set via on_exit function call self._executor_running = False - self.exec_time = (datetime.utcnow() - start_time).total_seconds + self.exec_time = (datetime.now(timezone.utc) - start_time).total_seconds if exit_code == 0: self.last_command_status = True diff --git a/upgrade_server/upgrade_server/crud.py b/upgrade_server/upgrade_server/crud.py index da113f3..270bd42 100644 --- a/upgrade_server/upgrade_server/crud.py +++ b/upgrade_server/upgrade_server/crud.py @@ -15,7 +15,7 @@ from typing import Optional, Union from logging import getLogger import hashlib from argparse import ArgumentParser -from datetime import datetime +from datetime import datetime, timezone from upgrade_server.models.files import FileGet, FileSend from upgrade_server.models.oper import CurrentVersion import upgrade_server.configuration as configuration @@ -59,7 +59,7 @@ def is_enabled() -> bool: def store_host_info(destination: str, host_id: dict) -> None: try: data = ( - datetime.utcnow().isoformat() + datetime.now(timezone.utc).isoformat() + "," + ",".join([value if value else "" for value in host_id.values()]) + "\n"