Configure CI (#2)
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #2
Co-authored-by: Pierre HUBERT <pierre.git@communiquons.org>
Co-committed-by: Pierre HUBERT <pierre.git@communiquons.org>
This commit is contained in:
2024-04-05 18:58:30 +00:00
committed by Pierre Hubert
parent 9b55f1f29c
commit 1ed23317cb
9 changed files with 3097 additions and 3534 deletions

View File

@ -9,7 +9,7 @@ use crate::libvirt_rest_structures::nw_filter::{NetworkFilter, NetworkFilterName
use crate::libvirt_rest_structures::vm::*;
use crate::nat::nat_lib;
use actix::{Actor, Context, Handler, Message};
use image::ImageOutputFormat;
use image::ImageFormat;
use std::io::Cursor;
use virt::connect::Connect;
use virt::domain::Domain;
@ -337,7 +337,7 @@ impl Handler<ScreenshotDomainReq> for LibVirtActor {
let image = image::load_from_memory(&screen_out)?;
let mut png_out = Cursor::new(Vec::new());
image.write_to(&mut png_out, ImageOutputFormat::Png)?;
image.write_to(&mut png_out, ImageFormat::Png)?;
Ok(png_out.into_inner())
}

View File

@ -8,7 +8,7 @@ use crate::libvirt_rest_structures::hypervisor::HypervisorInfo;
use crate::nat::nat_hook;
use crate::utils::net_utils;
use actix_web::{HttpResponse, Responder};
use sysinfo::{System, SystemExt};
use sysinfo::{Components, Disks, Networks, System};
#[derive(serde::Serialize)]
struct StaticConfig {
@ -106,18 +106,33 @@ pub async fn static_config(local_auth: LocalAuthEnabled) -> impl Responder {
struct ServerInfo {
hypervisor: HypervisorInfo,
system: System,
components: Components,
disks: Disks,
networks: Networks,
}
pub async fn server_info(client: LibVirtReq) -> HttpResult {
let mut system = System::new();
system.refresh_disks_list();
system.refresh_components_list();
system.refresh_networks_list();
system.refresh_all();
let mut components = Components::new();
components.refresh_list();
components.refresh();
let mut disks = Disks::new();
disks.refresh_list();
disks.refresh();
let mut networks = Networks::new();
networks.refresh_list();
networks.refresh();
Ok(HttpResponse::Ok().json(ServerInfo {
hypervisor: client.get_info().await?,
system,
components,
disks,
networks,
}))
}

View File

@ -2,7 +2,7 @@ use nix::sys::socket::{AddressFamily, SockaddrLike};
use std::collections::HashMap;
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
use std::str::FromStr;
use sysinfo::{NetworksExt, System, SystemExt};
use sysinfo::Networks;
pub fn extract_ipv4(ip: IpAddr) -> Ipv4Addr {
match ip {
@ -56,11 +56,11 @@ pub fn is_net_interface_name_valid<D: AsRef<str>>(int: D) -> bool {
/// Get the list of available network interfaces
pub fn net_list() -> Vec<String> {
let mut system = System::new();
system.refresh_networks_list();
let mut networks = Networks::new();
networks.refresh_list();
system
.networks()
networks
.list()
.iter()
.map(|n| n.0.to_string())
.collect::<Vec<_>>()