Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions denis/config.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
RELOAD_FILE = '/tmp/denis_reload_file'
9 changes: 9 additions & 0 deletions denis/configure.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@
from datetime import datetime
from argparse import ArgumentParser as ap
import sys
import os

import db
import config

# FIXME: if you are reading this in the year 9999...
far_future = 253401417420
Expand Down Expand Up @@ -133,6 +135,11 @@ def timestamp_to_formatted(timestamp):
dt = datetime.fromtimestamp(timestamp).astimezone()
return dt.isoformat() if fmt_iso else dt.strftime('%a %b %d %Y %T %Z (%z)')

reload_mtime = os.path.getmtime(config.RELOAD_FILE)
db_mtime = os.path.getmtime(db.DB_PATH)
if (db_mtime > reload_mtime):
print('WARNING: Denis database is dirty, reload to update waiters')

print(' --- Assignments ---')
for asn in db.Assignment.select():
print(f'''{asn.name}:
Expand All @@ -146,6 +153,8 @@ def reload():
import signal
try:
os.kill(1, signal.SIGUSR1)
# update mtime/utime with last reload
os.utime(config.RELOAD_FILE)
except OSError as e:
errx(f'kill: {e}')

Expand Down
3 changes: 2 additions & 1 deletion denis/db.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#!/usr/bin/env python3
import peewee

DB = peewee.SqliteDatabase("/var/lib/denis/assignments.db")
DB_PATH = '/var/lib/denis/assignments.db'
DB = peewee.SqliteDatabase(DB_PATH)


class BaseModel(peewee.Model):
Expand Down
4 changes: 4 additions & 0 deletions denis/start.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import sys

import db
import config

from configure import far_future

Expand Down Expand Up @@ -62,6 +63,9 @@ def signal_handler(*_):
signal.signal(signal.SIGUSR1, signal_handler)
signal.signal(signal.SIGRTMIN, signal_handler)

# create reload file
open(config.RELOAD_FILE, 'w').close()

again = True
while again:
procs = []
Expand Down