Can query hypervisor information

This commit is contained in:
2023-09-06 18:54:38 +02:00
parent fbe11af121
commit 57c023b45b
14 changed files with 253 additions and 9 deletions

View File

@ -1,3 +1,4 @@
use actix::Actor;
use actix_cors::Cors;
use actix_identity::config::LogoutBehaviour;
use actix_identity::IdentityMiddleware;
@ -13,12 +14,14 @@ use actix_web::web::Data;
use actix_web::{web, App, HttpServer};
use light_openid::basic_state_manager::BasicStateManager;
use std::time::Duration;
use virtweb_backend::actors::libvirt_actor::LibVirtActor;
use virtweb_backend::app_config::AppConfig;
use virtweb_backend::constants;
use virtweb_backend::constants::{
MAX_INACTIVITY_DURATION, MAX_SESSION_DURATION, SESSION_COOKIE_NAME,
};
use virtweb_backend::controllers::{auth_controller, iso_controller, server_controller};
use virtweb_backend::libvirt_client::LibVirtClient;
use virtweb_backend::middlewares::auth_middleware::AuthChecker;
use virtweb_backend::utils::files_utils;
@ -29,6 +32,13 @@ async fn main() -> std::io::Result<()> {
log::debug!("Create required directory, if missing");
files_utils::create_directory_if_missing(&AppConfig::get().iso_storage_path()).unwrap();
let conn = Data::new(LibVirtClient(
LibVirtActor::connect()
.await
.expect("Failed to connect to hypervisor!")
.start(),
));
log::info!("Start to listen on {}", AppConfig::get().listen_address);
let state_manager = Data::new(BasicStateManager::new());
@ -69,6 +79,7 @@ async fn main() -> std::io::Result<()> {
.app_data(Data::new(RemoteIPConfig {
proxy: AppConfig::get().proxy_ip.clone(),
}))
.app_data(conn.clone())
// Uploaded files
.app_data(MultipartFormConfig::default().total_limit(constants::ISO_MAX_SIZE))
.app_data(TempFileConfig::default().directory(&AppConfig::get().temp_dir))
@ -78,6 +89,10 @@ async fn main() -> std::io::Result<()> {
"/api/server/static_config",
web::get().to(server_controller::static_config),
)
.route(
"/api/server/info",
web::get().to(server_controller::server_info),
)
// Auth controller
.route(
"/api/auth/local",