[pbs-devel] [PATCH proxmox-backup 11/26] tools: disks: add uuid to PrtitionInfo
Hannes Laimer
h.laimer at proxmox.com
Tue Jul 5 15:08:19 CEST 2022
Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
src/tools/disks/mod.rs | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/tools/disks/mod.rs b/src/tools/disks/mod.rs
index e217ac87..b40c4f4d 100644
--- a/src/tools/disks/mod.rs
+++ b/src/tools/disks/mod.rs
@@ -57,6 +57,8 @@ pub struct LsblkInfo {
/// File system label.
#[serde(rename = "fstype")]
file_system_type: Option<String>,
+ /// File system UUID.
+ uuid: Option<String>,
}
impl DiskManage {
@@ -559,7 +561,7 @@ pub struct BlockDevStat {
/// Use lsblk to read partition type uuids and file system types.
pub fn get_lsblk_info() -> Result<Vec<LsblkInfo>, Error> {
let mut command = std::process::Command::new("lsblk");
- command.args(&["--json", "-o", "path,parttype,fstype"]);
+ command.args(&["--json", "-o", "path,parttype,fstype,uuid"]);
let output = proxmox_sys::command::run_command(command, None)?;
@@ -633,6 +635,8 @@ pub struct PartitionInfo {
pub name: String,
/// What the partition is used for
pub used: PartitionUsageType,
+ /// UUID of the partition
+ pub uuid: Option<String>,
/// Is the partition mounted
pub mounted: bool,
/// The filesystem of the partition
@@ -833,8 +837,10 @@ fn get_partitions_info(
let mounted = disk.is_mounted().unwrap_or(false);
let mut filesystem = None;
+ let mut uuid = None;
if let (Some(devpath), Some(infos)) = (devpath.as_ref(), lsblk_infos.as_ref()) {
for info in infos.iter().filter(|i| i.path.eq(devpath)) {
+ uuid = info.uuid.clone();
used = match info.partition_type.as_deref() {
Some("21686148-6449-6e6f-744e-656564454649") => PartitionUsageType::BIOS,
Some("c12a7328-f81f-11d2-ba4b-00a0c93ec93b") => PartitionUsageType::EFI,
@@ -853,6 +859,7 @@ fn get_partitions_info(
name: disk.sysname().to_str().unwrap_or("?").to_string(),
devpath,
used,
+ uuid,
mounted,
filesystem,
size: disk.size().ok(),
--
2.30.2
More information about the pbs-devel
mailing list