make reload_handles optional for creating Services

This will be useful for instantiating services in CLI subcommands, which
have different requirements around observeability.
This commit is contained in:
Charles Hall 2024-10-22 12:17:03 -07:00
parent b03c2a15b3
commit 86481fd651
No known key found for this signature in database
GPG key ID: 7B8E0645816E07CF
4 changed files with 9 additions and 5 deletions

View file

@ -80,7 +80,7 @@ pub(crate) async fn run(args: ServeArgs) -> Result<(), error::ServeCommand> {
.map_err(Error::DatabaseError)?,
));
Services::build(db, config, reload_handles)
Services::build(db, config, Some(reload_handles))
.map_err(Error::InitializeServices)?
.install();

View file

@ -62,7 +62,7 @@ impl Services {
>(
db: &'static D,
config: Config,
reload_handles: FilterReloadHandles,
reload_handles: Option<FilterReloadHandles>,
) -> Result<Self> {
Ok(Self {
appservice: appservice::Service::build(db)?,

View file

@ -1134,7 +1134,11 @@ impl Service {
backend,
filter,
} => {
let handles = &services().globals.reload_handles;
let Some(handles) = &services().globals.reload_handles else {
return Ok(RoomMessageEventContent::text_plain(
"Reloading filters is disabled",
));
};
let handle = match backend {
TracingBackend::Log => &handles.log,
TracingBackend::Flame => &handles.flame,

View file

@ -66,7 +66,7 @@ pub(crate) mod marker {
pub(crate) struct Service {
pub(crate) db: &'static dyn Data,
pub(crate) reload_handles: FilterReloadHandles,
pub(crate) reload_handles: Option<FilterReloadHandles>,
// actual_destination, host
pub(crate) actual_destination_cache: Arc<RwLock<WellKnownMap>>,
@ -200,7 +200,7 @@ impl Service {
pub(crate) fn load(
db: &'static dyn Data,
config: Config,
reload_handles: FilterReloadHandles,
reload_handles: Option<FilterReloadHandles>,
) -> Result<Self> {
let keypair = db.load_keypair();