diff --git a/src/api2/node/apt.rs b/src/api2/node/apt.rs index aa41d6a5..98d02318 100644 --- a/src/api2/node/apt.rs +++ b/src/api2/node/apt.rs @@ -276,7 +276,7 @@ pub fn get_versions() -> Result { "zfsutils-linux", ]; - fn unknown_package(package: String) -> APTUpdateInfo { + fn unknown_package(package: String, extra_info: Option) -> APTUpdateInfo { APTUpdateInfo { package, title: "unknown".into(), @@ -288,6 +288,7 @@ pub fn get_versions() -> Result { priority: "unknown".into(), section: "unknown".into(), change_log_url: "unknown".into(), + extra_info, } } @@ -301,14 +302,34 @@ pub fn get_versions() -> Result { }, None, ); - if let Some(proxmox_backup) = pbs_packages.iter().find(|pkg| pkg.package == "proxmox-backup") { - packages.push(proxmox_backup.to_owned()); + + let running_kernel = nix::sys::utsname::uname().release().to_owned(); + if let Some(proxmox_backup) = pbs_packages + .iter() + .find(|pkg| pkg.package == "proxmox-backup") + { + let mut proxmox_backup = proxmox_backup.clone(); + proxmox_backup.extra_info = Some(format!("running kernel: {}", running_kernel)); + packages.push(proxmox_backup); } else { - packages.push(unknown_package("proxmox-backup".into())); + packages.push(unknown_package( + "proxmox-backup".into(), + Some(running_kernel), + )); } - if let Some(pkg) = pbs_packages.iter().find(|pkg| pkg.package == "proxmox-backup-server") { - packages.push(pkg.to_owned()); + if let Some(pkg) = pbs_packages + .iter() + .find(|pkg| pkg.package == "proxmox-backup-server") + { + let running_version = format!( + "running version: {}.{}", + crate::api2::version::PROXMOX_PKG_VERSION, + crate::api2::version::PROXMOX_PKG_RELEASE + ); + let mut pkg = pkg.clone(); + pkg.extra_info = Some(running_version); + packages.push(pkg); } let mut kernel_pkgs: Vec = pbs_packages @@ -334,7 +355,7 @@ pub fn get_versions() -> Result { } match pbs_packages.iter().find(|item| &item.package == pkg) { Some(apt_pkg) => packages.push(apt_pkg.to_owned()), - None => packages.push(unknown_package(pkg.to_string())), + None => packages.push(unknown_package(pkg.to_string(), None)), } } diff --git a/src/api2/types/mod.rs b/src/api2/types/mod.rs index ba9d2da9..f240fb64 100644 --- a/src/api2/types/mod.rs +++ b/src/api2/types/mod.rs @@ -1177,6 +1177,8 @@ pub struct APTUpdateInfo { pub section: String, /// URL under which the package's changelog can be retrieved pub change_log_url: String, + /// Additional package information + pub extra_info: Option, } #[api()] diff --git a/src/tools/apt.rs b/src/tools/apt.rs index 841b7447..af8f51f1 100644 --- a/src/tools/apt.rs +++ b/src/tools/apt.rs @@ -361,6 +361,7 @@ where }, priority: priority_res, section: section_res, + extra_info: None, }); } }