Catalyst / admin/Syanpse-Vanguard 14.8 GB / 57.8 GB 40.0 GB free
Help Sign in

admin / Syanpse-Vanguard

public
Code Issues Pull requests Pipelines Packages Security Insights Wiki Settings
Syanpse-Vanguard / synapse-vanguard-v3 / sv / bootstrap.py 1125 B · main
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
"""Shared startup/shutdown for every service role. Builds the storage engine and
broker, initializes schema, seeds the bootstrap admin, and ensures the consumer
group exists."""
from __future__ import annotations

import logging

from sv.auth.users import seed_bootstrap_admin
from sv.broker import Broker, build_broker
from sv.config import settings
from sv.storage.base import StorageEngine, build_engine

log = logging.getLogger("sv.bootstrap")


async def startup(with_broker: bool = True) -> tuple[StorageEngine, Broker | None]:
    logging.basicConfig(level=settings.log_level)
    engine = build_engine()
    await engine.init_schema()
    await seed_bootstrap_admin(engine)
    broker: Broker | None = None
    if with_broker:
        broker = build_broker()
        await broker.ensure_group()
    log.info("startup complete (storage=%s broker=%s)",
             settings.storage_backend, settings.broker if with_broker else "none")
    return engine, broker


async def shutdown(engine: StorageEngine, broker: Broker | None) -> None:
    if broker is not None:
        await broker.close()
    await engine.close()