Update all Rust dependencies
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		
							
								
								
									
										1333
									
								
								virtweb_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1333
									
								
								virtweb_backend/Cargo.lock
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -6,42 +6,42 @@ edition = "2021"
 | 
			
		||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 | 
			
		||||
 | 
			
		||||
[dependencies]
 | 
			
		||||
log = "0.4.19"
 | 
			
		||||
env_logger = "0.10.1"
 | 
			
		||||
clap = { version = "4.4.11", features = ["derive", "env"] }
 | 
			
		||||
light-openid = { version = "1.0.1", features = ["crypto-wrapper"] }
 | 
			
		||||
log = "0.4.21"
 | 
			
		||||
env_logger = "0.11.3"
 | 
			
		||||
clap = { version = "4.5.4", features = ["derive", "env"] }
 | 
			
		||||
light-openid = { version = "1.0.2", features = ["crypto-wrapper"] }
 | 
			
		||||
lazy_static = "1.4.0"
 | 
			
		||||
actix = "0.13.1"
 | 
			
		||||
actix-web = "4"
 | 
			
		||||
actix = "0.13.3"
 | 
			
		||||
actix-web = "4.5.1"
 | 
			
		||||
actix-remote-ip = "0.1.0"
 | 
			
		||||
actix-session = { version = "0.8.0", features = ["cookie-session"] }
 | 
			
		||||
actix-identity = "0.6.0"
 | 
			
		||||
actix-cors = "0.6.5"
 | 
			
		||||
actix-files = "0.6.2"
 | 
			
		||||
actix-web-actors = "4.2.0"
 | 
			
		||||
actix-http = "3.4.0"
 | 
			
		||||
serde = { version = "1.0.193", features = ["derive"] }
 | 
			
		||||
actix-session = { version = "0.9.0", features = ["cookie-session"] }
 | 
			
		||||
actix-identity = "0.7.1"
 | 
			
		||||
actix-cors = "0.7.0"
 | 
			
		||||
actix-files = "0.6.5"
 | 
			
		||||
actix-web-actors = "4.3.0"
 | 
			
		||||
actix-http = "3.6.0"
 | 
			
		||||
serde = { version = "1.0.197", features = ["derive"] }
 | 
			
		||||
serde_json = "1.0.108"
 | 
			
		||||
quick-xml = { version = "0.31.0", features = ["serialize", "overlapped-lists"] }
 | 
			
		||||
futures-util = "0.3.28"
 | 
			
		||||
anyhow = "1.0.75"
 | 
			
		||||
anyhow = "1.0.81"
 | 
			
		||||
actix-multipart = "0.6.1"
 | 
			
		||||
tempfile = "3.8.1"
 | 
			
		||||
reqwest = { version = "0.11.23", features = ["stream"] }
 | 
			
		||||
tempfile = "3.10.1"
 | 
			
		||||
reqwest = { version = "0.12.3", features = ["stream"] }
 | 
			
		||||
url = "2.5.0"
 | 
			
		||||
virt = "0.3.1"
 | 
			
		||||
sysinfo = { version = "0.29.11", features = ["serde"] }
 | 
			
		||||
uuid = { version = "1.6.1", features = ["v4", "serde"] }
 | 
			
		||||
sysinfo = { version = "0.30.8", features = ["serde"] }
 | 
			
		||||
uuid = { version = "1.8.0", features = ["v4", "serde"] }
 | 
			
		||||
lazy-regex = "3.1.0"
 | 
			
		||||
thiserror = "1.0.51"
 | 
			
		||||
image = "0.24.7"
 | 
			
		||||
thiserror = "1.0.58"
 | 
			
		||||
image = "0.25.1"
 | 
			
		||||
rand = "0.8.5"
 | 
			
		||||
bytes = "1.5.0"
 | 
			
		||||
tokio = "1.35.0"
 | 
			
		||||
futures = "0.3.29"
 | 
			
		||||
bytes = "1.6.0"
 | 
			
		||||
tokio = "1.37.0"
 | 
			
		||||
futures = "0.3.30"
 | 
			
		||||
ipnetwork = "0.20.0"
 | 
			
		||||
num = "0.4.1"
 | 
			
		||||
rust-embed = { version = "8.1.0" }
 | 
			
		||||
rust-embed = { version = "8.3.0" }
 | 
			
		||||
mime_guess = "2.0.4"
 | 
			
		||||
dotenvy = "0.15.7"
 | 
			
		||||
nix = { version = "0.27.1", features = ["net"] }
 | 
			
		||||
nix = { version = "0.28.0", features = ["net"] }
 | 
			
		||||
 
 | 
			
		||||
@@ -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<_>>()
 | 
			
		||||
 
 | 
			
		||||
@@ -39,6 +39,9 @@ let config: ServerConfig | null = null;
 | 
			
		||||
export interface ServerSystemInfo {
 | 
			
		||||
  hypervisor: HypervisorInfo;
 | 
			
		||||
  system: SystemInfo;
 | 
			
		||||
  components: SysComponent;
 | 
			
		||||
  disks: DiskInfo[];
 | 
			
		||||
  networks: NetworkInfo[];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
interface HypervisorInfo {
 | 
			
		||||
@@ -77,10 +80,6 @@ interface SystemInfo {
 | 
			
		||||
  total_swap: number;
 | 
			
		||||
  free_swap: number;
 | 
			
		||||
  used_swap: number;
 | 
			
		||||
  components: SysComponent;
 | 
			
		||||
  users: [];
 | 
			
		||||
  disks: DiskInfo[];
 | 
			
		||||
  networks: NetworkInfo[];
 | 
			
		||||
  uptime: number;
 | 
			
		||||
  boot_time: number;
 | 
			
		||||
  load_average: SysLoadAverage;
 | 
			
		||||
 
 | 
			
		||||
@@ -51,7 +51,7 @@ export function SysInfoRoute(): React.ReactElement {
 | 
			
		||||
export function SysInfoRouteInner(p: {
 | 
			
		||||
  info: ServerSystemInfo;
 | 
			
		||||
}): React.ReactElement {
 | 
			
		||||
  const sumDiskUsage = p.info.system.disks.reduce(
 | 
			
		||||
  const sumDiskUsage = p.info.disks.reduce(
 | 
			
		||||
    (prev, disk) => {
 | 
			
		||||
      return {
 | 
			
		||||
        used: prev.used + disk.total_space - disk.available_space,
 | 
			
		||||
@@ -227,8 +227,8 @@ export function SysInfoRouteInner(p: {
 | 
			
		||||
        ]}
 | 
			
		||||
      />
 | 
			
		||||
 | 
			
		||||
      <DiskDetailsTable disks={p.info.system.disks} />
 | 
			
		||||
      <NetworksDetailsTable networks={p.info.system.networks} />
 | 
			
		||||
      <DiskDetailsTable disks={p.info.disks} />
 | 
			
		||||
      <NetworksDetailsTable networks={p.info.networks} />
 | 
			
		||||
    </VirtWebRouteContainer>
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user