move existing stuff to archive dir (for now)

This commit is contained in:
Alex Tau 2025-04-27 20:39:07 +03:00
parent ae1204449c
commit 4fc491f61a
32 changed files with 0 additions and 0 deletions

View file

@ -1,90 +0,0 @@
#!/usr/bin/env python3
import asyncio
import datetime
import logging
import os
import shutil
import signal
from alerting import alerts, delayed
from misc import checks, cvars
from misc.checkers import interval_checker, scheduled_checker
from misc.common import TMP_DIR
from misc.config import get_config
logging.basicConfig(level=logging.INFO)
stopping = False
def stop_gracefully(signum, frame):
global stopping
stopping = True
def create_temp_dir() -> None:
try:
os.mkdir(str(TMP_DIR))
except FileExistsError:
pass
os.chmod(str(TMP_DIR), 0o770)
try:
shutil.chown(str(TMP_DIR), user="root", group="alerting")
except LookupError:
shutil.chown(str(TMP_DIR), user="root", group="root")
with open(str(TMP_DIR / "pid"), "w") as pf:
pf.write(str(os.getpid()))
async def main():
create_temp_dir()
signal.signal(signal.SIGTERM, stop_gracefully)
loop = asyncio.get_event_loop()
loop.add_signal_handler(signal.SIGUSR1, lambda: asyncio.create_task(delayed.handler()))
config = get_config()
cvars.config.set(config)
client = await alerts.get_client()
cvars.matrix_client.set(client)
checker_sets = {
"temp": [interval_checker(checks.temp_check, datetime.timedelta(minutes=5))],
"cpu": [interval_checker(checks.cpu_check, datetime.timedelta(minutes=5))],
"ups": [interval_checker(checks.ups_check, datetime.timedelta(minutes=5))],
"ram": [interval_checker(checks.ram_check, datetime.timedelta(minutes=1))],
"vuln": [interval_checker(checks.vuln_check, datetime.timedelta(days=1))],
"raid": [interval_checker(checks.raid_check, datetime.timedelta(days=1))],
"disk_wearout": [interval_checker(checks.disk_wearout_check, datetime.timedelta(days=1))],
"docker_registry": [
scheduled_checker(
checks.docker_registry_check, period=datetime.timedelta(days=1), when=datetime.time(hour=0, minute=0)
)
],
}
for disabled_key in config.disabled_checks:
if disabled_key in checker_sets:
del checker_sets[disabled_key]
checkers = []
for _, s in checker_sets.items():
for checker in s:
checkers.append(checker)
async with asyncio.TaskGroup() as tg:
checker_tasks: set[asyncio.Task] = set()
for c in checkers:
task = tg.create_task(c)
checker_tasks.add(task)
while True:
if stopping:
await client.close()
shutil.rmtree(str(TMP_DIR))
raise SystemExit
else:
await asyncio.sleep(3)
if __name__ == "__main__":
asyncio.run(main())