feature/embbed-frontend #7
@@ -1,4 +1,6 @@
|
|||||||
use std::sync::Arc;
|
use std::{net::ToSocketAddrs, sync::Arc};
|
||||||
|
|
||||||
|
use tracing::info;
|
||||||
|
|
||||||
use crate::{connector::agent::AgentConnectorTrait, service::certificate::CertificateService};
|
use crate::{connector::agent::AgentConnectorTrait, service::certificate::CertificateService};
|
||||||
|
|
||||||
@@ -26,15 +28,38 @@ pub async fn start_master_server(
|
|||||||
println!("Certificate generated and stored successfully.");
|
println!("Certificate generated and stored successfully.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize agent connector
|
let ssh_connector = crate::connector::agent::ssh::SshAgentConnector::new(settings.clone())?;
|
||||||
let mut agent_connector = crate::connector::agent::AgentConnector::new(Box::new(
|
let cert_service_for_agent = cert_service.clone();
|
||||||
crate::connector::agent::ssh::SshAgentConnector::new(settings.clone())?,
|
let settings_for_agent = settings.clone();
|
||||||
));
|
let connection_for_agent = db_connection.clone();
|
||||||
|
|
||||||
// Start the agent server
|
tokio::spawn(async move {
|
||||||
agent_connector
|
let mut connector = ssh_connector;
|
||||||
.start_server(&settings, cert_service, db_connection)
|
tracing::info!("Starting agent server...");
|
||||||
.await?;
|
if let Err(e) = connector
|
||||||
|
.start_server(
|
||||||
|
&settings_for_agent,
|
||||||
|
cert_service_for_agent,
|
||||||
|
connection_for_agent,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
{
|
||||||
|
tracing::error!("Agent server failed: {}", e);
|
||||||
|
} else {
|
||||||
|
tracing::info!("Agent server stopped.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
let axum_router = crate::routes::get_root_router().await;
|
||||||
|
|
||||||
|
// Start the HTTP server
|
||||||
|
let addr = format!("{}:{}", settings.server.bind_address, settings.server.port)
|
||||||
|
.to_socket_addrs()?
|
||||||
|
.next()
|
||||||
|
.ok_or("Invalid bind address")?;
|
||||||
|
let listener = tokio::net::TcpListener::bind(addr).await?;
|
||||||
|
info!("Web/API server is listening on {}", addr);
|
||||||
|
axum::serve(listener, axum_router).await?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user