The single-letter suffixes are ambiguous and especially in the context of disks, the powers of ten are usually used. Proxmox VE uses multiples of 1024 however.
This is in preparation to adapt format_size() to prefer the verbose suffixes which is planned for Proxmox VE 9. The single-letter suffixes stay supported for backwards-compatibility for API/CLI users as well as parsing backup configurations. The function is currently also used for parsing the 'target-size' Ceph pool option (still restricted via schema to single-letter suffixes). Signed-off-by: Fiona Ebner <f.eb...@proxmox.com> --- NOTE: should also be applied for Proxmox VE 8. src/PVE/JSONSchema.pm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/PVE/JSONSchema.pm b/src/PVE/JSONSchema.pm index 43e0ca0..e7c366f 100644 --- a/src/PVE/JSONSchema.pm +++ b/src/PVE/JSONSchema.pm @@ -990,16 +990,16 @@ sub check_format { sub parse_size { my ($value) = @_; - return undef if $value !~ m/^(\d+(\.\d+)?)([KMGT])?$/; + return undef if $value !~ m/^(\d+(\.\d+)?)([KMGT](?:iB)?)?$/; my ($size, $unit) = ($1, $3); if ($unit) { - if ($unit eq 'K') { + if ($unit eq 'K' || $unit eq 'KiB') { $size = $size * 1024; - } elsif ($unit eq 'M') { + } elsif ($unit eq 'M' || $unit eq 'MiB') { $size = $size * 1024 * 1024; - } elsif ($unit eq 'G') { + } elsif ($unit eq 'G' || $unit eq 'GiB') { $size = $size * 1024 * 1024 * 1024; - } elsif ($unit eq 'T') { + } elsif ($unit eq 'T' || $unit eq 'TiB') { $size = $size * 1024 * 1024 * 1024 * 1024; } } -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel