server: expose subscription runtime catalog

This commit is contained in:
2026-08-01 19:34:50 +09:00
parent f46c82d171
commit 5d4deb258a
2 changed files with 13 additions and 0 deletions
@@ -200,6 +200,18 @@ impl RuntimeSubscriptionBroker {
} }
} }
pub fn runtime_ids(&self) -> Vec<String> {
let mut runtime_ids = self
.registrations
.read()
.expect("broker registry poisoned")
.keys()
.cloned()
.collect::<Vec<_>>();
runtime_ids.sort();
runtime_ids
}
pub fn status(&self, runtime_id: &str) -> Option<RuntimeSubscriptionBrokerStatus> { pub fn status(&self, runtime_id: &str) -> Option<RuntimeSubscriptionBrokerStatus> {
let status = self let status = self
.registrations .registrations
@@ -283,6 +283,7 @@ async fn embedded_runtime_uses_in_process_subscription_source() {
let worker = runtime.list_workers().unwrap().remove(0); let worker = runtime.list_workers().unwrap().remove(0);
let broker = RuntimeSubscriptionBroker::new("local"); let broker = RuntimeSubscriptionBroker::new("local");
broker.register_embedded_runtime("embedded-worker-runtime", runtime.clone()); broker.register_embedded_runtime("embedded-worker-runtime", runtime.clone());
assert_eq!(broker.runtime_ids(), vec!["embedded-worker-runtime"]);
let mut subscription = broker let mut subscription = broker
.subscribe( .subscribe(
"embedded-worker-runtime", "embedded-worker-runtime",