Bootstrapping implementation
This commit is contained in:
@@ -34,7 +34,7 @@ sha2 = "0.11"
|
||||
reqwest = { version = "0.13", default-features = false, features = ["rustls", "http2"]}
|
||||
base64 = "0.22"
|
||||
compact_str = "0.9.0"
|
||||
dns-update = { path = "/Users/me/code/dns-update" }
|
||||
dns-update = { version = "0.2.0" }
|
||||
|
||||
[dev-dependencies]
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ use trc::{ClusterEvent, ServerEvent};
|
||||
pub fn spawn_broadcast_subscriber(inner: Arc<Inner>, mut shutdown_rx: watch::Receiver<bool>) {
|
||||
let this_node_id = {
|
||||
let _core = inner.shared_core.load();
|
||||
if _core.storage.coordinator.is_none() {
|
||||
if _core.storage.coordinator.is_none() || _core.storage.registry.is_recovery_mode() {
|
||||
return;
|
||||
}
|
||||
_core.network.node_id as u16
|
||||
|
||||
@@ -28,32 +28,37 @@ pub trait SpawnServices {
|
||||
|
||||
impl StartServices for BootManager {
|
||||
async fn start_services(&mut self) {
|
||||
let server = self.inner.build_server();
|
||||
// Unpack webadmin
|
||||
self.inner
|
||||
.data
|
||||
.applications
|
||||
.unpack_all(&self.inner.build_server(), false)
|
||||
.unpack_all(&server, false)
|
||||
.await;
|
||||
|
||||
self.ipc_rxs.spawn_services(self.inner.clone());
|
||||
if !server.registry().is_recovery_mode() {
|
||||
self.ipc_rxs.spawn_services(self.inner.clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl SpawnServices for IpcReceivers {
|
||||
fn spawn_services(&mut self, inner: Arc<Inner>) {
|
||||
// Spawn push manager
|
||||
spawn_push_router(inner.clone(), self.push_rx.take().unwrap());
|
||||
if !inner.shared_core.load().storage.registry.is_recovery_mode() {
|
||||
// Spawn push manager
|
||||
spawn_push_router(inner.clone(), self.push_rx.take().unwrap());
|
||||
|
||||
// Spawn broadcast publisher
|
||||
if let Some(event_rx) = self.broadcast_rx.take() {
|
||||
// Spawn broadcast publisher
|
||||
spawn_broadcast_publisher(inner.clone(), event_rx);
|
||||
if let Some(event_rx) = self.broadcast_rx.take() {
|
||||
// Spawn broadcast publisher
|
||||
spawn_broadcast_publisher(inner.clone(), event_rx);
|
||||
}
|
||||
|
||||
// Spawn task manager
|
||||
spawn_task_manager(inner.clone());
|
||||
|
||||
// Spawn task scheduler
|
||||
spawn_task_scheduler(inner);
|
||||
}
|
||||
|
||||
// Spawn task manager
|
||||
spawn_task_manager(inner.clone());
|
||||
|
||||
// Spawn task scheduler
|
||||
spawn_task_scheduler(inner);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -530,8 +530,7 @@ pub async fn build_itip_template(
|
||||
CalendarTemplateVariable::Key,
|
||||
locale.calendar_imip_footer_2.to_string(),
|
||||
)],
|
||||
]
|
||||
.into_iter(),
|
||||
],
|
||||
);
|
||||
|
||||
Details {
|
||||
|
||||
@@ -491,7 +491,7 @@ async fn update_tasks(
|
||||
) {
|
||||
let mut batch = BatchBuilder::new();
|
||||
|
||||
for (task, result) in tasks.iter_mut().zip(results.into_iter()) {
|
||||
for (task, result) in tasks.iter_mut().zip(results) {
|
||||
let id = task.info.id;
|
||||
batch.clear(ValueClass::TaskQueue(TaskQueueClass::Due {
|
||||
id,
|
||||
|
||||
Reference in New Issue
Block a user