Molodetz blogrol volgens DPP-template
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
import json
|
||||
|
||||
from molodetz.database.core import db, now_iso
|
||||
|
||||
|
||||
def get_service_state(name):
|
||||
if "service_state" not in db.tables:
|
||||
return None
|
||||
return db["service_state"].find_one(name=name)
|
||||
|
||||
|
||||
def ensure_service_state(name):
|
||||
row = get_service_state(name)
|
||||
if row:
|
||||
return row["id"]
|
||||
return db["service_state"].insert(
|
||||
{
|
||||
"name": name,
|
||||
"status": "stopped",
|
||||
"last_run": None,
|
||||
"next_run": None,
|
||||
"started_at": None,
|
||||
"heartbeat": None,
|
||||
"logs": "[]",
|
||||
"metrics": "{}",
|
||||
"updated_at": now_iso(),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def write_service_state(row_id, **fields):
|
||||
for key in ("logs", "metrics"):
|
||||
if key in fields and not isinstance(fields[key], str):
|
||||
fields[key] = json.dumps(fields[key])
|
||||
fields["id"] = row_id
|
||||
fields["updated_at"] = now_iso()
|
||||
db["service_state"].update(fields, ["id"])
|
||||
Reference in New Issue
Block a user