diff --git a/lib/rucio/daemons/abacus/account.py b/lib/rucio/daemons/abacus/account.py index c601937255..55a638c4e5 100644 --- a/lib/rucio/daemons/abacus/account.py +++ b/lib/rucio/daemons/abacus/account.py @@ -20,6 +20,7 @@ import logging import threading import time +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.common import exception @@ -28,6 +29,10 @@ from rucio.core.account_counter import get_updated_account_counters, update_account_counter, fill_account_counter_history_table from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() @@ -68,7 +73,7 @@ def run_once(heartbeat_handler, **_kwargs): logger(logging.DEBUG, 'update of account-rse counter "%s-%s" took %f' % (account_rse_id[0], account_rse_id[1], time.time() - start_time)) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/abacus/collection_replica.py b/lib/rucio/daemons/abacus/collection_replica.py index 86cf868128..c64a0e02e7 100644 --- a/lib/rucio/daemons/abacus/collection_replica.py +++ b/lib/rucio/daemons/abacus/collection_replica.py @@ -20,6 +20,7 @@ import logging import threading import time +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.common import exception @@ -27,6 +28,10 @@ from rucio.core.replica import get_cleaned_updated_collection_replicas, update_collection_replica from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() @@ -77,7 +82,7 @@ def run_once(heartbeat_handler, limit, **_kwargs): return must_sleep -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/abacus/rse.py b/lib/rucio/daemons/abacus/rse.py index d839156cab..935fd437e8 100644 --- a/lib/rucio/daemons/abacus/rse.py +++ b/lib/rucio/daemons/abacus/rse.py @@ -20,6 +20,7 @@ import logging import threading import time +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.common import exception @@ -28,6 +29,10 @@ from rucio.core.rse_counter import get_updated_rse_counters, update_rse_counter, fill_rse_counter_history_table from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() @@ -69,7 +74,7 @@ def run_once(heartbeat_handler, **_kwargs): logger(logging.DEBUG, 'update of rse "%s" took %f' % (rse_id, time.time() - start_time)) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/atropos/atropos.py b/lib/rucio/daemons/atropos/atropos.py index d38014c210..5c01cbb506 100644 --- a/lib/rucio/daemons/atropos/atropos.py +++ b/lib/rucio/daemons/atropos/atropos.py @@ -37,6 +37,8 @@ if TYPE_CHECKING: from rucio.daemons.common import HeartbeatHandler + from types import FrameType + from typing import Optional GRACEFUL_STOP = threading.Event() @@ -233,7 +235,7 @@ def run( thread_list = [t.join(timeout=3.14) for t in thread_list if t and t.is_alive()] -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/automatix/automatix.py b/lib/rucio/daemons/automatix/automatix.py index 8783f74e97..c8cd3ca2f7 100644 --- a/lib/rucio/daemons/automatix/automatix.py +++ b/lib/rucio/daemons/automatix/automatix.py @@ -40,6 +40,9 @@ if TYPE_CHECKING: + from types import FrameType + from typing import Optional + from rucio.daemons.common import HeartbeatHandler METRICS = MetricManager(module=__name__) @@ -272,7 +275,7 @@ def run( [thread.join(timeout=3.14) for thread in threads] -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/badreplicas/minos.py b/lib/rucio/daemons/badreplicas/minos.py index cc758b4f30..f66968246c 100644 --- a/lib/rucio/daemons/badreplicas/minos.py +++ b/lib/rucio/daemons/badreplicas/minos.py @@ -40,6 +40,9 @@ if TYPE_CHECKING: + from types import FrameType + from typing import Optional + from rucio.daemons.common import HeartbeatHandler from rucio.common.types import InternalAccount @@ -302,7 +305,7 @@ def run(threads: int = 1, bulk: int = 100, once: bool = False, sleep_time: int = thread_list = [thread.join(timeout=3.14) for thread in thread_list if thread and thread.is_alive()] -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py b/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py index e5ea5a35c8..1fd75a6d94 100644 --- a/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py +++ b/lib/rucio/daemons/badreplicas/minos_temporary_expiration.py @@ -37,6 +37,9 @@ if TYPE_CHECKING: + from types import FrameType + from typing import Optional + from rucio.daemons.common import HeartbeatHandler graceful_stop = threading.Event() @@ -164,7 +167,7 @@ def run(threads: int = 1, bulk: int = 100, once: bool = False, sleep_time: int = thread_list = [thread.join(timeout=3.14) for thread in thread_list if thread and thread.is_alive()] -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/badreplicas/necromancer.py b/lib/rucio/daemons/badreplicas/necromancer.py index 5732f0a3f9..262bd534d3 100644 --- a/lib/rucio/daemons/badreplicas/necromancer.py +++ b/lib/rucio/daemons/badreplicas/necromancer.py @@ -38,6 +38,9 @@ from rucio.daemons.common import run_daemon if TYPE_CHECKING: + from types import FrameType + from typing import Optional + from rucio.daemons.common import HeartbeatHandler graceful_stop = threading.Event() @@ -191,7 +194,7 @@ def run(threads: int = 1, bulk: int = 100, once: bool = False, sleep_time: int = thread_list = [thread.join(timeout=3.14) for thread in thread_list if thread and thread.is_alive()] -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/bb8/bb8.py b/lib/rucio/daemons/bb8/bb8.py index acce35478d..397cc7c078 100644 --- a/lib/rucio/daemons/bb8/bb8.py +++ b/lib/rucio/daemons/bb8/bb8.py @@ -34,6 +34,9 @@ if TYPE_CHECKING: + from types import FrameType + from typing import Optional + from rucio.daemons.common import HeartbeatHandler graceful_stop = threading.Event() @@ -311,7 +314,7 @@ def run_once( return must_sleep -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/c3po/c3po.py b/lib/rucio/daemons/c3po/c3po.py index 090eb45d7a..1a166573af 100644 --- a/lib/rucio/daemons/c3po/c3po.py +++ b/lib/rucio/daemons/c3po/c3po.py @@ -24,6 +24,7 @@ from threading import Event, Thread from time import sleep from uuid import uuid4 +from typing import TYPE_CHECKING from requests import post from requests.auth import HTTPBasicAuth @@ -41,6 +42,10 @@ from queue import Queue +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + GRACEFUL_STOP = Event() @@ -249,7 +254,7 @@ def place_replica(once=False, logging.critical(e) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/cache/consumer.py b/lib/rucio/daemons/cache/consumer.py index 3b3713432f..05d18884ee 100644 --- a/lib/rucio/daemons/cache/consumer.py +++ b/lib/rucio/daemons/cache/consumer.py @@ -167,7 +167,7 @@ def consumer(id_, num_thread=1): logger(logging.INFO, 'graceful stop done') -def stop(): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/finisher.py b/lib/rucio/daemons/conveyor/finisher.py index 6b6f7dc202..4bb427ed1a 100644 --- a/lib/rucio/daemons/conveyor/finisher.py +++ b/lib/rucio/daemons/conveyor/finisher.py @@ -23,6 +23,7 @@ import os import re import threading +from typing import TYPE_CHECKING from dogpile.cache.api import NoValue from sqlalchemy.exc import DatabaseError @@ -45,6 +46,10 @@ from urllib.parse import urlparse +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() region = make_region_memcached(expiration_time=900) @@ -139,7 +144,7 @@ def finisher(once=False, sleep_time=60, activities=None, bulk=100, db_bulk=1000, ) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/poller.py b/lib/rucio/daemons/conveyor/poller.py index b76bd6faa7..606733a21c 100644 --- a/lib/rucio/daemons/conveyor/poller.py +++ b/lib/rucio/daemons/conveyor/poller.py @@ -26,6 +26,7 @@ import threading import time from itertools import groupby +from typing import TYPE_CHECKING from requests.exceptions import RequestException from configparser import NoOptionError @@ -45,6 +46,10 @@ from rucio.transfertool.fts3 import FTS3Transfertool from rucio.transfertool.globus import GlobusTransferTool +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() METRICS = MetricManager(module=__name__) @@ -162,7 +167,7 @@ def poller(once=False, activities=None, sleep_time=60, ) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/preparer.py b/lib/rucio/daemons/conveyor/preparer.py index 9f99438d92..1449ef009e 100644 --- a/lib/rucio/daemons/conveyor/preparer.py +++ b/lib/rucio/daemons/conveyor/preparer.py @@ -39,7 +39,7 @@ graceful_stop = threading.Event() -def stop(): +def stop(*args): """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/receiver.py b/lib/rucio/daemons/conveyor/receiver.py index 50e9744ad2..e5abd3cc1f 100644 --- a/lib/rucio/daemons/conveyor/receiver.py +++ b/lib/rucio/daemons/conveyor/receiver.py @@ -24,6 +24,7 @@ import threading import time import traceback +from typing import TYPE_CHECKING import stomp @@ -39,6 +40,10 @@ from rucio.db.sqla.session import transactional_session from rucio.transfertool.fts3 import FTS3CompletionMessageTransferStatusReport +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + logging.getLogger("stomp").setLevel(logging.CRITICAL) METRICS = MetricManager(module=__name__) @@ -189,7 +194,7 @@ def receiver(id_, total_threads=1, full_mode=False, all_vos=False): pass -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/stager.py b/lib/rucio/daemons/conveyor/stager.py index 9e6321a3a8..505c260cfd 100644 --- a/lib/rucio/daemons/conveyor/stager.py +++ b/lib/rucio/daemons/conveyor/stager.py @@ -20,6 +20,7 @@ import functools import logging import threading +from typing import TYPE_CHECKING from configparser import NoOptionError @@ -34,6 +35,10 @@ from rucio.db.sqla.constants import RequestType from rucio.transfertool.fts3 import FTS3Transfertool +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -156,7 +161,7 @@ def stager(once=False, rses=None, bulk=100, group_bulk=1, group_policy='rule', ) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/submitter.py b/lib/rucio/daemons/conveyor/submitter.py index 4f2715c76f..14dc56fbe1 100644 --- a/lib/rucio/daemons/conveyor/submitter.py +++ b/lib/rucio/daemons/conveyor/submitter.py @@ -20,6 +20,7 @@ import functools import logging import threading +from typing import TYPE_CHECKING from configparser import NoOptionError @@ -37,6 +38,10 @@ from rucio.transfertool.fts3 import FTS3Transfertool from rucio.transfertool.globus import GlobusTransferTool +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -206,7 +211,7 @@ def submitter(once=False, rses=None, partition_wait_time=10, ) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/conveyor/throttler.py b/lib/rucio/daemons/conveyor/throttler.py index 4f6987a8dd..630d3a2d5a 100644 --- a/lib/rucio/daemons/conveyor/throttler.py +++ b/lib/rucio/daemons/conveyor/throttler.py @@ -21,6 +21,7 @@ import threading import traceback from collections import defaultdict +from typing import TYPE_CHECKING from sqlalchemy import null @@ -35,6 +36,10 @@ from rucio.daemons.common import run_daemon from rucio.db.sqla.constants import RequestState, TransferLimitDirection +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() METRICS = MetricManager(module=__name__) @@ -60,7 +65,7 @@ def throttler(once=False, sleep_time=600, partition_wait_time=10): ) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/follower/follower.py b/lib/rucio/daemons/follower/follower.py index 1b0556c26d..57d1904fce 100644 --- a/lib/rucio/daemons/follower/follower.py +++ b/lib/rucio/daemons/follower/follower.py @@ -18,6 +18,7 @@ import socket import threading import time +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.common import exception @@ -26,6 +27,10 @@ from rucio.core.did import create_reports from rucio.core.heartbeat import live, die, sanity_check +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + graceful_stop = threading.Event() @@ -57,7 +62,7 @@ def aggregate_events(once=False): logging.info('follower: graceful stop done') -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/hermes/hermes.py b/lib/rucio/daemons/hermes/hermes.py index 8bc8f14bae..90bd4ebbc4 100644 --- a/lib/rucio/daemons/hermes/hermes.py +++ b/lib/rucio/daemons/hermes/hermes.py @@ -25,6 +25,7 @@ import socket import threading import traceback +from typing import TYPE_CHECKING from email.mime.text import MIMEText from typing import List, Dict, Any @@ -40,6 +41,10 @@ from rucio.core.monitor import MetricManager from rucio.daemons.common import HeartbeatHandler, run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + logging.getLogger('requests').setLevel(logging.CRITICAL) logging.getLogger('stomp').setLevel(logging.CRITICAL) @@ -337,7 +342,7 @@ def run_once_messages(heartbeat_handler: HeartbeatHandler, return must_sleep -def stop(signum: int = None, frame: str = None) -> None: +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: ''' Graceful exit. ''' diff --git a/lib/rucio/daemons/hermes/hermes2.py b/lib/rucio/daemons/hermes/hermes2.py index 2f256954df..dce2f15b93 100644 --- a/lib/rucio/daemons/hermes/hermes2.py +++ b/lib/rucio/daemons/hermes/hermes2.py @@ -50,7 +50,9 @@ from rucio.daemons.common import run_daemon if TYPE_CHECKING: - from typing import Callable, List, Dict + from types import FrameType + from typing import Callable, Optional, List, Dict + from rucio.daemons.common import HeartbeatHandler logging.getLogger("requests").setLevel(logging.CRITICAL) @@ -688,7 +690,7 @@ def run_once(heartbeat_handler: "HeartbeatHandler", bulk: int, **_kwargs) -> boo return must_sleep -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/judge/cleaner.py b/lib/rucio/daemons/judge/cleaner.py index fefc2b5e62..75fb1c36d5 100644 --- a/lib/rucio/daemons/judge/cleaner.py +++ b/lib/rucio/daemons/judge/cleaner.py @@ -24,6 +24,7 @@ from datetime import datetime, timedelta from random import randint from re import match +from typing import TYPE_CHECKING from sqlalchemy.exc import DatabaseError @@ -36,6 +37,10 @@ from rucio.daemons.common import run_daemon from rucio.db.sqla.util import get_db_time +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -110,7 +115,7 @@ def run_once(paused_rules, heartbeat_handler, **_kwargs): pass -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/judge/evaluator.py b/lib/rucio/daemons/judge/evaluator.py index be441e3d9d..6227f2d9fd 100644 --- a/lib/rucio/daemons/judge/evaluator.py +++ b/lib/rucio/daemons/judge/evaluator.py @@ -25,6 +25,7 @@ from datetime import datetime, timedelta from random import randint from re import match +from typing import TYPE_CHECKING from sqlalchemy.exc import DatabaseError from sqlalchemy.orm.exc import FlushError @@ -37,6 +38,10 @@ from rucio.core.rule import re_evaluate_did, get_updated_dids, delete_updated_did from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -137,7 +142,7 @@ def run_once(paused_dids, did_limit, heartbeat_handler, **_kwargs): logger(logging.WARNING, 'Flush error for %s:%s', did.scope, did.name) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/judge/injector.py b/lib/rucio/daemons/judge/injector.py index 23ac08aec0..ed5afdbae2 100644 --- a/lib/rucio/daemons/judge/injector.py +++ b/lib/rucio/daemons/judge/injector.py @@ -24,6 +24,7 @@ from datetime import datetime, timedelta from random import randint from re import match +from typing import TYPE_CHECKING from sqlalchemy.exc import DatabaseError @@ -35,6 +36,10 @@ from rucio.core.rule import inject_rule, get_injected_rules, update_rule from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -121,7 +126,7 @@ def run_once(paused_rules, heartbeat_handler, **_kwargs): update_rule(rule_id=rule_id, options={'state': 'SUSPENDED'}) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/judge/repairer.py b/lib/rucio/daemons/judge/repairer.py index 7481b7afca..b48539f547 100644 --- a/lib/rucio/daemons/judge/repairer.py +++ b/lib/rucio/daemons/judge/repairer.py @@ -25,6 +25,7 @@ from datetime import datetime, timedelta from random import randint from re import match +from typing import TYPE_CHECKING from sqlalchemy.exc import DatabaseError @@ -36,6 +37,10 @@ from rucio.core.rule import repair_rule, get_stuck_rules from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -111,7 +116,7 @@ def run_once(paused_rules, delta, heartbeat_handler, **_kwargs): METRICS.counter('exceptions.{exception}').labels(exception=e.__class__.__name__).inc() -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/oauthmanager/oauthmanager.py b/lib/rucio/daemons/oauthmanager/oauthmanager.py index f99eb784fc..e3ea61f820 100644 --- a/lib/rucio/daemons/oauthmanager/oauthmanager.py +++ b/lib/rucio/daemons/oauthmanager/oauthmanager.py @@ -31,6 +31,7 @@ import threading import traceback from re import match +from typing import TYPE_CHECKING from sqlalchemy.exc import DatabaseError @@ -44,6 +45,10 @@ from rucio.daemons.common import run_daemon from rucio.daemons.common import HeartbeatHandler +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -187,7 +192,7 @@ def run(once: bool = False, threads: int = 1, max_rows: int = 100, sleep_time: i _ = [t.join(timeout=3.14) for t in threads] -def stop() -> None: +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/reaper/dark_reaper.py b/lib/rucio/daemons/reaper/dark_reaper.py index 280795ffba..550c208ecc 100644 --- a/lib/rucio/daemons/reaper/dark_reaper.py +++ b/lib/rucio/daemons/reaper/dark_reaper.py @@ -45,7 +45,9 @@ from rucio.rse import rsemanager as rsemgr if TYPE_CHECKING: + from types import FrameType from typing import Sequence, Optional + from rucio.daemons.common import HeartbeatHandler logging.getLogger("requests").setLevel(logging.CRITICAL) @@ -184,7 +186,7 @@ def run_once( return must_sleep -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/reaper/light_reaper.py b/lib/rucio/daemons/reaper/light_reaper.py index 6299d4d6e4..1a1298f10a 100644 --- a/lib/rucio/daemons/reaper/light_reaper.py +++ b/lib/rucio/daemons/reaper/light_reaper.py @@ -26,6 +26,7 @@ import threading import time import traceback +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.common.config import config_get_bool @@ -41,6 +42,10 @@ from rucio.core.vo import list_vos from rucio.rse import rsemanager as rsemgr +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + logging.getLogger("requests").setLevel(logging.CRITICAL) GRACEFUL_STOP = threading.Event() @@ -164,7 +169,7 @@ def reaper(rses=[], worker_number=0, total_workers=1, chunk_size=100, once=False return -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/reaper/reaper.py b/lib/rucio/daemons/reaper/reaper.py index d97c0c0513..e27f6887a8 100644 --- a/lib/rucio/daemons/reaper/reaper.py +++ b/lib/rucio/daemons/reaper/reaper.py @@ -57,7 +57,9 @@ from rucio.rse import rsemanager as rsemgr if TYPE_CHECKING: + from types import FrameType from typing import Any, Callable, Optional, Tuple + from rucio.daemons.common import HeartbeatHandler GRACEFUL_STOP = threading.Event() @@ -651,7 +653,7 @@ def _run_once(rses_to_process, chunk_size, greedy, scheme, return rses_with_more_work -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py b/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py index ca869f53b6..51ba488e2a 100755 --- a/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py +++ b/lib/rucio/daemons/replicarecoverer/suspicious_replica_recoverer.py @@ -25,8 +25,8 @@ import time from datetime import datetime, timedelta from sys import argv -from typing import List, Any, Optional import re +from typing import TYPE_CHECKING import functools import json @@ -45,6 +45,9 @@ from rucio.core.rse_expression_parser import parse_expression from rucio.daemons.common import run_daemon +if TYPE_CHECKING: + from types import FrameType + from typing import List, Any, Optional GRACEFUL_STOP = threading.Event() @@ -493,7 +496,7 @@ def run(once: bool = False, younger_than: int = 3, nattempts: int = 10, vos: Lis t.join(timeout=3.14) -def stop(): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/storage/consistency/actions.py b/lib/rucio/daemons/storage/consistency/actions.py index 620ff5b7e1..6760c55c93 100644 --- a/lib/rucio/daemons/storage/consistency/actions.py +++ b/lib/rucio/daemons/storage/consistency/actions.py @@ -27,6 +27,7 @@ import time import threading import traceback +from typing import TYPE_CHECKING from datetime import datetime @@ -49,6 +50,10 @@ from sqlalchemy.exc import DatabaseError, IntegrityError from sqlalchemy.orm.exc import FlushError +if TYPE_CHECKING: + from types import FrameType + from typing import Optional + METRICS = MetricManager(module=__name__) graceful_stop = threading.Event() @@ -683,7 +688,7 @@ def actions_loop(once, scope, rses, sleep_time, dark_min_age, dark_threshold_per die(executable=executable, hostname=hostname, pid=pid, thread=current_thread) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/tracer/kronos.py b/lib/rucio/daemons/tracer/kronos.py index d27ebc4ec2..e248904ea5 100644 --- a/lib/rucio/daemons/tracer/kronos.py +++ b/lib/rucio/daemons/tracer/kronos.py @@ -25,7 +25,7 @@ from json import loads as jloads, dumps as jdumps from threading import Event, Thread from time import time -from typing import Dict +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.daemons.common import HeartbeatHandler, run_daemon @@ -44,6 +44,10 @@ from queue import Queue +if TYPE_CHECKING: + from types import FrameType + from typing import Dict, Optional + logging.getLogger("stomp").setLevel(logging.CRITICAL) @@ -480,7 +484,7 @@ def run_once_kronos_dataset(dataset_queue: Queue, return_values: dict, heartbeat logger(logging.INFO, 'update done for %d collection replicas, %d failed (%ds)' % (total, failed, time() - start)) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/transmogrifier/transmogrifier.py b/lib/rucio/daemons/transmogrifier/transmogrifier.py index ebaa4fe426..11d0fd6ce0 100644 --- a/lib/rucio/daemons/transmogrifier/transmogrifier.py +++ b/lib/rucio/daemons/transmogrifier/transmogrifier.py @@ -20,7 +20,7 @@ import time from datetime import datetime from json import loads, dumps -from typing import TYPE_CHECKING, List, Dict, Callable, Tuple +from typing import TYPE_CHECKING import rucio.db.sqla.util from rucio.db.sqla.constants import DIDType, SubscriptionState @@ -52,6 +52,9 @@ from rucio.daemons.common import run_daemon if TYPE_CHECKING: + from types import FrameType + from typing import List, Dict, Callable, Tuple, Optional + from rucio.daemons.common import HeartbeatHandler from rucio.common.types import InternalScope @@ -742,7 +745,7 @@ def run( ] -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """ diff --git a/lib/rucio/daemons/undertaker/undertaker.py b/lib/rucio/daemons/undertaker/undertaker.py index 82bc7d5561..94230fba6e 100644 --- a/lib/rucio/daemons/undertaker/undertaker.py +++ b/lib/rucio/daemons/undertaker/undertaker.py @@ -25,7 +25,7 @@ from datetime import datetime, timedelta from random import randint from re import match -from typing import Tuple, Dict +from typing import TYPE_CHECKING from sqlalchemy.exc import DatabaseError @@ -38,6 +38,10 @@ from rucio.core.monitor import MetricManager from rucio.daemons.common import run_daemon, HeartbeatHandler +if TYPE_CHECKING: + from types import FrameType + from typing import Optional, Tuple, Dict + logging.getLogger("requests").setLevel(logging.CRITICAL) METRICS = MetricManager(module=__name__) @@ -104,7 +108,7 @@ def run_once(paused_dids: Dict[Tuple, datetime], chunk_size: int, heartbeat_hand logging.critical(traceback.format_exc()) -def stop(signum=None, frame=None): +def stop(signum: Optional[int] = None, frame: Optional[FrameType] = None) -> None: """ Graceful exit. """