1
0
Fork 0
mirror of https://codeberg.org/icewind/haze.git synced 2026-06-03 09:04:12 +02:00

show proxy addr for ldap-admin in startup message

This commit is contained in:
Robin Appelman 2026-03-09 18:08:34 +01:00
commit 88a4100340
4 changed files with 26 additions and 9 deletions

View file

@ -493,6 +493,7 @@ impl Cloud {
containers.push(container);
let options_clone = options.clone();
let proxy_config = config.proxy.clone();
let cloud_id = id.clone();
let docker_clone = docker.clone();
spawn(async move {
@ -506,7 +507,10 @@ impl Cloud {
return;
}
for service in options_clone.services {
match service.start_message(&docker_clone, &cloud_id).await {
match service
.start_message(&docker_clone, &cloud_id, &proxy_config)
.await
{
Ok(Some(msg)) => {
println!("{}", msg);
}

View file

@ -181,7 +181,7 @@ fn load_secret(name: &str, path: Option<String>, raw: Option<String>) -> Result<
}
}
#[derive(Default, Deserialize, Debug)]
#[derive(Default, Deserialize, Debug, Clone)]
pub struct ProxyConfig {
pub listen: String,
#[serde(default)]

View file

@ -16,7 +16,7 @@ mod sharded;
mod smb;
use crate::cloud::CloudOptions;
use crate::config::{HazeConfig, Preset};
use crate::config::{HazeConfig, Preset, ProxyConfig};
pub use crate::service::clam::{Clam, ClamIcap, ClamIcapTls, ClamSocket};
use crate::service::dav::Dav;
use crate::service::imaginary::Imaginary;
@ -78,7 +78,12 @@ pub trait ServiceTrait {
None
}
async fn start_message(&self, _docker: &Docker, _cloud_id: &str) -> Result<Option<String>> {
async fn start_message(
&self,
_docker: &Docker,
_cloud_id: &str,
_proxy: &ProxyConfig,
) -> Result<Option<String>> {
Ok(None)
}

View file

@ -1,5 +1,5 @@
use crate::cloud::CloudOptions;
use crate::config::HazeConfig;
use crate::config::{HazeConfig, ProxyConfig};
use crate::image::pull_image;
use crate::service::ServiceTrait;
use crate::Result;
@ -9,6 +9,8 @@ use bollard::query_parameters::CreateContainerOptions;
use bollard::Docker;
use maplit::hashmap;
use miette::{IntoDiagnostic, Report};
use std::net::IpAddr;
use std::str::FromStr;
#[derive(Debug, Clone, Eq, PartialEq)]
pub struct Ldap;
@ -151,9 +153,15 @@ impl ServiceTrait for LdapAdmin {
Some(format!("{}-ldap-admin", cloud_id))
}
async fn start_message(&self, docker: &Docker, cloud_id: &str) -> Result<Option<String>> {
async fn start_message(
&self,
docker: &Docker,
cloud_id: &str,
proxy: &ProxyConfig,
) -> Result<Option<String>> {
let id = self.container_name(cloud_id).unwrap();
let info = docker
.inspect_container(&self.container_name(cloud_id).unwrap(), None)
.inspect_container(&id, None)
.await
.into_diagnostic()?;
let ip = if matches!(
@ -176,9 +184,9 @@ impl ServiceTrait for LdapAdmin {
} else {
return Err(Report::msg("ldap admin not started"));
};
let addr = proxy.addr(&id, IpAddr::from_str(&ip).unwrap());
Ok(Some(format!(
"Ldap admin running at: https://{} with 'cn=admin,dc=example,dc=org' and password 'haze'",
ip
"Ldap admin running at: {addr} with 'cn=admin,dc=example,dc=org' and password 'haze'"
)))
}
}