fix(storage): keep storage info RPC map encoded (#2942)

Co-authored-by: cxymds <Cxymds@qq.com>
This commit is contained in:
weisd
2026-05-13 14:19:43 +08:00
committed by GitHub
parent 9b83de53e1
commit c5125b20bd
2 changed files with 28 additions and 1 deletions
+1 -1
View File
@@ -422,7 +422,7 @@ impl LocalDisk {
total: info.total,
free: info.free,
used: info.used,
used_inodes: info.files - info.ffree,
used_inodes: info.files.saturating_sub(info.ffree),
free_inodes: info.ffree,
major: info.major,
minor: info.minor,
+27
View File
@@ -236,3 +236,30 @@ impl NodeService {
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn local_storage_info_rpc_payload_uses_msgpack_map_encoding() {
let info = rustfs_madmin::StorageInfo {
disks: Vec::new(),
backend: rustfs_madmin::BackendInfo {
backend_type: rustfs_madmin::BackendByte::Erasure,
standard_sc_data: vec![2, 2],
total_sets: vec![1, 1],
drives_per_set: vec![4, 4],
..Default::default()
},
};
let encoded = encode_msgpack_map(&info).expect("storage info should serialize");
assert_eq!(encoded.first().copied(), Some(0x82));
let mut decoder = Deserializer::new(Cursor::new(encoded));
let decoded: rustfs_madmin::StorageInfo = Deserialize::deserialize(&mut decoder).expect("storage info should decode");
assert_eq!(decoded.backend.drives_per_set, vec![4, 4]);
assert_eq!(decoded.backend.total_sets, vec![1, 1]);
}
}