Configure CI (#2)
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			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:
		@@ -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())
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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,
 | 
			
		||||
    }))
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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<_>>()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user