[pve-devel] [PATCH storage] fix #3894: file 'size' and 'used' are not integers

Fabian Ebner f.ebner at proxmox.com
Thu Feb 17 15:10:26 CET 2022


Am 17.02.22 um 14:33 schrieb Mira Limbeck:
> On 2/17/22 14:24, Fabian Ebner wrote:
>> Am 17.02.22 um 13:55 schrieb Mira Limbeck:
>>> 'qemu-img info' with output format 'json' returns the size and used
>>> values as
>>> integers, but the regex match converts them to strings.
>>> As we know they only contain digits, we can simply cast them back to
>>> integers
>>> after the regex.
>>>
>>> The API requires them to be integers.
>>>
>> Any reason for not doing it in the API call itself? That would cover all
>> plugins and future changes.
> 
> The main reason is that we call volume_size_info (which forwards to
> file_size_info in most cases) and file_size_info in other parts of our
> code as well. Wouldn't it be more consistent for `size` and `used` to be
> integers in every context, rather than just in that specific API call?

It doesn't hurt to do it, but it's not persistent, because Perl has no
real types. If it's used as a string some time later (e.g. printed),
it'll be a "string" again.

When converting to JSON, the result depends on how the variable was last
used, so IMHO it should happen as close to that point as possible.

> 
> We could add an additional cast in the API call as well to make sure
> other and future plugins don't run into the same issues.
>





More information about the pve-devel mailing list