refactor: break out lifecycle

This commit is contained in:
Wez Furlong
2023-07-20 13:18:38 -07:00
parent 78736f779b
commit 407bf09244
11 changed files with 33 additions and 8 deletions
Generated
+12
View File
@@ -2251,6 +2251,17 @@ dependencies = [
name = "kumo-server-common"
version = "0.1.0"
[[package]]
name = "kumo-server-lifecycle"
version = "0.1.0"
dependencies = [
"anyhow",
"once_cell",
"tokio",
"tracing",
"uuid",
]
[[package]]
name = "kumo-server-memory"
version = "0.1.0"
@@ -2313,6 +2324,7 @@ dependencies = [
"kumo-api-types",
"kumo-log-types",
"kumo-server-common",
"kumo-server-lifecycle",
"kumo-server-memory",
"kumo-server-runtime",
"lazy_static",
+13
View File
@@ -0,0 +1,13 @@
[package]
name = "kumo-server-lifecycle"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
anyhow = "1.0"
tracing = "0.1"
tokio = {version="1.25", features=["full", "tracing"]}
once_cell = "1.17"
uuid = {version="1.3", features=["v4", "fast-rng"]}
+1
View File
@@ -34,6 +34,7 @@ json_comments = "0.2"
kumo-api-types = {path="../kumo-api-types"}
kumo-log-types = {path="../kumo-log-types"}
kumo-server-common = {path="../kumo-server-common"}
kumo-server-lifecycle = {path="../kumo-server-lifecycle"}
kumo-server-memory = {path="../kumo-server-memory"}
kumo-server-runtime = {path="../kumo-server-runtime"}
lazy_static = "1.4"
+1 -2
View File
@@ -1,7 +1,7 @@
use crate::lifecycle::LifeCycle;
use anyhow::Context;
use caps::{CapSet, Capability, CapsHashSet};
use clap::{Parser, ValueEnum};
use kumo_server_lifecycle::LifeCycle;
use kumo_server_runtime::rt_spawn;
use metrics_prometheus::recorder::Layer as _;
use nix::sys::resource::{getrlimit, setrlimit, Resource};
@@ -36,7 +36,6 @@ mod delivery_metrics;
mod egress_path;
mod egress_source;
mod http_server;
mod lifecycle;
mod logging;
mod lua_deliver;
mod metrics_helper;
+1 -1
View File
@@ -1,12 +1,12 @@
use crate::egress_path::EgressPathConfig;
use crate::egress_source::{EgressPool, EgressSource};
use crate::http_server::HttpListenerParams;
use crate::lifecycle::LifeCycle;
use crate::logging::{ClassifierParams, LogFileParams, LogHookParams};
use crate::queue::QueueConfig;
use crate::smtp_server::{EsmtpDomain, EsmtpListenerParams, RejectError};
use anyhow::Context;
use config::{any_err, from_lua_value, get_or_create_module};
use kumo_server_lifecycle::LifeCycle;
use kumo_server_runtime::spawn;
use mlua::{Function, Lua, LuaSerdeExt, Value};
use mod_redis::RedisConnKey;
+1 -1
View File
@@ -1,7 +1,6 @@
use crate::egress_source::{EgressPool, EgressPoolRoundRobin, RoundRobinResult};
use crate::http_server::admin_bounce_v1::AdminBounceEntry;
use crate::http_server::admin_suspend_v1::AdminSuspendEntry;
use crate::lifecycle::{Activity, ShutdownSubcription};
use crate::logging::{log_disposition, LogDisposition, RecordType};
use crate::lua_deliver::LuaDeliveryProtocol;
use crate::ready_queue::ReadyQueueManager;
@@ -9,6 +8,7 @@ use crate::spool::SpoolManager;
use anyhow::Context;
use chrono::Utc;
use config::load_config;
use kumo_server_lifecycle::{Activity, ShutdownSubcription};
use kumo_server_runtime::{rt_spawn, spawn, spawn_blocking};
use message::message::QueueNameComponents;
use message::Message;
+1 -1
View File
@@ -3,7 +3,6 @@ use crate::egress_path::EgressPathConfig;
use crate::egress_source::EgressSource;
use crate::http_server::admin_bounce_v1::AdminBounceEntry;
use crate::http_server::admin_suspend_ready_q_v1::AdminSuspendReadyQEntry;
use crate::lifecycle::{Activity, ShutdownSubcription};
use crate::logging::{log_disposition, LogDisposition, RecordType};
use crate::lua_deliver::LuaQueueDispatcher;
use crate::queue::{DeliveryProto, Queue, QueueConfig, QueueManager};
@@ -13,6 +12,7 @@ use anyhow::Context;
use async_trait::async_trait;
use config::load_config;
use dns_resolver::MailExchanger;
use kumo_server_lifecycle::{Activity, ShutdownSubcription};
use kumo_server_memory::{get_headroom, low_memory, subscribe_to_memory_status_changes};
use kumo_server_runtime::{rt_spawn, rt_spawn_non_blocking, spawn};
use message::message::QueueNameComponents;
+1 -1
View File
@@ -1,6 +1,5 @@
use crate::delivery_metrics::MetricsWrappedConnection;
use crate::egress_path::Tls;
use crate::lifecycle::ShutdownSubcription;
use crate::logging::{log_disposition, LogDisposition, RecordType};
use crate::ready_queue::{Dispatcher, QueueDispatcher};
use crate::spool::SpoolManager;
@@ -8,6 +7,7 @@ use anyhow::Context;
use async_trait::async_trait;
use dns_resolver::ResolvedMxAddresses;
use kumo_log_types::ResolvedAddress;
use kumo_server_lifecycle::ShutdownSubcription;
use kumo_server_runtime::{rt_spawn, spawn};
use message::Message;
use rfc5321::{ClientError, EnhancedStatusCode, ForwardPath, Response, ReversePath, SmtpClient};
+1 -1
View File
@@ -1,4 +1,3 @@
use crate::lifecycle::{Activity, ShutdownSubcription};
use crate::logging::{log_disposition, LogDisposition, RecordType};
use crate::queue::QueueManager;
use crate::spool::SpoolManager;
@@ -8,6 +7,7 @@ use cidr_map::{AnyIpCidr, CidrSet};
use config::{any_err, load_config, LuaConfig};
use data_loader::KeySource;
use kumo_log_types::ResolvedAddress;
use kumo_server_lifecycle::{Activity, ShutdownSubcription};
use kumo_server_runtime::{rt_spawn, spawn_local};
use lruttl::LruCacheWithTtl;
use memchr::memmem::Finder;
+1 -1
View File
@@ -1,10 +1,10 @@
use crate::lifecycle::{Activity, ShutdownSubcription};
use crate::logging::{log_disposition, LogDisposition, RecordType};
use crate::mod_kumo::{DefineSpoolParams, SpoolKind};
use crate::queue::QueueManager;
use crate::rt_spawn;
use anyhow::Context;
use chrono::Utc;
use kumo_server_lifecycle::{Activity, ShutdownSubcription};
use message::Message;
use once_cell::sync::Lazy;
use rfc5321::{EnhancedStatusCode, Response};