From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id D1BED67B4D for ; Tue, 10 Nov 2020 13:34:29 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id CF56F208B3 for ; Tue, 10 Nov 2020 13:33:59 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 028D1208A3 for ; Tue, 10 Nov 2020 13:33:59 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id C32CF46069 for ; Tue, 10 Nov 2020 13:33:58 +0100 (CET) From: Mira Limbeck To: pbs-devel@lists.proxmox.com Date: Tue, 10 Nov 2020 13:33:53 +0100 Message-Id: <20201110123354.32590-1-m.limbeck@proxmox.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.233 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods NO_DNS_FOR_FROM 0.379 Envelope sender has no MX or A DNS records RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [apt.rs, mod.rs] Subject: [pbs-devel] [PATCH 1/2 proxmox-backup] add additional_info field to APTUpdateInfo X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Nov 2020 12:34:29 -0000 Add an optional string field to APTUpdateInfo which can be used for additional information. This is used for passing running kernel and running version information in the versions API call together with proxmox-backup and proxmox-backup-server. Signed-off-by: Mira Limbeck --- src/api2/node/apt.rs | 35 ++++++++++++++++++++++++++++------- src/api2/types/mod.rs | 2 ++ src/tools/apt.rs | 1 + 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/api2/node/apt.rs b/src/api2/node/apt.rs index aa41d6a5..fcc29bc6 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, additional_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(), + additional_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.additional_info = Some(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!( + "{}.{}", + crate::api2::version::PROXMOX_PKG_VERSION, + crate::api2::version::PROXMOX_PKG_RELEASE + ); + let mut pkg = pkg.clone(); + pkg.additional_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..03e3ea91 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 additional_info: Option, } #[api()] diff --git a/src/tools/apt.rs b/src/tools/apt.rs index 841b7447..30b9bcbe 100644 --- a/src/tools/apt.rs +++ b/src/tools/apt.rs @@ -361,6 +361,7 @@ where }, priority: priority_res, section: section_res, + additional_info: None, }); } } -- 2.20.1