mirror of
https://gitlab.com/famedly/conduit.git
synced 2024-12-29 13:54:33 +01:00
Merge branch 'show-config' into 'next'
Add show-config admin command See merge request famedly/conduit!295
This commit is contained in:
commit
8086bee146
3 changed files with 100 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
use std::{
|
use std::{
|
||||||
collections::BTreeMap,
|
collections::BTreeMap,
|
||||||
|
fmt,
|
||||||
net::{IpAddr, Ipv4Addr},
|
net::{IpAddr, Ipv4Addr},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -97,6 +98,97 @@ impl Config {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl fmt::Display for Config {
|
||||||
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||||
|
// Prepare a list of config values to show
|
||||||
|
let lines = [
|
||||||
|
("Server name", self.server_name.host()),
|
||||||
|
("Database backend", &self.database_backend),
|
||||||
|
("Database path", &self.database_path),
|
||||||
|
(
|
||||||
|
"Database cache capacity (MB)",
|
||||||
|
&self.db_cache_capacity_mb.to_string(),
|
||||||
|
),
|
||||||
|
(
|
||||||
|
"Cache capacity modifier",
|
||||||
|
&self.conduit_cache_capacity_modifier.to_string(),
|
||||||
|
),
|
||||||
|
#[cfg(feature = "rocksdb")]
|
||||||
|
(
|
||||||
|
"Maximum open files for RocksDB",
|
||||||
|
&self.rocksdb_max_open_files.to_string(),
|
||||||
|
),
|
||||||
|
("PDU cache capacity", &self.pdu_cache_capacity.to_string()),
|
||||||
|
(
|
||||||
|
"Cleanup interval in seconds",
|
||||||
|
&self.cleanup_second_interval.to_string(),
|
||||||
|
),
|
||||||
|
("Maximum request size", &self.max_request_size.to_string()),
|
||||||
|
(
|
||||||
|
"Maximum concurrent requests",
|
||||||
|
&self.max_concurrent_requests.to_string(),
|
||||||
|
),
|
||||||
|
("Allow registration", &self.allow_registration.to_string()),
|
||||||
|
("Allow encryption", &self.allow_encryption.to_string()),
|
||||||
|
("Allow federation", &self.allow_federation.to_string()),
|
||||||
|
("Allow room creation", &self.allow_room_creation.to_string()),
|
||||||
|
(
|
||||||
|
"JWT secret",
|
||||||
|
match self.jwt_secret {
|
||||||
|
Some(_) => "set",
|
||||||
|
None => "not set",
|
||||||
|
},
|
||||||
|
),
|
||||||
|
("Trusted servers", {
|
||||||
|
let mut lst = vec![];
|
||||||
|
for server in &self.trusted_servers {
|
||||||
|
lst.push(server.host());
|
||||||
|
}
|
||||||
|
&lst.join(", ")
|
||||||
|
}),
|
||||||
|
(
|
||||||
|
"TURN username",
|
||||||
|
if self.turn_username.is_empty() {
|
||||||
|
"not set"
|
||||||
|
} else {
|
||||||
|
&self.turn_username
|
||||||
|
},
|
||||||
|
),
|
||||||
|
("TURN password", {
|
||||||
|
if self.turn_password.is_empty() {
|
||||||
|
"not set"
|
||||||
|
} else {
|
||||||
|
"set"
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
("TURN secret", {
|
||||||
|
if self.turn_secret.is_empty() {
|
||||||
|
"not set"
|
||||||
|
} else {
|
||||||
|
"set"
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
("Turn TTL", &self.turn_ttl.to_string()),
|
||||||
|
("Turn URIs", {
|
||||||
|
let mut lst = vec![];
|
||||||
|
for item in self.turn_uris.to_vec().into_iter().enumerate() {
|
||||||
|
let (_, uri): (usize, String) = item;
|
||||||
|
lst.push(uri);
|
||||||
|
}
|
||||||
|
&lst.join(", ")
|
||||||
|
}),
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut msg: String = "Active config values:\n\n".to_string();
|
||||||
|
|
||||||
|
for line in lines.into_iter().enumerate() {
|
||||||
|
msg += &format!("{}: {}\n", line.1 .0, line.1 .1);
|
||||||
|
}
|
||||||
|
|
||||||
|
write!(f, "{}", msg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn false_fn() -> bool {
|
fn false_fn() -> bool {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,6 +259,9 @@ enum AdminCommand {
|
||||||
|
|
||||||
/// Print database memory usage statistics
|
/// Print database memory usage statistics
|
||||||
DatabaseMemoryUsage,
|
DatabaseMemoryUsage,
|
||||||
|
|
||||||
|
/// Show configuration values
|
||||||
|
ShowConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn process_admin_command(
|
fn process_admin_command(
|
||||||
|
@ -428,6 +431,10 @@ fn process_admin_command(
|
||||||
e
|
e
|
||||||
)),
|
)),
|
||||||
},
|
},
|
||||||
|
AdminCommand::ShowConfig => {
|
||||||
|
// Construct and send the response
|
||||||
|
RoomMessageEventContent::text_plain(format!("{}", db.globals.config))
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Ok(reply_message_content)
|
Ok(reply_message_content)
|
||||||
|
|
|
@ -35,7 +35,7 @@ pub struct Globals {
|
||||||
pub actual_destination_cache: Arc<RwLock<WellKnownMap>>, // actual_destination, host
|
pub actual_destination_cache: Arc<RwLock<WellKnownMap>>, // actual_destination, host
|
||||||
pub tls_name_override: Arc<RwLock<TlsNameMap>>,
|
pub tls_name_override: Arc<RwLock<TlsNameMap>>,
|
||||||
pub(super) globals: Arc<dyn Tree>,
|
pub(super) globals: Arc<dyn Tree>,
|
||||||
config: Config,
|
pub config: Config,
|
||||||
keypair: Arc<ruma::signatures::Ed25519KeyPair>,
|
keypair: Arc<ruma::signatures::Ed25519KeyPair>,
|
||||||
dns_resolver: TokioAsyncResolver,
|
dns_resolver: TokioAsyncResolver,
|
||||||
jwt_decoding_key: Option<jsonwebtoken::DecodingKey<'static>>,
|
jwt_decoding_key: Option<jsonwebtoken::DecodingKey<'static>>,
|
||||||
|
|
Loading…
Reference in a new issue